5 bytes32Tostring 不起作用的,求大佬帮忙看下

pragma solidity ^0.4.26;

contract Bytes32ToString{
    
    bytes2 name=0x7a68;
    
    function changeIt() returns(string){
        
    //    return string(name);  
    
    }
    
    
    function bytes32Tostring(bytes32 _newname) view returns(string){
        
        bytes memory newname = new bytes(_newname.length);
        
        for(uint i = 0;i<_newname.length;i++){
            
            newname[i] = _newname[i];
            
        }
        
        return string(newname);
        
        
    }
    
    
  
}

https://www.bilibili.com/video/BV1St411a7Pk?t=41&p=16

我的这个和教程上是一样的,教程 bytes32Tostring 是起作用的,

我的一直在报这个错,不明白这个报错是表达什么意思,求教 image.png

call to Bytes32ToString.bytes32Tostring errored: Error encoding arguments: Error: incorrect data length (argument=null, value="0x7a68", code=INVALID_ARGUMENT, version=abi/5.0.7)

请先 登录 后评论

最佳答案 2021-04-16 11:23

INVALID ARGUMENT: 非法参数,你应该传入一个32字节的参数

把参数:0x7a68 变成:0x7a68000000000000000000000000000000000000000000000000000000000000

除0x后共64位=32个字节

请先 登录 后评论

其它 1 个回答

Tiny熊
  擅长:智能合约,以太坊
请先 登录 后评论
  • 2 关注
  • 0 收藏,6964 浏览
  • Eleven 提出于 2021-04-03 23:50