#deprecated #amount #address #rpc-client #komodo #response #arguments

komodo_rpc_client

一个使用Rust编写的Komodo RPC客户端

4个版本

使用旧的Rust 2015

0.1.2 2020年6月26日
0.1.1 2020年1月8日
0.0.2 2018年11月8日
0.0.1 2018年10月10日

#74 in #amount


用于 komodo_airdrop

MIT 许可证

115KB
3K SLoC

Komodo (KMD) RPC客户端

一个用于Komodo (KMD) 的RPC客户端,使用Rust编写。将来,您可以使用这个库来创建可以与Komodo区块链通信的Rust应用程序。由于Crypto Conditions支持所有Komodo资产链,因此可以通过这个crate创建dApps。或者至少,这是我对此的目标。

向coblox团队感谢他们的Rust BTC RPC客户端

这是一个进行中的项目!

待办事项

  • 实现所有API调用
  • 将地址参数转换为类型
  • 处理空响应(setaccount)
  • 改进错误处理客户端
  • 在先前交易中查找redeemScript(如果有的话)
  • 在参数中合理使用引用
  • Into<String>用作字符串类型的参数
  • 在参数中使用单个地址时,无需使用AddressList
  • 如果需要的资产链不在枚举中,定义自己的Chain
  • 正确公开参数/类型
  • 处理特殊案例:在fromaddressesz_mergetoaddress中使用通配符"*"
  • 为客户端提供手动RPC凭据
  • Unspent结构在响应中包含账户,这已被弃用。需要规避
  • listaddressgroupings返回一个包含3种不同类型的数组,对于每个不同的地址。如何在serde中修复
  • 为几种类型添加辅助函数
    • 在向address_utxos输入金额时选择一组utxos

这个包装器旨在

  • 无状态,即一层薄薄的。使用此库的应用程序负责维护状态。

特性

  • getaddressutxos获取的utxolist转换为createrawtransaction中的输入
  • 在Win、MacOS和Ubuntu/Debian上自动从配置文件中获取KMD/Assetchain参数

目前支持的操作

以下是从 KMD版本 0.3.3b 开始的 Rust 客户端中 RPC 调用的列表

备注

  • valueSatvalueZat 分别被省略在 getrawtransactiondecoderawtransaction
  • 一些网络 RPC 在 komodod 中没有返回响应。这些 RPC 在进一步通知之前不受支持,包括:
    • addnode
    • clearbanned
    • z_importkey
    • z_importviewingkey
    • z_importwallet
    • importaddress
    • importwallet
  • Sapling 不支持 z_exportviewingkey 或一般查看密钥
  • 在实际请求之前检查 RPC 参数
    • 地址参数中的地址有效(目前仅为基本长度检查)
  • sendtoaddress 返回的 transaction id 是小端序,与在浏览器中看到的不同。在 TransactionId 类型上调用 be_hex_string,你将得到大端序的 txid。
    • 反序列化的交易 id 总是小端序。

RPCs

CClib
  • cclib 方法 [evalcode] [JSON 参数]
  • cclibaddress [evalcode] [pubkey]
  • cclibinfo
FSM
  • FSMaddress [pubkey]
  • FSMcreate 名称 状态
  • FSMinfo 资金交易 txid
  • FSMlist
Addressindex
  • checknotarization
  • getaddressbalance
  • getaddressdeltas
  • getaddressmempool
  • getaddresstxids
  • getaddressutxos
  • getnotarypayinfo
  • getsnapshot
Auction
  • auctionaddress [pubkey]
Blockchain
  • coinsupply
  • getbestblockhash
  • getblock "hash|height" ( verbose )
  • getblockchaininfo
  • getblockcount
  • getblockhash 索引
  • getblockhashes 时间戳 (需要 timestampindex=1)
  • getblockheader "hash" ( verbose )
  • getchaintips
  • getdifficulty
  • getlastsegidstakes 深度
  • getmempoolinfo
  • getrawmempool ( verbose ) //
  • getspentinfo "txid" 索引
  • gettxout "txid" n ( includemempool )
  • gettxoutproof ["txid",...] ( blockhash ) 需要 -txindex
  • gettxoutsetinfo
  • kvsearch 键
  • kvupdate 键 "值" 天数 密码
  • minerids 需要 height
  • notaries height 时间戳
  • verifychain ( 检查级别 numblocks )
  • verifytxoutproof "proof"
Channels
  • channelsaddress 目的公钥
  • channelsclose 开放交易 txid
  • channelsinfo [opentxid]
  • channelsinfo [opentxid]
  • channelsopen 目的公钥 n 次付款 付款
  • channelspayment 前一交易 txid 原始 txid n 金额
  • channelsrefund 停止 txid 原始 txid
Control
  • geterablockheights
  • getiguanajson
  • getinfo
  • getnotarysendmany
  • help ( "命令" )
  • stop
Crosschain
  • MoMoMdata 符号 kmdheight ccid
  • assetchainproof 需要 txid
  • calc_MoM height MoMdepth
  • getNotarisationsForBlock 区块哈希
  • getimports "hash|height"
  • getwalletburntransactions "count"
  • height_MoM height
  • importdual 仅在 -ac_import 链上工作
  • importgatewaybind 仅在 -ac_import 链上工作
  • importgatewaycompletesigning 仅在 -ac_import 链上工作
  • importgatewayddress [pubkey]
  • importgatewaydeposit 仅在 -ac_import 链上工作
  • importgatewaybind 仅在 -ac_import 链上工作
  • importgatewaymarkdone completesigningtx coin
  • importgatewayspartialsign 仅在 -ac_import 链上工作
  • importgatewaypendingdeposits bindtxid coin
  • importgatewaypendingwithdraws bindtxid coin
  • importgatewayprocessed bindtxid coin
  • importgatewaywithdraw 仅在 -ac_import 链上工作
  • migrate_checkburntransactionsource 燃烧 txid
  • migrate_completeimporttransaction 导入 tx
  • migrate_converttoexport 原始 tx 目标符号 导出金额
  • migrate_createburntransaction 目标符号 目标地址 金额 [tokenid]
  • migrate_createimporttransaction 燃烧 tx 分配 [notarytxid-1]..[notarytxid-N]
  • migrate_createnotaryapprovaltransaction 燃烧 tx 交易输出证明
  • scanNotarisationsDB 区块高度 符号 [blocksLimit=1440]
  • selfimport 仅在 -ac_import 链上工作
骰子
  • diceaddfunds 名称 资金交易ID 金额
  • diceaddress [公钥]
  • dicebet 名称 资金交易ID 金额 赔率
  • dicefinish 名称 资金交易ID 投注交易ID
  • dicefund 名称 资金 最小投注 最大投注 最大赔率 超时区块
  • diceinfo 资金交易ID
  • dicelist
  • dicestatus 名称 资金交易ID 投注交易ID
披露
  • z_getpaymentdisclosure "txid" "js_index" "output_index" ("消息")
  • z_validatepaymentdisclosure "paymentdisclosure"
水龙头
  • faucetaddress [公钥]
  • faucetfund 金额
  • faucetget
  • faucetinfo
网关
  • gatewaysaddress [公钥]
  • gatewaysbind 代币ID 或预言机交易ID 代币 供应量 M N 公钥(s)
  • gatewaysclaim 绑定交易ID 代币 存款交易ID 目的公钥 金额
  • gatewayscompletesigning 提款交易ID 代币 十六进制
  • gatewaysdeposit 绑定交易ID 高度 代币 代币交易ID 投注vout 存款十六进制 证明 目的公钥 金额
  • gatewaysdumpprivkey 绑定交易ID 地址
  • gatewaysexternaladdress 绑定交易ID 公钥
  • gatewaysinfo 绑定交易ID
  • gatewayslist
  • gatewaysmarkdone 完成签名交易ID 代币交易ID
  • gatewayspartialsign 交易ID地址 引用代币 十六进制
  • gatewayspendingdeposits 绑定交易ID 代币
  • gatewayspendingwithdraws 绑定交易ID 代币
  • gatewaysprocessed 绑定交易ID 代币
  • gatewayswithdraw 绑定交易ID 代币 提款公钥 金额
生成
  • generate 块数
  • getgenerate
  • setgenerate generate ( genproclimit )
继承人
  • heiradd 交易费 资金 资金交易ID
  • heiraddress 公钥
  • heirclaim 交易费 资金 资金交易ID
  • heirfund 交易费 资金 继承人名称 继承人公钥 不活跃时间 备注 [代币ID]
  • heirinfo 资金交易ID
  • heirlist
彩票
  • lottoaddress [公钥]
Marmara
  • Marmaraaddress [公钥]
  • marmaracreditloop 交易ID
  • marmarainfo 首个高度 最后高度 最小金额 最大金额 [货币 发行者公钥]
  • marmaraissue 接收者公钥 金额 货币 到期时间 审批交易ID
  • marmaralock 金额 解锁高度
  • marmarapoolpayout 百分比 首个高度 "[["公钥":份额], ...]"
  • marmarareceive 发送者公钥 金额 货币 到期时间 batontxid
  • marmarasettlement batontxid
  • marmaratransfer 接收者公钥 金额 货币 到期时间 审批交易ID
挖矿
  • getblocksubsidy 高度
  • getblocktemplate ( "jsonrequestobject" )
  • getlocalsolps
  • getmininginfo
  • getnetworkhashps ( blocks height )
  • getnetworksolps ( blocks height )
  • prioritisetransaction
  • submitblock "hexdata" ( "jsonparametersobject" )
网络
  • addnode "node" "add|remove|onetry" (空响应)
  • clearbanned (空响应)
  • disconnectnode "node"
  • getaddednodeinfo dns ( "node" )
  • getconnectioncount
  • getdeprecationinfo
  • getnettotals
  • getnetworkinfo
  • getpeerinfo
  • listbanned
  • ping
  • setban "ip(/netmask)" "add|remove" (bantime) (absolute)
预言机
  • oraclesaddress [公钥]
  • oraclescreate 名称 描述 格式
  • oraclesdata 或预言机交易ID 十六进制字符串
  • oraclesfund 或预言机交易ID
  • oraclesinfo 或预言机交易ID
  • oracleslist
  • oraclesregister 或预言机交易ID 数据费用
  • oraclessamples 或预言机交易ID batonutxo 数量
  • oraclessubscribe 或预言机交易ID 发布者 金额
支付
  • paymentsaddress [公钥]
  • paymentsairdrop "[锁定区块,最小金额,最小到地址,顶部,底部,固定标志,%22排除地址%22,...,%22排除地址N%22]"
  • payments_airdroptokens "[%22tokenid%22,锁定区块,最小金额,最小到地址,顶部,底部,固定标志,%22排除公钥%22,...,%22排除公钥N%22]"
  • paymentscreate "[锁定区块,最小金额,%22paytxid0%22,...,%22paytxidN%22]"
  • paymentsfund "[%22createtxid%22,金额(,使用opret)]"
  • paymentsinfo "[%22createtxid%22]"
  • paymentslist
  • paymentsmerge "[%22createtxid%22]"
  • paymentsrelease "[%22createtxid%22,金额,(跳过最小值)]"
  • paymentstxidopret "[分配,%22scriptPubKey%22(,%22destopret%22)]"
挂钩
  • pegssaddress [公钥]
价格
  • mypriceslist [all|open|closed]
  • prices maxsamples
  • pricesaddfunding 投注交易ID 金额
  • pricesaddress [公钥]
  • pricesbet 金额 杠杆 "合成表达式"
  • pricescashout 投注交易ID
  • pricesgetorderbook
  • pricesinfo 投注交易ID [高度]
  • priceslist [all|open|closed]
  • pricesrefillfund 金额
  • pricesrekt 投注交易ID 高度
  • pricessetcostbasis 投注交易ID
原始交易
  • createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,...}
  • decoderawtransaction "hexstring"
  • decodescript "hex"
  • fundrawtransaction "hexstring"
  • getrawtransaction "txid" ( verbose )
  • 发送原始交易 "hexstring" ( 允许高费用 )
  • 签名原始交易 "hexstring" ( [{"txid":"id","vout":n,"scriptPubKey":"hex","redeemScript":"hex"},...] ["privatekey1",...] sighashtype )
奖励
  • rewardsaddfunding 名称 资金txid 数量
  • rewardsaddress [pubkey]
  • rewardscreatefunding 名称 数量 年化收益率 最小天数 最大天数 最小存款
  • rewardsinfo 资金txid
  • rewardslist
  • rewardslock 名称 资金txid 数量
  • rewardsunlock 名称 资金txid [txid]
代币
  • assetsaddress [pubkey]
  • mytokenorders [evalcode]
  • tokenaddress [pubkey]
  • tokenask 数量代币 代币id 价格
  • tokenbalance 代币id [pubkey]
  • tokenbid 数量代币 代币id 价格
  • tokencancelask 代币id 询问txid
  • tokencancelbid 代币id 报价txid
  • tokenconvert evalcode 代币id 公钥 数量
  • tokencreate 名称 供应 描述 [描述] [数据]
  • tokenfillask 代币id 询问txid 填充单位
  • tokenfillbid 代币id 报价txid 填充金额
  • tokeninfo 代币id
  • tokenlist
  • tokenorders [代币id]
  • tokentransfer 代币id 目的公钥 数量
工具
  • createmultisig nrequired ["key",...]
  • decodeccopret hex
  • estimatefee nblocks
  • estimatepriority nblocks
  • invalidateblock "hash"
  • jumblr_deposit "depositaddress"
  • jumblr_pause
  • jumblr_resume
  • jumblr_secret "secretaddress"
  • reconsiderblock "hash"
  • txnotarizedconfirmed txid
  • validateaddress "komodoaddress"
  • verifymessage "komodoaddress" "signature" "message"
  • z_validateaddress "zaddr"
钱包
  • addmultisigaddress nrequired ["key",...] ( "account" )
  • backupwallet "destination" (需要设置 -exportdir)
  • cleanwallettransactions "txid"
  • dumpprivkey "komodoaddress"
  • dumpwallet "filename" (需要设置 -exportdir)
  • encryptwallet "passphrase"
  • getaccount "KMD_address" (已弃用)
  • getaccountaddress "account" (已弃用)
  • getaddressesbyaccount "account" (已弃用)
  • getbalance ( "account" minconf includeWatchonly ) (account 已弃用)
  • getnewaddress ( "account" ) (account 已弃用)
  • getrawchangeaddress
  • getreceivedbyaccount "account" ( minconf ) (account 已弃用)
  • getreceivedbyaddress "KMD_address" ( minconf )
  • gettransaction "txid" ( includeWatchonly )
  • getunconfirmedbalance
  • getwalletinfo
  • importaddress "address" ( "label" rescan ) (空响应)
  • importprivkey "komodoprivkey" ( "label" rescan )
  • importwallet "filename" (空响应)
  • keypoolrefill ( newsize ) (空响应)
  • listaccounts ( minconf includeWatchonly) (已弃用)
  • listaddressgroupings
  • listlockunspent
  • listreceivedbyaccount ( minconf includeempty includeWatchonly) (已弃用)
  • listreceivedbyaddress ( minconf includeempty includeWatchonly)
  • listsinceblock ( "blockhash" target-confirmations includeWatchonly)
  • listtransactions ( "account" count from includeWatchonly)
  • listunspent ( minconf maxconf ["address",...] )
  • lockunspent unlock [{"txid":"txid","vout":n},...]
  • move "fromaccount" "toaccount" amount ( minconf "comment" ) (已弃用)
  • resendwallettransactions
  • sendfrom "fromaccount" "toKMDaddress" amount ( minconf "comment" "comment-to" ) (已弃用)
  • sendmany "fromaccount" {"address":amount,...} ( minconf "comment" ["address",...] )
  • sendtoaddress "KMD_address" amount ( "comment" "comment-to" subtractfeefromamount )
  • setaccount "KMD_address" "account" (已弃用)
  • setpubkey pubkey (不支持,因为返回类型错误)
  • settxfee 数量
  • signmessage "t-addr" "message"
屏蔽 (查看API)
  • z_exportkey "zaddr"
  • z_exportviewingkey "zaddr" 不支持sapling (https://github.com/zcash/zcash/issues/3060)
  • z_exportwallet "filename"
  • z_getbalance "address" ( minconf )
  • z_getnewaddress ( type )
  • z_getoperationresult (["operationid", ... ])
  • z_getoperationstatus (["operationid", ... ])
  • z_gettotalbalance ( minconf includeWatchonly )
  • z_importkey "zkey" ( rescan startHeight ) (无输出)
  • z_importviewingkey "vkey" ( rescan startHeight ) (无输出)
  • z_importwallet "filename" (无输出)
  • z_listaddresses ( 包含仅监视 )
  • z_listoperationids
  • z_listreceivedbyaddress "地址" ( 最小确认数 )
  • z_mergetoaddress ["fromaddress", ... ] "toaddress" ( 费用 ) ( 透明限制 ) ( 保密限制 ) ( 备注 )
  • z_sendmany "fromaddress" [{"address":... ,"amount":...},...] ( 最小确认数 ) ( 费用 )
  • z_shieldcoinbase "fromaddress" "tozaddress" ( 费用 ) ( 限制 )
  • zcbenchmark benchmarktype samplecount 已弃用
  • zcrawjoinsplit rawtx inputs outputs vpub_old vpub_new 已弃用
  • zcrawkeygen 已弃用
  • zcrawreceive zcsecretkey encryptednote 已弃用
  • zcsamplejoinsplit 已弃用

依赖项

~27MB
~550K SLoC