> 技术文档 > Remix部署合约+测试接口

Remix部署合约+测试接口

根据Remix部署合约+测试接口
一、部署合约
Remix在线部署地址:http://remix.ethereum.org/
打开指定网址后,找到 contracts 文件夹,从中选取并打开本地的 MyToken.sol 合约文件。接着,点击该文件,切换到 Solidity compiler 编译页面。由于合约文件自身的编写信息会自动加载,版本号和语言设置通常无需手动调整,保持默认状态即可。如下图所示:

如果点选了自动编译和启动优化,会自动编译。如果没有点选,就点击complie sol文件。另外,也可以根据自己需求配置语言是否为主流的Solidity,EVM版本,以及是否启动优化。如下图所示:


编译好之后,我们进入部署页面进行部署,本次我们在OK测试链进行部署,首先连接小狐狸钱包,并登录一个钱包地址,如下图设置好之后,点击deploy进行部署,如果部署成功,下面就会多出一条合约,如下图。

点开合约里面就是合约接口,一般黄色的是提交接口,蓝色的是查询接口。以下是合约中的接口:

二,测试合约接口

1.测试 mint 接口(铸造代币

功能说明

向指定地址增发代币,仅所有者可调用,用于初始发币或增发。

操作步骤
  1. 在 mint 输入框填:
    • address to:填入接收代币的地址(如 Remix 钱包的第一个账户 0x5B...)。
    • uint256 amount:填入铸造数量(如 1000000000000000000 → 1 个代币,需与合约小数位匹配,默认 18 位)。
  2. 点击 mint 按钮,MetaMask 确认交易(若用真实钱包)。
验证逻辑
  • 交易成功后:
    • 调用 balanceOf(to) → 余额应增加 amount
    • 调用 totalSupply → 总供应量应增加 amount
  • 非所有者调用:交易回滚,报错 Ownable: caller is not the owner

2. 测试 approve 接口(授权花费)

功能说明

允许 spender 地址从你的账户花费指定数量代币,为 transferFrom 做准备。

操作步骤
  1. 在 approve 输入框填:
    • address spender:填入被授权地址(如 Remix 钱包的第二个账户 0xAb...)。
    • uint256 value:填入授权数量(如 500000000000000000 → 0.5 个代币)。
  2. 点击 approve 按钮,确认交易。
验证逻辑
  • 交易成功后:
    • 调用 allowance(yourAddress, spender) → 返回值应为 value
  • 测试边界值:
    • 填 value=0 → 清除之前的授权,allowance 返回 0


3. 测试 pause 接口(暂停合约)

功能说明

冻结合约关键功能(如转账、铸造),仅所有者可调用,用于紧急止损。

操作步骤
  1. 确保当前调用者是所有者(通过 owner 接口验证)。
  2. 点击 pause 按钮,确认交易。
验证逻辑
  • 交易成功后:
    • 调用 paused() → 返回 true
    • 尝试调用 transfer 或 mint → 交易回滚,报错 Pausable: paused


4. 测试 unpause 接口(恢复合约)

功能说明

解除 pause 状态,恢复合约功能,仅所有者可调用

操作步骤
  1. 确保合约已 pause(调用 paused() 验证返回 true)。
  2. 点击 unpause 按钮,确认交易。
验证逻辑
  • 交易成功后:
    • 调用 paused() → 返回 false
    • 重新调用 transfer 或 mint → 交易应成功执行。


5. 测试 burn 接口(销毁代币)

功能说明

销毁调用者自己账户的代币,减少总供应量,任何人可调用(需有足够余额)。

操作步骤
  1. 在 burn 输入框填:
    • uint256 value:填入销毁数量(如 200000000000000000 → 0.2 个代币)。
  2. 点击 burn 按钮,确认交易。
验证逻辑
  • 交易成功后:
    • 调用 balanceOf(yourAddress) → 余额减少 value
    • 调用 totalSupply → 总供应量减少 value
  • 边界测试:
    • 填 value > 余额 → 交易回滚,报错 ERC20: burn amount exceeds balance

注意要与MINT创建代币的地址一致。