-
Notifications
You must be signed in to change notification settings - Fork 256
Wallet接口
linj edited this page Nov 23, 2022
·
1 revision
[TOC]
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.Lock",
"params":[]
}
参数说明:
参数 | 类型 | 说明 |
---|
响应报文:
{
"id":int32,
"result":{"isOK":bool,"msg":"string"},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
isok | bool | 在成功时,返回 true;失败时,返回 false |
msg | string | 在成功时,为空;失败时,返回错误信息 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.UnLock",
"params":[{"passwd":"string","walletorticket":bool,"timeout":int32}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
passwd | string | 是 | 解锁密码 |
walletOrTicket | bool | 否 | true,只解锁ticket买票功能,false:解锁整个钱包 |
timeout | int64 | 否 | 超时时间 |
响应报文:
{
"id":int32,
"result":{"isOK":bool,"msg":"string"},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
isok | bool | 在成功时,返回 true;失败时,返回 false |
msg | string | 在成功时,为空;失败时,返回错误信息 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.SetPasswd",
"params":[{"oldPass":"string","newPass":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
oldPass | string | 是 | 第一次设置密码时,oldPass 为空 |
newPass | string | 是 | 待设置的新密码 必须是8个字符(包含8个)以上的数字和字母组合 |
响应报文:
{
"id":int32,
"result":{"isOK":bool,"msg":"string"},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
isok | bool | 在成功时,返回 true;失败时,返回 false |
msg | string | 在成功时,为空;失败时,返回错误信息 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.SetLabl",
"params":[{"addr":"string","label":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
addr | string | 是 | 账户地址 |
label | string | 是 | 待设置的账户标签 |
响应报文:
{
"id":int32,
"result":
{
"label":"string",
"acc":{"currency":int32,"balance":int64,"frozen":int64,"addr":"string"}
},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
currency | int32 | 货币类型 |
balance | int64 | 可用余额,1e8 表示 1 个 BTY |
frozen | int64 | 冻结金额 |
addr | string | 账户地址 |
示例: Request:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.SetLabl",
"params":[{"addr":"13TbfAPJRmekQxYVEyyGWgfvLwTa8DJW6U","label":"macAddrlabel"}]
}
Response:
{
"id":int32,
"result":
{
"label":"macAddrlabel",
"acc":{"currency":int32,"balance":18357590000,"frozen":0,"addr":"13TbfAPJRmekQxYVEyyGWgfvLwTa8DJW6U"}
},
"error":null
}
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.NewAccount",
"params":[{"label":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
label | string | 是 | 待设置的账户标签 |
响应报文:
{
"id":int32,
"result":
{
"label":"string",
"acc":{"currency":int32,"balance":int64,"frozen":int64,"addr":"string"}
},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
currency | int32 | 货币类型 |
balance | int64 | 可用余额,1e8 表示 1 个 BTY |
frozen | int64 | 冻结金额 |
addr | string | 账户地址 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.GetAccounts",
"params":[{"withoutBalance" : bool}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
withoutBalance | bool | 否 | 不填或false, 将返回account 的帐号信息。 为true 则返回 label 和 addr 信息, 其他信息为 0 |
响应报文:
{
"id":int32,
"result":
{
"wallets":
[
{
"label":"string",
"acc":{"currency":int32,"balance":int64,"frozen":int64,"addr":"string"}
},
{
"label":"string",
"acc":{"currency":int32,"balance":int64,"frozen":int64,"addr":"string"}
}
]
},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
currency | int32 | 货币类型 |
balance | int64 | 可用余额,1e8 表示 1 个 BTY |
frozen | int64 | 冻结金额 |
addr | string | 账户地址 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.MergeBalance",
"params":[{"to":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
to | string | 是 | 合并钱包上的所有余额到一个账户地址 |
响应报文:
{
"id":int32,
"result":{"hashes":["string"]}
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
hashes | [string] | 交易的 hash 列表 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.ImportPrivkey",
"params":[{"privkey":"string","label":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
privkey | string | 是 | 私钥 |
label | string | 是 | 导入账户标签 |
响应报文:
{
"id":int32,
"result":{"label":"string","acc":{"currency":int32,"balance":int64,"frozen":int64,"addr":"string"}},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
label | string | 账户标签 |
acc | Account | 账户详情 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.DumpPrivkey",
"params":[{"data":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
data | string | 是 | 待导出私钥的账户地址 |
响应报文:
{
"id":int32,
"result":{"data":"string"},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
data | string | 私钥 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.SetTxFee",
"params":[{"amount":int64}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
amount | int64 | 是 | 手续费 |
响应报文:
{
"id":int32,
"result":{"isOK":bool,"msg":"string"},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
isok | bool | 在成功时,返回 true;失败时,返回 false |
msg | string | 在成功时,为空;失败时,返回错误信息 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.SendToAddress",
"params":[{"from":"string","to":"string","amount":int64,"note":"string","isToken":bool,"tokenSymbol":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
from | string | 是 | 来源地址 |
to | string | 是 | 发送到地址 |
amount | int64 | 是 | 发送金额 |
note | string | 是 | 备注 |
isToken | bool | 是 | 是否是token类型的转账(非token转账这个不用填) |
tokenSymbol | string | 是 | toekn的symbol(非token转账这个不用填) |
响应报文:
{
"id":int32,
"result":{"hash":"string"}
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
hash | string | 交易hash |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.WalletTxList",
"params":[{"fromTx":"string","count":int32,"direction":int32}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
fromTx | string | 是 | Sprintf("%018d", height*100000 + index),表示从高度 height 中的 index 开始获取交易列表;第一次传参为空,获取最新的交易 |
count | int32 | 是 | 获取交易列表的个数 |
direction | int32 | 是 | 查找方式;0,获取最新的交易数据,倒叙排序,在交易列表中时间高度是递减的;1,正序排序,按照时间,区块高度增加的方向获取交易列表 |
mode | int32 | 是 | 获取交易列表的个数 |
sendRecvPrivacy | int32 | 否 | |
address | string | 否 | |
tokenname | string | 否 |
响应报文:
{
"id":0,
result":
{
"txDetails":
[
{
"tx":
{
"execer":"coins",
"payload":"0x18010a061080c8afa025",
"signature":
{
"ty":0,
"pubkey":"0x02504fa1c28caaf1d5a20fefb87c50a49724ff401043420cb3ba271997eb5a4387",
"signature":"0x304402200319c88c5cc349d6c75671f880e6dba2fc46268fe92f9b62ac4b4b52f63cdb700220153374f999044073fb3d12ba686eeb1f237291e3586eafdc4151f44030f86258"
},
"fee":1000000,
"expire":0,
"nonce":6281838661429879825,
"to":"1Dx744a6KQpDmv76sFMeR7W5SaQGREA2Bu"
},
"receipt":
{
"ty":3,
"logs":
[
{
"ty":2,
"log":"0x08c0cebafefbcf2a1080cafdfdfbcf2a18c0fbc2ffffffffffff01"
},
{
"ty":3,
"log":"0x0880cafdfdfbcf2a108082ceddd6cf2a1880b8d0dfdaffffffff01"
},
{
"ty":3,
"log":"0x1080c8afa0251880c8afa025"
}
]
},
"height":21706,
"index":75,
"blockTime":1516110740,
"amount":10000000000,
"fromAddr":"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt",
"txHash":"0xc33717bad521f075966a1ed3835904d0acab863493e9cce5d3cd08e7df934751"
"actionName": "genesis"
}
]
}
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
execer | string | 当其值等于 "coins" 表示交易与钱包相关,其他过滤 |
payload | string | 交易内容,需要解析 |
signature | Signature | 交易签名 |
fee | int64 | 交易手续费 |
expire | int64 | 交易过期区块高度或者时间,大于 1e9 时,表示时间,否则表示高度 |
nonce | int64 | 随机数 |
to | string | 接收地址 |
receipt | ReceiptLog | 中当 ty 等于 2 时,交易有效 |
height | int64 | 交易所在区块高度 |
index | int64 | 用于获取交易 |
txhash | string | 交易哈希 |
actionname | string | coins(transfer,withdraw,genesis),ticket(genesis,open,close,miner 挖矿所得) |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.SignRawTx",
"params":[{"addr":"string","key":"string","txhex":"string","expire":"string","index":int32}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
addr | string | 是 | 签名地址 |
privkey | string | 是 | 签名私钥,addr与key可以只输入其一 |
txHex | string | 是 | 交易原始数据 |
expire | string | 是 | 过期时间,可输入如"300ms","-1.5h"或者"2h45m"的字符串,有效时间单位为"ns", "us" (or "µs"), "ms", "s", "m", "h" |
index | int32 | 是 | 若是签名交易组,则为要签名的交易序号,从1开始,小于等于0则为签名组内全部交易 |
fee | int64 | 否 | 交易费,单位1/10^8 BTY, 为0时将自动设置合适交易费 |
token | string | 否 | |
newToAddr | string | 否 |
响应报文:
{
"id":int32,
"result":{"txhex":"0x7ee6331ed623de7f02721f84f898a502494f9a2f6524cce942fb077e0624896d"},
"error":null
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
txhex | string | 签名后的交易二进制码 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.GenSeed",
"params":[{"lang":int32}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
lang | int32 | 是 | lang=0:英语,lang=1:简体汉字 |
响应报文:
{
"id":int32,
"result":{"seed":"string"}
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
seed | string | seed字符串 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.SaveSeed",
"params":[{"seed":"string","passwd":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
seed | string | 是 | 种子要求16个单词或者汉字,参考genseed输出格式,需要空格隔开 |
passwd | string | 是 | 加密密码,必须大于或等于8个字符的字母和数字组合 |
响应报文:
{
"id":int32,
"result":
{
"isOK":bool,
"msg":"string"
}
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
isok | bool | 在成功时,返回 true;失败时,返回 false |
msg | string | 在成功时,为空;失败时,返回错误信息 |
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.GetSeed",
"params":[{"passwd":"string"}]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
passwd | string | 是 | 加密密码 |
响应报文:
{
"id":int32,
"result":{"seed":"string"}
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
seed | string | 返回seed字符串 |
###5 钱包状态相关
请求报文:
{
"jsonrpc":"2.0",
"id":int32,
"method":"Chain33.GetWalletStatus",
"params":[]
}
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|
响应报文:
{
"isWalletLock": bool,
"isAutoMining": bool,
"isHasSeed": bool,
"isTicketLock": bool
}
参数说明:
参数 | 类型 | 说明 |
---|---|---|
isWalletLock | bool | 钱包解锁状态时,返回false;锁定状态时,返回true |
isAutoMining | bool | true为自动开启挖矿 |
isHasSeed | bool | true为已经存在seed |
isTicketLock | bool | ticket解锁状态时,返回false;锁定状态时,返回true |
hello world