调用合约方法参数解析不能自动 trim 空格,文档示例合约调用失败
依照文档示例运行Fact合约,文档地址:https://docs.chainmaker.org.cn/instructions/%E9%83%A8%E7%BD%B2%E7%A4%BA%E4%BE%8B%E5%90%88%E7%BA%A6.html 通过管理台部署合约,依照文档描述填写合约参数:
方法名称 | Method | Param |
---|---|---|
存证方法 | save | file_hash, file_name, time |
查询方法 | find_by_file_hash | file_hash |
save方法参数之间包含空格,合约可以成功发布,但调用的时候报错:
parse tx[0f0c41cf5e5d44ef9c2002be6c045c42335d77e61647417ea71ff18bc51c14cf] contract[test_rust_fact_2_0_0] parameters error:expect key no special characters, but got key:[ file_name]. letter, number, dot and underline are allowed
chainmaker-management后台日志输出如下:
[DEBUG] [SDK] v3@v3.0.1/sdk_user_contract.go:170 [SDK] begin to INVOKE contract, [contractName:test_rust_fact_2_0_0]/[method:save]/[txId:0f0c41cf5e5d44ef9c2002be6c045c42335d77e61647417ea71ff18bc51c14cf]/[params:[key:"file_hash" value:"1534" key:" file_name" value:"13543" key:" time" value:"2024-03-20" ]]
从这里可以看出来,参数配置中的空格被带入了合约调用参数中,这在使用的时候极不方便,文档中也没有说明,而给的示例会导致出错,试运行第一个合约就浪费了很多时间,希望尽快修复