- Explore router-multicall contract code and existing tests (read contracts/router-multicall/src/lib.rs)
- Add/adjust tests to verify stored batch results behavior via get_batch_result/get_batch_results
- Fix compilation issues in tests due to Soroban client return types (Option/Vec handling)
- Run
cargo test -p router-multicalland ensure tests pass
- Add new contract API to transfer role membership from
fromtoto. - Enforce authorization: caller must be role manager for the role (or super admin if designed that way).
- Semantics: transfer only if
fromcurrently has the role active (expired source must error). - Preserve expiry: destination receives the same expiry timestamp as source.
- Keep storage consistent:
- Update
HasRole,RoleExpiry - Update
RoleMembers(role) - Update
AddressRoles(from)andAddressRoles(to) - Update
RoleMemberCount(role)correctly only when active.
- Update
- Add events (either new event topic or emit existing grant/revoke events consistently).
- Add tests:
- permanent grant transfer
- expiring grant transfer (expiry preserved)
- expired source transfer fails
- destination blacklisting prevents transfer
- role not present on source fails
-
from == tobehavior
- Run
cargo testfor the affected contract/package(s).