feat(contracts): support relayer-assisted claims with secure authorization - #797
feat(contracts): support relayer-assisted claims with secure authorization#797Olasunkanmi975 wants to merge 18 commits into
Conversation
|
@Olasunkanmi975 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
@Cedarich kindly review |
|
@Cedarich review boss |
…ind cfg(test) for clippy
- record_delegate_change_system's reason parameter and all call sites now consistently use soroban_sdk::String instead of mixing Symbol, String, and &str - Fixes 11 compile errors from type mismatches across delegate.rs
|
@Cedarich pleease review and merge boss |
…_delegates, fix stale remove_delegate test reference
|
@Cedarich Noticed while verifying this fix: 7 tests in tests/delegate_tests.rs fail |
…oint Fixes CI failure where delegate_tests.rs:363 fails because AidEscrowClient has no cleanup_expired_delegates method. The cleanup_expired_delegates function already exists in the delegate module but was not exported as a contract entry point in impl AidEscrow. This adds it following the same pattern as the other delegate operations (get_delegate, get_delegate_info, get_delegate_history, revoke_delegate). Co-authored-by: akamarud <kamarudeenabubakar87@gmail.com>
|
@Cedarich please merge already broski |
##closes #722
Summary
This PR introduces contract-side support for relayer-assisted claim execution, allowing approved relayers to submit claim transactions on behalf of recipients while preserving secure authorization guarantees.
The implementation distinguishes relayed claims from direct claims through dedicated events and includes safeguards against replay attacks and unauthorized relayer submissions.
Changes
Relayer-Aware Claim Flow
Authorization & Security
Events
Testing
Added and updated contract tests covering:
Why
Relayer-assisted claims improve user experience by allowing recipients to receive assets without always paying transaction fees directly.
This implementation provides the required contract hooks while maintaining strong authorization guarantees and replay protection.
Testing
Checklist