事务交易
生成签名交易
可以使用Visionweb来完成此内容,关于Visionweb的使用,请参照:
Visionweb Github
Visionweb API docs
或者,您可以使用 API签名和广播流 来生成一个已签署的交易。
上面的文档中已给出使用API的完整流程,此处的以Visionweb为主,使用freezeBalance作为示例。
创建交易
创建一个未签名的,用于冻结资产的交易。
Visionweb冻结资产
签署交易
对创建的交易进行签名。
Visionweb 交易签名
❗️
不要在任何面向 Web /面向用户的应用程序中进行签名,这将暴露私钥。
使用在线签名的方案时,出于安全方面的考虑,请使用本地节点。
广播交易
对已签名的交易进行广播。
Visionweb 广播交易
📘
Visionweb中广播交易的方法是sendrawtransaction,没有broadcast关键词,详见源文件。
交易确认方法
VISION的区块确认的机制是某个区块产出后, 12个不同的FV基于这个区块产出后续区块后, 这个区块视为被确认。
一个交易是否被确认需要这个交易所在的区块被确认,VISION提供/walletsolidty/ 接口给用户更加方便的查询被确认的交易,下面是描述对不同类型的交易的确认方法。
transferContract 和 transferAssetContract | 能够通过/walletsolidity/gettransactioninfobyid或者/walletsolidity/gettransactionbyid查询到交易,即可确认。 |
---|---|
TriggerSmartContract | 有两种判断方式: 1. 通过/walletsolidity/gettransactioninfobyid 接口查到transactionInfo.receipt.result=success (建议不要用transactionInfo.result去判断,因为对于http 接口,成功的交易默认不返回该字段)。 2. 通过/walletsolidity/gettransactionbyid 接口查到transaction.ret.contractRet =success |
InternalTransaction | 通过/walletsolidity/gettransactioninfobyid查询, 1. HTTP 接口: 对于成功的交易,默认不返回 rejected 字段, 对于失败的交易,rejected=true。 2. GRPC 接口: 对于成功的交易,rejected=false(表示当前 internalTransaction 没有被舍弃), 对于失败的交易,rejected=true。 |
多类型交易
Vision Network中支持多种不同类型的交易:
protobuf文件
VISIONWEB.TRANSACTIONBUILDER
请阅读这些内容,了解更多细节。
Updated about 3 years ago