THORChain_Router.sol 957 B

1234567891011121314151617181920212223242526272829303132333435
  1. // MMGen Wallet, a terminal-based cryptocurrency wallet
  2. // Copyright (C)2013-2025 The MMGen Project <mmgen@tuta.io>
  3. // Licensed under the GNU General Public License, Version 3:
  4. // https://www.gnu.org/licenses
  5. // Public project repositories:
  6. // https://github.com/mmgen/mmgen-wallet
  7. // https://gitlab.com/mmgen/mmgen-wallet
  8. //
  9. // Minimal THORChain router for testing
  10. //
  11. // SPDX-License-Identifier: GPL-3.0
  12. pragma solidity >=0.8.25;
  13. interface iERC20 {
  14. function transferFrom(
  15. address from,
  16. address to,
  17. uint tokens) external payable returns (bool success);
  18. }
  19. contract THORChain_Router {
  20. string public saved_memo;
  21. function depositWithExpiry(
  22. address payable vault,
  23. address asset,
  24. uint amount,
  25. string memory memo,
  26. uint expiration
  27. ) external payable returns (bool success) {
  28. require(block.timestamp < expiration, "THORChain_Router: expired");
  29. saved_memo = memo;
  30. return iERC20(asset).transferFrom(msg.sender, vault, amount);
  31. }
  32. }