Monad测试网交互的一些补充

万众瞩目的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

post image

将一下代码复制进去,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

post image

等待钱包弹出,确认交易,等待交易完成即可

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

post image

部署合约,等待合约部署后,在左下方,复制合约的地址,用自己的钱包,向该合约地址转账,资金可以返还回来,这样就可以多一笔交易

3 monad域名

网址

https://app.nad.domains/

在输入框中输入名字,如果下方出现的是Available就可以点击注册

post image

4 代币兑换

网址

https://monad.ambient.finance/

把Swap,Trade,Pool 都交互一遍

post image