cardano api v0

draft: false date: 2018-06-01 16:42:09 cover: /images/avatar.jpeg toc: true tags: - bigzhu preview:


准备

文档

api v0 接口文档没有什么参数说明, 只能逐个调用摸索

v0 swagger 文件可以导入 postman 中, 方便调用测试.

生成钱包

http://118.193.19.254/api/wallets/new

{
"cwInitMeta": {
"cwName": "my wallet",
"cwAssurance": "CWAStrict",
"cwUnit": 0
},
"cwBackupPhrase": {
"bpToList": ["cause", "situate", "quarter", "clip", "shift", "shoot", "undo", "shallow", "solid","surge","hint","client"]
}
}
  • cwName 随意其一个名字
  • cwAssurance 必须填入 CWAStrict, 不清楚含义
  • cwUnit 填入数字可以过去, 不清楚含义
  • bpToList 助记词, 留空也可以, 但是这个钱包就类似一个公用钱包了, 任何人都可以操作

助记词

这里 有助记词的讨论

bip39 是一个 js 的生成助记词的库

廖雪峰 blog 上也说的很清楚了

账户和地址

生成钱包以后, 会自动生成账户和一个地址

转入(扫链)

向地址 DdzFFzCqrhsytWvfSvATEsXstDt5eJCSJJNsmwNzM8Zc85qhGGxaH5xrhxsgGkCkSqmD7wfYPvhnwVgTELZc3NXLp3D6rB6LdRvbURgR 转入 8 个 ada, 扣除手续费 0.2

调用参数分析

http://118.193.19.254/api/txs/histories?walletId=Ae2tdPwUPEZ6RfTnjmsfkfPnRq1Qc2KtKi7BBqT1yZHSR7ADbNxbpZ6HMgn&skip=0&limit=10 查出转入

  • walletId
  • accountId
  • skip 跳过几条?
  • limit 查出几条来?

结果分析

直接备注在后

{
    "Right": [
        [
            {
                "ctId": "c404434f5316964d4d0a756e0704347ca81190e735717fae3dac338cdad8958a",(tx_id)
                "ctAmount": {
                    "getCCoin": "7800000"(金额/1000000)
                },
                "ctConfirmations": 0,(确认数)
                "ctMeta": {
                    "ctmDate": 1527067531(时间)
                },
                "ctInputs": [
                    [
                        "DdzFFzCqrhsnk8MNWMT8S9v7viubbjTuGbqj4cxv9JsCQ8XdYFEomJRJZ5AzK535D6r5aKarzdxgqQffEy5BrKE7mj6kihD4XLeP4L4A",(转出地址, 并不是我提币的地址, cardano 转出只管账户)
                        {
                            "getCCoin": "1769745400160"
                        }
                    ]
                ],
                "ctOutputs": [
                    [
                        "DdzFFzCqrhsssvyZ5fxkGqKhnbWcP9tRGLuquC54Z39ZQkcfeEjyn5WEHSpq9gnPunZ5TqPnVrxNYwNokEKAvhoyvCqWAKQDzqrBHcs2",
                        {
                            "getCCoin": "1769737429090"
                        }
                    ],
                    [
                        "DdzFFzCqrhsytWvfSvATEsXstDt5eJCSJJNsmwNzM8Zc85qhGGxaH5xrhxsgGkCkSqmD7wfYPvhnwVgTELZc3NXLp3D6rB6LdRvbURgR",
                        {
                            "getCCoin": "7800000"
                        }
                    ]
                ],
                "ctIsLocal": false,
                "ctIsOutgoing": false,
                "ctCondition": "CPtxNotTracked"
            }
        ],
        1(交易序列号?)
    ]
}

in - out 会有一个差, 就是矿工费用, 这里是 171070, 算是能算出来, 不过因为是转入, 其实根本不用关心的

转出

http://118.193.19.254/api/txs/payments/:from/:to/:amount

boy 中要发送

{
"groupingPolicy": "OptimizeForHighThroughput"
}

完全不明白这个参数的含义

  • from 不是转出地址, 而是 accountID, @ 分割的
  • to 接收的地址
  • amount 基本金额*1000000

一个有意思的地方

如果我像把一个账户提空, 转之前又不知道手续费是多少, 两个办法

调用一次, 等返回报错

{
    "Left": {
        "tag": "RequestError",
        "contents": "Cannot send transaction: Transaction creation error: not enough money, need 155381 coin(s) more"
    }
}

会告诉你还差多少钱, 但是要反复调用3次才知道金额变化

或者根据 https://cardanodocs.com/cardano/transaction-fees/cn/ 的说明自己来算

确认