[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.yaml test suite
    • Added new test blocks with memoless native deposit scenarios

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

Merge request reports

Loading
Loading