令转账金额为零值,可以通过入参检查,check_tx报错有歧义
Closed this issue · 2 comments
WZJ-Study commented
令转账金额为零值,可以通过入参检查,并且check_tx报错有歧义
$ ./qoscli tx transfer --senders 'alice,0QOS' --receivers 'bob,0QOS' --indent
Password to sign with 'alice':
{
"check_tx": {
"code": 1,
"log": "{\"codespace\":\"sdk\",\"code\":1,\"message\":\"TxStd's ITx ValidateData error: ERROR:\\nCodespace: transfer\\nCode: 201\\nMessage: \\\"QOS and QSCs in address1eqqnaps04l6ht9xahtrfgg59ksllcq9qr8630q are zero\\\"\\n\"}",
"gasWanted": "100000"
},
"deliver_tx": {},
"hash": "31E5CBF0D10BAA5A7BB34A1A420CF15964B04356695357B11CC10641C71CE0D4",
"height": "0"
}
ERROR: {"codespace":"sdk","code":1,"message":"TxStd's ITx ValidateData error: ERROR:\nCodespace: transfer\nCode: 201\nMessage: \"QOS and QSCs in address1eqqnaps04l6ht9xahtrfgg59ksllcq9qr8630q are zero\"\n"}
可以看到报错信息是”QOS and QSCs in address1eqqnaps04l6ht9xahtrfgg59ksllcq9qr8630q are zero“,给人的第一感觉是address1eqqnaps04l6ht9xahtrfgg59ksllcq9qr8630q的账户余额为零,而不是这次转账的金额为零。
但是通过查询可以看到address1eqqnaps04l6ht9xahtrfgg59ksllcq9qr8630q的账户余额不为零:
$ ./qoscli query account alice --indent
{
"type": "qos/types/QOSAccount",
"value": {
"base_account": {
"account_address": "address1eqqnaps04l6ht9xahtrfgg59ksllcq9qr8630q",
"public_key": {
"type": "tendermint/PubKeyEd25519",
"value": "EbIqepd8q2+8XnTjvlqjnWb1aptxLEkjiSuvX05nuBg="
},
"nonce": "2"
},
"qos": "696455",
"qscs": null
}
}
从设计上来说,转账金额为零值的情况应该在入参检查时就不允许通过。
TokenxyWZY commented
fix #335
wangkuanzzu commented
qos version:branch -> develop
the bug has been fixed。the result of verification below:
[vagrant@vagrant-192-168-1-201 qos]$ qoscli tx transfer --senders 'acc0,0qos' --receivers 'acc1,0qos'
Password to sign with 'acc0':
{"check_tx":{"code":1,"log":"{\"codespace\":\"sdk\",\"code\":1,\"message\":\"TxStd's ITx ValidateData error: ERROR:\\nCodespace: transfer\\nCode: 201\\nMessage: \\\"QOS and QSCs in transfer are zero\\\"\\n\"}","gasWanted":"9223372036854775807","gasUsed":"18000","events":[]},"deliver_tx":{},"hash":"0FF5437457E3AF1DBE9B3EC8740A39B68F05F61FE7D0C478C40F79FD69D36445","height":"0"}
ERROR: {"codespace":"sdk","code":1,"message":"TxStd's ITx ValidateData error: ERROR:\nCodespace: transfer\nCode: 201\nMessage: \"QOS and QSCs in transfer are zero\"\n"}
从结果看出提示修改为:QOS and QSCs in transfer are zero