链眼社区:专注于区块链安全,区块链数据分析, 区块链信息整合,区块链技术服务和区块链技术咨询。

Raiden/雷电API手册:通道管理API
龙行天下
2021-11-18 18:08:55

开启通道 - PUT /api/(version)/channels

开启/创建新通道。

API请求

PUT /api/(version)/channels

URL参数:

  • version:API版本号,目前可用:v1 BODY参数对象,包含如下字段

  • partner_address:对手方地址

  • token_address:代币地址
  • total_deposit:存入总额
  • settle_timeout:结算超时参数

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数据格式不正确
  • 402 Payment Required – 发起地址ETH余额不足
  • 408 Request Timeout – 以太坊节点未及时获取存入事件,超时
  • 409 Conflict – 无效的输入,例如,结算超时参数太低
  • 500 Internal Server Error – Raiden节点内部错误

示例代码

curl请求示例:

curl -i -X PUT http://localhost:5001/api/v1/channels -H 'Content-Type: application/json' --data-raw '{
  "partner_address": "0x61C808D82A3Ac53231750daDc13c777b59310bD9", 
  "settle_timeout": 500, 
  "token_address": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", 
  "total_deposit": 35000000
}'

响应结果如下:

HTTP/1.1 201 CREATED
Content-Type: application/json

{
    "token_network_identifier": "0xE5637F0103794C7e05469A9964E4563089a5E6f2",
    "channel_identifier": 20,
    "partner_address": "0x61C808D82A3Ac53231750daDc13c777b59310bD9",
    "token_address": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
    "balance": 25000000,
    "total_deposit": 35000000,
    "state": "opened",
    "settle_timeout": 500,
    "reveal_timeout": 30
}

修改通道状态 - 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
}

合作伙伴