# Monad测试网交互的一些补充 **Published by:** [crypto小趴菜](https://paragraph.com/@crypto-69/) **Published on:** 2025-02-21 **URL:** https://paragraph.com/@crypto-69/monad ## Content 万众瞩目的monad测试网已经上线,官网文档地址: https://docs.monad.xyz/getting-started/deploy-smart-contract/remix 下面是一些交互方式的补充 1 发布智能合约 打开remix https://remix.ethereum.org/#lang=en&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.26+commit.8a97fa7a.js 选择new file,创建一个新文件,名字可以随便起,我这里叫test.sol将一下代码复制进去,ctrl+s保存// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.13; contract Counter { uint256 public number; function setNumber(uint256 newNumber) public { number = newNumber; } function increment() public { number++; } } 这里选择injected Provider,连接小狐狸钱包,在小狐狸钱包中切换到monad testnet ,选择好账户,点下面的Deploy等待钱包弹出,确认交易,等待交易完成即可 2 还是打开remix,重新创建一个合约,复制以下代码// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // 导入ERC20代币接口 interface IERC20 { function transfer(address recipient, uint256 amount) external returns (bool); function balanceOf(address account) external view returns (uint256); } contract TokenRefunder { // 事件,用于记录代币返还的交易 event TokensRefunded(address indexed sender, uint256 amount); event EtherRefunded(address indexed sender, uint256 amount); // 接收ERC20代币的函数 function refundTokens(address tokenAddress) external { // 获取发送者的地址 address sender = msg.sender; // 获取合约中的代币余额 uint256 amount = IERC20(tokenAddress).balanceOf(address(this)); // 确保合约中有代币可以返还 require(amount > 0, "No tokens to refund"); // 将代币返还给发送者 bool success = IERC20(tokenAddress).transfer(sender, amount); require(success, "Token transfer failed"); // 触发事件,记录交易 emit TokensRefunded(sender, amount); } // 接收以太币的函数 function refundEther() external { // 获取发送者的地址 address sender = msg.sender; // 获取合约中的以太币余额 uint256 amount = address(this).balance; // 确保合约中有以太币可以返还 require(amount > 0, "No Ether to refund"); // 将以太币返还给发送者 (bool success, ) = sender.call{value: amount}(""); require(success, "Ether transfer failed"); // 触发事件,记录交易 emit EtherRefunded(sender, amount); } // 接收以太币的回退函数 receive() external payable { // 当合约直接收到以太币时,不做任何操作 // 用户需要手动调用 refundEther 来取回以太币 } // 查询合约中的ERC20代币余额 function getTokenBalance(address tokenAddress) external view returns (uint256) { return IERC20(tokenAddress).balanceOf(address(this)); } // 查询合约中的以太币余额 function getEtherBalance() external view returns (uint256) { return address(this).balance; } } 保存,发布合约的地方,选择如下,其他同1部署合约,等待合约部署后,在左下方,复制合约的地址,用自己的钱包,向该合约地址转账,资金可以返还回来,这样就可以多一笔交易 3 monad域名 网址 https://app.nad.domains/ 在输入框中输入名字,如果下方出现的是Available就可以点击注册4 代币兑换 网址 https://monad.ambient.finance/ 把Swap,Trade,Pool 都交互一遍 ## Publication Information - [crypto小趴菜](https://paragraph.com/@crypto-69/): Publication homepage - [All Posts](https://paragraph.com/@crypto-69/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@crypto-69): Subscribe to updates - [Twitter](https://twitter.com/cryptopacai): Follow on Twitter