背景:今天在使用Solidity开发合约时,使用Remix开发工具发布合约,在调试时遇到bytes32数据格式,一时间不知道如何传参;特此记录一下
由于之前在Truffle中操作过权限,第一反应就是需要转成十六进制,于是转换为十六进制尝试
OPERATOR_ROLE ——十六进制——>>> 4f50455241544f525f524f4c45
发现报错了
解决方案:需补全64位十六进制,且带十六进制标识
"0x4f50455241544f525f524f4c4500000000000000000000000000000000000000"
问题解决!
附上Java字符串转换为十六进制方法
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());
}