修改通道状态 - PATCH /api/(version)/channels/(token_address)/(partner_address)
关闭指定的通道,或者增加存入资金。
API请求
PATCH /api/(version)/channels/(token_address)/(partner_address)
URL参数:
- version:API版本号,目前可用:v1
- token_address:代币地址
- partner_address:对手方地址
BODY参数对象,包含如下字段
- state:目标状态,可用:
closed
,即关闭通道 - total_deposit:增加的存入资金
API响应
返回通道对象,包含如下字段:
- token_network_identifier:代币网络标识符
- channel_identifier:通道标识符
- partner_address:对手方地址
- token_address:代币地址
- balance:余额
- total_deposit:存入总额
- state:状态
- settle_timeout:结算超时块数
- reveal_timeout:揭示超时块数
http响应的状态码可能为以下值:
- 201 Created – 通道创建成功
- 400 Bad Request –
- 请求JSON数据格式不正确
- 没有指定state或total_deposit参数
- state参数不是有效的通道状态
- 402 Payment Required – 发起地址ETH余额不足
- 404 Not Found – 指定代币或对手方不是有效的eip55以太坊地址
- 408 Request Timeout – 以太坊节点未及时获取存入事件,超时
- 409 Conflict –
- 通道不存在,或者
- 试图同时修改state和total_deposit参数,或者
- 试图存入的代币数量少于链上通道余额,或者
- 试图存入多余测试上线的代币
- 500 Internal Server Error – Raiden节点内部错误
示例代码
curl关闭通道的请求示例:
curl -i -X PATCH http://localhost:5001/api/v1/channels/0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8/0x61C808D82A3Ac53231750daDc13c777b59310bD9 \
-H 'Content-Type: application/json' --data-raw '{"state": "closed"}'
curl增加存入金额的请求示例:
curl -i -X PATCH http://localhost:5001/api/v1/channels/0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8/0x61C808D82A3Ac53231750daDc13c777b59310bD9 \
-H 'Content-Type: application/json' --data-raw '{"total_deposit": 100}'
响应结果示例:
HTTP/1.1 200 OK
Content-Type: application/json
{
"token_network_identifier": "0xE5637F0103794C7e05469A9964E4563089a5E6f2",
"channel_identifier": 20,
"partner_address": "0x61C808D82A3Ac53231750daDc13c777b59310bD9",
"token_address": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
"balance": 25000000,
"total_deposit": 35000000,
"state": "closed",
"settle_timeout": 500,
"reveal_timeout": 30
}