caivega / ipfslib

Other
2 stars 1 forks source link

S3 - jt_sendRawTransaction,如果参数是空数组或者里面不是string,抛错的格式不是复合的返回错误信息格式 #169

Closed foreso-GitHub closed 3 years ago

foreso-GitHub commented 3 years ago

jt_sendRawTransaction,如果参数是空数组或者里面不是string,抛错的格式不是复合的返回错误信息格式。 版本:v0.5.3-dev-20210107-780c20d1a3245c4ed02491403b15d342c3ee8635 TestCase:FCJT_sendRawTransaction_000050

参数为空数组
{
    "jsonrpc": "2.0",
    "method": "jt_sendRawTransaction",
    "params": [],
    "id": 1
}

{
    "error": {
        "description": "Malformed: bad parameter.",
        "information": "empty"
    },
    "id": 1,
    "jsonrpc": "2.0",
    "status": -269,
    "type": "temBAD_PARAMETER"
}

数组中的值不是string
{
    "jsonrpc": "2.0",
    "method": "jt_sendRawTransaction",
    "params": [112313],
    "id": 1
}

{
    "error": {
        "description": "Unexpected program state.",
        "information": "interface conversion: interface {} is float64, not string"
    },
    "id": 1,
    "jsonrpc": "2.0",
    "status": -189,
    "type": "tefEXCEPTION"
}
caivega commented 3 years ago

不是string好办,返回一个复合错误,里边有一个bad parameter的错误,但是空数组咱办?按统一格式的话,应该是返回复合错误,但是因为请示是空的,返回复合错误又有点不妥。。。

caivega commented 3 years ago

个人建议,一个办法,空的,不返回错误,只返回一个正确的空的结果返回,二个办法,就是对于空的数组,这种错误,统一返回bad parameter错误

caivega commented 3 years ago

不是string的情况,已经修复,下一个build验证,现返回如下错误

{
"error":{
"count": 1,
"description": "The compound error.",
"information": "1 errors"
},
"id": 1,
"jsonrpc": "2.0",
"result":[
{
"error":{
"description": "Malformed: bad parameter.",
"information": "tx blob is not string"
},
"status": -269,
"type": "temBAD_PARAMETER"
}
],
"status": 1000,
"type": "tedCOMPOUND"
}
caivega commented 3 years ago

暂时对于空的先这样返回,等有更好的办法再改,

当前对于空的返回如下错误,已经修复,下一个build验证

{
"error":{
"description": "The compound error.",
"information": "no parameter"
},
"id": 1,
"jsonrpc": "2.0",
"status": 1000,
"type": "tedCOMPOUND"
}
foreso-GitHub commented 3 years ago

当前对于空的返回如下错误,已经修复,下一个build验证

我觉得可以,但能否增加一个result空数组如下?这样就保持了格式的统一。

{
"error":{
"description": "The compound error.",
"information": "no parameter"
},
"result": [],
"id": 1,
"jsonrpc": "2.0",
"status": 1000,
"type": "tedCOMPOUND"
}
caivega commented 3 years ago

done, 下一个build验证

foreso-GitHub commented 3 years ago

在版本v0.5.3-dev-20210111-04c8f9a27b4f9ae2e0f7a74c592a900f7d5d8575中验证,已经修复。