Remix部署合约+测试接口
根据Remix部署合约+测试接口
一、部署合约
Remix在线部署地址:http://remix.ethereum.org/
打开指定网址后,找到 contracts 文件夹,从中选取并打开本地的 MyToken.sol 合约文件。接着,点击该文件,切换到 Solidity compiler 编译页面。由于合约文件自身的编写信息会自动加载,版本号和语言设置通常无需手动调整,保持默认状态即可。如下图所示:
如果点选了自动编译和启动优化,会自动编译。如果没有点选,就点击complie sol文件。另外,也可以根据自己需求配置语言是否为主流的Solidity,EVM版本,以及是否启动优化。如下图所示:
编译好之后,我们进入部署页面进行部署,本次我们在OK测试链进行部署,首先连接小狐狸钱包,并登录一个钱包地址,如下图设置好之后,点击deploy进行部署,如果部署成功,下面就会多出一条合约,如下图。
点开合约里面就是合约接口,一般黄色的是提交接口,蓝色的是查询接口。以下是合约中的接口:
二,测试合约接口
1.测试 mint
接口(铸造代币)
功能说明
向指定地址增发代币,仅所有者可调用,用于初始发币或增发。
操作步骤
- 在
mint
输入框填:address to
:填入接收代币的地址(如 Remix 钱包的第一个账户0x5B...
)。uint256 amount
:填入铸造数量(如1000000000000000000
→ 1 个代币,需与合约小数位匹配,默认 18 位)。
- 点击
mint
按钮,MetaMask 确认交易(若用真实钱包)。
验证逻辑
- 交易成功后:
- 调用
balanceOf(to)
→ 余额应增加amount
。 - 调用
totalSupply
→ 总供应量应增加amount
。
- 调用
- 非所有者调用:交易回滚,报错
Ownable: caller is not the owner
。
2. 测试 approve
接口(授权花费)
功能说明
允许 spender
地址从你的账户花费指定数量代币,为 transferFrom
做准备。
操作步骤
- 在
approve
输入框填:address spender
:填入被授权地址(如 Remix 钱包的第二个账户0xAb...
)。uint256 value
:填入授权数量(如500000000000000000
→ 0.5 个代币)。
- 点击
approve
按钮,确认交易。
验证逻辑
- 交易成功后:
- 调用
allowance(yourAddress, spender)
→ 返回值应为value
。
- 调用
- 测试边界值:
- 填
value=0
→ 清除之前的授权,allowance
返回0
。
- 填
3. 测试 pause
接口(暂停合约)
功能说明
冻结合约关键功能(如转账、铸造),仅所有者可调用,用于紧急止损。
操作步骤
- 确保当前调用者是所有者(通过
owner
接口验证)。 - 点击
pause
按钮,确认交易。
验证逻辑
- 交易成功后:
- 调用
paused()
→ 返回true
。 - 尝试调用
transfer
或mint
→ 交易回滚,报错Pausable: paused
。
- 调用
4. 测试 unpause
接口(恢复合约)
功能说明
解除 pause
状态,恢复合约功能,仅所有者可调用。
操作步骤
- 确保合约已
pause
(调用paused()
验证返回true
)。 - 点击
unpause
按钮,确认交易。
验证逻辑
- 交易成功后:
- 调用
paused()
→ 返回false
。 - 重新调用
transfer
或mint
→ 交易应成功执行。
- 调用
5. 测试 burn
接口(销毁代币)
功能说明
销毁调用者自己账户的代币,减少总供应量,任何人可调用(需有足够余额)。
操作步骤
- 在
burn
输入框填:uint256 value
:填入销毁数量(如200000000000000000
→ 0.2 个代币)。
- 点击
burn
按钮,确认交易。
验证逻辑
- 交易成功后:
- 调用
balanceOf(yourAddress)
→ 余额减少value
。 - 调用
totalSupply
→ 总供应量减少value
。
- 调用
- 边界测试:
- 填
value > 余额
→ 交易回滚,报错ERC20: burn amount exceeds balance
。
- 填
注意要与MINT创建代币的地址一致。