NAV
shell python javascript golang
  • 关于 BLUEHELIX BAAS
  • API签名认证
  • 接口列表
  • 返回值列表
  • 关于 BLUEHELIX BAAS

    概述

    BLUEHELIX BAAS 提供REST风格的API(HTTPS + JSON),方便BHOP客户自助接入第三方公链。

    在请求API接口之前,需要申请APIKEY, 使用ED25519算法生成公私钥对(可以使用clients示例代码生成),用户自己保存私钥,16进制格式的公钥在上币申请时进行提交,得到APIKEY。

    申请方式

    上币申请材料

    参数
    币种ID ABC
    所属公链 ABC
    区块链浏览器 https://cn.etherscan.io
    代币精度 8
    代币总量 100亿
    地址格式校验正则表达式 ^0x[0-9a-fA-F]{50}$
    是否需要memo 是/否
    memo格式校验正则表达式 ^[0-9]{6-12}$
    服务器IP地址 100.100.100.100 (用作IP白名单限制,请提交固定IP,严禁使用动态IP)

    客户端代码示例

    提供3种编程语言(Python, Golang, Java)的用户端代码供用户使用 https://github.com/bhexopen/baas/clients

    API签名认证

    签名前准备的数据如下: HTTP_METHOD + | + HTTP_REQUEST_PATH + | + TIMESTAMP + | + PARAMS 连接完成后,对数据进行 ED25519 签名,签名后的 bytes 进行 Hex 编码。

    域名

    HTTP方法

    GET POST

    TIMESTAMP

    访问 API 时的 UNIX EPOCH 时间戳 (精确到毫秒), 过期时间120000ms。

    完成示例

    POST请求

    METHOD URL TIMESTAMP
    POST https://baas.bluehelix.com/api/v1/test 1580887996488

    参数见右:

    {
      "side": 1,
      "amount": "100.0543",
      "token_id": "ABC",
      "tx_hash":"0x1234567890",
      "block_height": 1000000
    }
    

    在进行签名之前,需要对请求参数,按照key的首字母进行排序,得到如下数据: POST|/api/v1/test|1580887996488|amount=100.0543&block_height=1000000&side=1&token_id=ABC&tx_hash=0x1234567890

    使用您本地生成的 private_key(私钥),对数据进行ED25519签名,并对签名后的bytes进行 Hex 编码, 得到最终签名signature。

    在HTTP请求时,写入header,即可通过校验:

    GET请求

    METHOD URL TIMESTAMP
    GET https://baas.bluehelix.com/api/v1/test?chain=ABC 1580887996488

    在进行签名之前,需要对请求参数,按照key的首字母进行排序,得到如下数据: GET|/api/v1/test?chain=ABC|1580887996488

    使用您本地生成的 private_key(私钥),对数据进行ED25519签名,并对签名后的bytes进行 Hex 编码, 得到最终签名signature。

    在HTTP请求时,写入header,即可通过校验:

    接口列表

    获取剩余地址数量

    获取剩余地址数量

    curl
      -X GET
      -H "BWAAS-API-KEY: 123"
      -H "BWAAS-API-TIMESTAMP: 1580887996488"
      -H "BWAAS-API-SIGNATURE: f321da3"
      https://baas.bluehelix.com/api/v1/address/unused/count/
    ?chain=ABC
    

    返回结果:

    {
        "code": 10000,
        "msg": "success",
        "data": 1000
    }
    

    HTTP Request:

    GET /api/v1/address/unused/count

    请求参数:

    参数 类型 必须 说明
    chain string 那个链,使用主网代币

    响应结果:

    参数 类型 说明
    code int 详情见返回类型表
    msg string 返回内容;失败时为错误信息
    data int 剩余地址数量

    添加充值地址

    添加充值地址

    curl
      -X POST
      -H "BWAAS-API-KEY: 123"
      -H "BWAAS-API-TIMESTAMP: 1580887996488"
      -H "BWAAS-API-SIGNATURE: f321da3"
      -- data '
        {
          "chain":"ABC",
          "addr_list":[
            "addr_111",
            "addr_222"
          ]
        }
      '
      https://baas.bluehelix.com/api/v1/address/add
    

    返回结果:

    {
        "code": 10000,
        "msg": "success",
    }
    

    HTTP Request:

    POST /api/v1/address/add

    请求参数:

    参数 类型 必须 说明
    chain string 那个链,使用主网代币
    addr_list []string 地址列表

    响应结果:

    参数 类型 说明
    code int 详情见返回类型表
    msg string 返回内容;失败时为错误信息

    充值到账通知

    充值到账通知

    curl
      -X POST
      -H "BWAAS-API-KEY: 123"
      -H "BWAAS-API-TIMESTAMP: 1580887996488"
      -H "BWAAS-API-SIGNATURE: f321da3"
      -- data '
        {
            "token_id": "ABC",
            "from": "addr1",
            "to": "addr2",
            "memo":"1234",
            "amount": "124.23",
            "tx_hash": "1234",
            "index": "1",
            "block_height": "124",
            "block_time": "1234"
        }
      '
      https://baas.bluehelix.com/api/v1/notify/deposit
    

    返回结果:

    {
        "code": 10000,
        "msg": "success",
    }
    

    HTTP Request:

    POST /api/v1/notify/deposit

    请求参数:

    参数 类型 必须 说明
    token_id string 币种ID
    from string 从哪个地址转出来
    to string 转给那个地址
    memo string 可选 memo标识,传值时不能为空
    amount string 充值金额
    tx_hash string 交易hash
    index string 该充值所在交易中的位置
    block_height string 区块高度
    block_time string 区块时间(秒)

    响应结果:

    参数 类型 说明
    code int 详情见返回类型表
    msg string 返回内容;失败时为错误信息

    获取待处理提现请求

    获取待处理提现请求

    curl
      -X GET
      -H "BWAAS-API-KEY: 123"
      -H "BWAAS-API-TIMESTAMP: 1580887996488"
      -H "BWAAS-API-SIGNATURE: f321da3"
      https://baas.bluehelix.com/api/v1/withdrawal/orders
    

    返回结果:

    {
        "code": 10000,
        "msg": "success",
        "data"::[
            {
                "order_id": "1234",
                "token_id":"ABC",
                "to": "bhexaddr1",
                "memo": "bhexmemo",
                "amount": "12.34"
            },
            {
                "order_id": "2345",
                "token_id":"ABC",
                "to": "bhexaddr1",
                "memo": "bhexmemo",
                "amount": "12.34"
            }
        ]
    }
    

    HTTP Request:

    GET /api/v1/withdrawal/orders?chain=ABC

    请求参数:

    参数 类型 必须 说明
    chain string 那个链,使用主网代币

    响应结果:

    参数 类型 说明
    code int 详情见返回类型表
    msg string 返回内容;失败时为错误信息
    data []order 待处理提现订单列表

    order 信息:

    参数 类型 说明
    order_id string 订单id
    token_id string 提现币种
    to string 提现给那个地址
    memo string memo标记
    amount string 提现金额

    提现处理完成通知

    提现处理完成通知

    curl
      -X POST
      -H "BWAAS-API-KEY: 123"
      -H "BWAAS-API-TIMESTAMP: 1580887996488"
      -H "BWAAS-API-SIGNATURE: f321da3"
      --data '
      {
        "order_id": "1234",
        "token_id": "ABC",
        "to": "bhexaddr1",
        "memo": "bhexmemo",
        "amount": "12.34",
        "tx_hash": "0x5f99810a4154379e5b7951419a77250f020be54b78acb9a8747ff8b0ec75769d",
        "block_height": "6581548",
        "block_time": "1540480255"
      }
      '
      https://baas.bluehelix.com/api/v1/notify/withdrawal
    

    返回结果:

    {
        "code": 10000,
        "msg": "success",
    }
    

    HTTP Request:

    POST /api/v1/notify/withdrawal

    请求参数:

    参数 类型 必须 说明
    order_id string 订单id
    token_id string 提现币种
    to string 提现给那个地址
    memo string 可选 memo标记
    amount string 提现金额
    tx_hash string 交易hash
    block_height string 区块高度
    block_time string 区块时间(秒)

    响应结果:

    参数 类型 说明
    code int 详情见返回类型表
    msg string 返回内容;失败时为错误信息

    提现处理失败通知

    提现处理失败通知

    curl
      -X POST
      -H "BWAAS-API-KEY: 123"
      -H "BWAAS-API-TIMESTAMP: 1580887996488"
      -H "BWAAS-API-SIGNATURE: f321da3"
      --data '
      {
        "order_id": "1234",
        "token_id": "ABC",
        "reason": "invalid address"
      }
      '
      https://baas.bluehelix.com/api/v1/notify/failed
    

    返回结果:

    {
        "code": 10000,
        "msg": "success",
    }
    

    HTTP Request:

    POST /api/v1/notify/failed

    请求参数:

    参数 类型 必须 说明
    order_id string 订单id
    token_id string 提现币种
    reason string 失败原因

    响应结果:

    参数 类型 说明
    code int 详情见返回类型表
    msg string 返回内容;失败时为错误信息

    定期对账

    定期对账

    curl
      -X POST
      -H "BWAAS-API-KEY: 123"
      -H "BWAAS-API-TIMESTAMP: 1580887996488"
      -H "BWAAS-API-SIGNATURE: f321da3"
      --data '
      {
        "token_id": "ABC",
        "total_deposit_amount": "100000.567",
        "total_withdrawal_amount": "10000",
        "last_block_height": "100000"
      }
      '
      https://baas.bluehelix.com/api/v1/asset/verify
    

    返回结果:

    {
        "code": 10000,
        "msg": "success",
    }
    

    HTTP Request:

    POST /api/v1/asset/verify

    请求参数:

    参数 类型 必须 说明
    token_id string 提现币种
    total_deposit_amount string 总充值金额
    total_withdrawal_amount string 总提现金额
    last_block_height string 对账最高区块高度

    响应结果:

    参数 类型 说明
    code int 详情见返回类型表
    msg string 返回内容;失败时为错误信息

    返回值列表

    返回值 类型 说明
    10000 SUCCESS 成功
    10001 INVALID_SIGN 无效签名
    10002 INVALID_APIKEY 无效的api_key
    10003 INVALID_CHAIN 无效的chain
    10004 INVALID_TOKEN_ID 无效的token_id
    10005 INVALID_PARAMS 无效的参数
    10006 INVALID_TO_ADDRESS 无效的充币地址
    10007 INVALID_ORDER_ID 无效的订单id
    10008 INVALID_AMOUNT 无效的amount值
    10009 INVALID_DECIMALS 无效的精度
    10010 INVALID_BLOCK_HEIGHT 无效的区块高度
    10011 INVALID_BLOCK_TIME 无效的区块时间
    10012 INVALID_TXHASH 无效的tx_hash
    10013 INVALID_INDEX 无效的交易index
    10014 NETWORK_ERROR 网络错误
    10015 REPEAT_DEPOSIT 重复充值
    10016 ASSET_VERIFY_FAILED 资产校验失败
    10017 DEPOSIT_SUSPENDED 充值暂停
    10018 WITHDRAWAL_SUSPENDED 提现暂停
    10019 TIMESTAMP_EXPIRED 时间戳过期
    10020 MEMO_REQUIRED 需要memo
    10021 NEED_WAIT 通知提现失败时,需要等待队列释放
    10022 INVALID_FROM_ADDRESS 无效的from地址
    10023 ADDRESS_ENOUGH 备用地址足够多
    10024 NEED_RETRY 处理失败,需要客户端重试
    10025 INVALID_MEMO 无效的memo
    10026 ADDRESS_TOO_LONG 地址太长,最大 允许512