Truffle常用命令&Web3常用方法
truffle环境配置
-
修改truffle-config.js配置文件
修改networks下的development下的host和port端口信息。host和port是你链的IP和端口。
-
修改1_initial_migration.js配置文件
将你要部署的智能合约文件名称添加到此文件中,可配置多个。
truffle常用命令
# 查询版本
truffle version
# 编译合约
truffle compile
# 部署合约
truffle migrate
# 进入控制台
truffle console
# 运行truffle内置的区块链
truffle develop
truffle控制台语法
# 定义变量并对变量进行赋值
let 变量名 = await 表达式
# 例如:
# let instance = await MyNFT.deployed()
# 定义一个instance变量,接收了MyNFT合约的实例化对象。
#
# let accounts = await web3.eth.getAccounts()
# 定义一个accounts变量,接收了web3查询出来的账号信息。
#
合约实例化对象常用方法
**注意:**以下方法是合约继承了ERC20.sol和AccessControl.sol的,基本都是这俩父类中的方法。
方法名 | 返回值 | 说明 |
---|---|---|
合约对象名.address | String | 合约地址 |
合约对象名.grantRole(16进制角色名,账号地址) | 对账号进行授权 | |
合约对象名.hasRole(16进制角色名,账号地址) | Boolean | 账号是否有该角色 |
web3常用方法
方法名 | 返回值 | 说明 |
---|---|---|
web3.eth.getAccounts() | String[] | 链上账户集合 |
web3.utils.toHex(String str) | String | 对str进行十六进制解析 |
web3.utils.toWei(String str) | 结果要用toString()进行处理 | |
web3.utils.toWei(BN bn) | ||
web3.utils.fromWei(String str) | 返回正常数值类型 |
Note:
web3j中的方法查询的是主链上的,要查询合约交易的还需要自己封装一层。
Remix中bytes32数据类型为十六进制补全到64位
eg:“OPERATOR_ROLE"对应"0x4f50455241544f525f524f4c4500000000000000000000000000000000000000”
0x为十六进制标记
private static void convertStringToHex(String str) {
StringBuilder stringBuilder = new StringBuilder();
char[] charArray = str.toCharArray();
for (char c : charArray) {
String charToHex = Integer.toHexString(c);
stringBuilder.append(charToHex);
}
System.out.println("Converted Hex from String: "+stringBuilder.toString());
}