Loading
[feature] Support memoless native asset deposits with amount-encoded references
Summary
This MR implements support for memoless native asset deposits (THOR.RUNE) using amount-encoded references. Users can now make native deposits without explicitly providing a memo - the reference ID is automatically extracted from the transaction amount and resolved to the registered memo.
Key Features
- Auto-generation: Automatically generates reference memos for empty-memo native deposits
- Amount encoding: Extracts reference IDs from native transaction amounts using modulo operation (last N digits)
- Reference resolution: Resolves reference memos to actual swap/action memos before processing
- Validation: Prevents zero references and validates reference extraction
Changes
-
x/thorchain/handler_deposit.go:- Added memoless transaction handling
- Implemented
extractReferenceFromNativeAmount()for reference extraction - Added reference memo resolution for native deposits
-
x/thorchain/handler_deposit_test.go:- Added comprehensive unit tests for memoless deposits
- Tests for reference extraction edge cases
- Tests for reference resolution flows
-
Regression tests:
- Updated
memo.yamltest suite - Added new test blocks with memoless native deposit scenarios
- Updated
Test Plan
- Unit tests pass for reference extraction
- Unit tests pass for memoless deposit handling
- Regression tests updated with memoless scenarios
- Manual testing on mocknet
- Integration testing on stagenet