Transaction(TX) 的产生

in #but7 years ago (edited)

Transaction(TX) 的产生

  1. 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) 流程图
  1. SelectCoins
    1)返回值 bool
    2)传入参数
    @nTargetValue 需要凑够的金额
    @setCoinsRet 选择的UTXO在这个set返回
    3)主要调用
    @CRITICAL_BLOCK(cs_mapWallet)暂时跳过
    5) 流程图

  2. CommitTransactionSpent

  1. 返回值 bool
  2. 传入参数
    @wtxIn 要写入Disk的Tx
  3. 主要调用
    @AddToWallet 判断收到的Tx是否重复,并写入Disk // 中间有一些没读懂
    4)流程图
  1. AddToWallet
  1. 返回值 bool
  2. 参数列表
    @wxtIn 要写入的Tx
    3)主要调用
    @wtx.WriteToDisk() 暂时跳过,看函数名应该是写入Disk的方法
    4)流程图
  1. SendMoney(A转账给B一个btc)
  1. 返回值 bool
  2. 传入参数
    @scriptPubKey 由B的公钥生成
    @nValue 转账金额
    @wtxNew 新交易
  3. 主要调用
    @CreateTransaction 生成Tx
    @CommitTransaction 扫尾工作,记录Tx
    @wtxNew.AcceptTransaction 一定要成功
    4)流程图