Transaction(TX) 的产生
Transaction(TX) 的产生
- CreateTransaction (A转账给B一个btc)
1) 返回值 bool
2) 传入参数
@scriptPubKey B的地址加上一些其他信息生成的
@nValue 要转账的金额(猜测n是num或者new的缩写)
@wtxNew 生成的新Tx(w是什么缩写未知)
@ nFeeRequiredRet 最终要返回的给矿工的小费
3) 主要调用
@ CRITICAL_BLOCK(cs_main) 暂时跳过
@ SelectionCoins(nValue,setCoins) 选择到具体的UTXO,把对对应的TX存在setCoins里面
4) 流程图
SelectCoins
1)返回值 bool
2)传入参数
@nTargetValue 需要凑够的金额
@setCoinsRet 选择的UTXO在这个set返回
3)主要调用
@CRITICAL_BLOCK(cs_mapWallet)暂时跳过
5) 流程图CommitTransactionSpent
- 返回值 bool
- 传入参数
@wtxIn 要写入Disk的Tx - 主要调用
@AddToWallet 判断收到的Tx是否重复,并写入Disk // 中间有一些没读懂
4)流程图
- AddToWallet
- 返回值 bool
- 参数列表
@wxtIn 要写入的Tx
3)主要调用
@wtx.WriteToDisk() 暂时跳过,看函数名应该是写入Disk的方法
4)流程图
- SendMoney(A转账给B一个btc)
- 返回值 bool
- 传入参数
@scriptPubKey 由B的公钥生成
@nValue 转账金额
@wtxNew 新交易 - 主要调用
@CreateTransaction 生成Tx
@CommitTransaction 扫尾工作,记录Tx
@wtxNew.AcceptTransaction 一定要成功
4)流程图