合约调用合约报错
【问题分类】
- [] bug
- P2P网络相关(包含libp2p,liquid)
- 链账户身份与权限相关(证书问题、public、多签投票问题)
- 核心交易引擎相关(交易池、DAG)
- 共识相关
- 智能合约相关
- 存储相关
- SDK相关
- 长安链CMC工具
- 长安链管理台
- 长安链浏览器
- 长安链合约IDE
- 长安链web签名插件
- 跨链相关
- 轻节点相关
- 隐私计算相关
- 密码学相关
- 其他补充:
【问题描述】(请对问题进行描述,方便定位问题)
链是public模式,合约使用的solidity,类型是RuntimeType_EVM 部署了callTest1和callTest2,调用callTest1的getAddrOwner的方法,参数传的是callTest2的地址,报上面的错。 使用java sdk和go sdk均是同样错误,详见附件go代码
【相关日志文件】(如果有报错日志请贴图,或者上传附件)
call.abi abi文件
call.bin 字节码文件
call.sol 合约源码
main.go go源码
func MakeAddrAndSkiFromKeyFilePath(keyFilePath string) (string, string, string, error) {
keyBytes, err := ioutil.ReadFile(keyFilePath)
if err != nil {
return "", "", "", err
}
privateKey, err := asym.PrivateKeyFromPEM(keyBytes, nil)
if err != nil {
return "", "", "", err
}
pub := privateKey.PublicKey().ToStandardKey()
var pkBytes []byte
var err1 error
switch k := pub.(type) {
case *rsa.PublicKey:
pkBytes, err1 = asn1.Marshal(rsaPublicKeyASN{
N: k.N,
E: k.E,
})
if err1 != nil {
return "", "", "", err1
}
default:
return "", "", "", err1
}
bytes2 := sha256.Sum256(pkBytes)
ski := hex.EncodeToString(bytes2[:])
addrInt, err := evmutils.MakeAddressFromHex(ski)
if err != nil {
return "", "", "", err
}
fmt.Sprintf("0x%s", addrInt.AsStringKey())
return addrInt.String(), fmt.Sprintf("0x%x", addrInt.AsStringKey()), ski, nil
}
【系统信息】(请填写系统信息,方便定位问题)
- chainmaker-go version * : [v2.1.0]
- OS & version * : [macos 11.2.2]
- docker镜像 version:
-
管理台 version:
- 如果是管理台的相关问题,请附带管理台版本,如果不是可忽略。
-
区块浏览器 version:
- 如果是浏览器的相关问题,请附带浏览器版本,如果不是可忽略。
-
合约IDE version:
- 如果是合约IDE的相关问题,请附带合约IDE版本,如果不是可忽略。
-
web签名插件 version:
- 如果是web签名插件的相关问题,请附带web签名插件版本,如果不是可忽略。
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information