本文整理汇总了Golang中github.com/skycoin/skycoin/src/visor.Visor.CreateAndExecuteBlock方法的典型用法代码示例。如果您正苦于以下问题:Golang Visor.CreateAndExecuteBlock方法的具体用法?Golang Visor.CreateAndExecuteBlock怎么用?Golang Visor.CreateAndExecuteBlock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/skycoin/skycoin/src/visor.Visor
的用法示例。
在下文中一共展示了Visor.CreateAndExecuteBlock方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: transferAllToAddress
// Transfers all the coins and hours in genesis block to an address
func transferAllToAddress(v *visor.Visor, gb visor.SignedBlock,
dest coin.Address) (visor.SignedBlock, error) {
sb := visor.SignedBlock{}
if gb.Block.Head.BkSeq != uint64(0) {
return sb, errors.New("Must be genesis block")
}
// Send the entire genesis block to dest
if len(gb.Block.Body.Transactions) != 1 {
log.Panic("Genesis block has only 1 txn")
}
tx := gb.Block.Body.Transactions[0]
if len(tx.Out) != 1 {
log.Panic("Genesis block has only 1 output")
}
amt := visor.NewBalance(tx.Out[0].Coins, tx.Out[0].Hours)
tx, err := v.Spend(amt, 0, dest)
if err != nil {
return sb, err
}
// Add the tx to the unconfirmed pool so it can get picked up
err, _ = v.RecordTxn(tx)
if err != nil {
return sb, err
}
// Put the tx in a block and commit
sb, err = v.CreateAndExecuteBlock()
if err != nil {
return sb, err
}
return sb, nil
}
示例2: transferCoins
func transferCoins(mv *visor.Visor, v *visor.Visor) error {
// Give the nonmaster some money to spend
addr := v.Wallet.GetAddresses()[0]
tx, err := mv.Spend(visor.Balance{10 * 1e6, 0}, 0, addr)
if err != nil {
return err
}
mv.RecordTxn(tx)
sb, err := mv.CreateAndExecuteBlock()
if err != nil {
return err
}
return v.ExecuteSignedBlock(sb)
}
示例3: makeBlocks
func makeBlocks(mv *visor.Visor, n int) ([]visor.SignedBlock, error) {
dest := visor.NewWalletEntry()
blocks := make([]visor.SignedBlock, n)
for i := 0; i < n; i++ {
tx, err := mv.Spend(visor.Balance{10 * 1e6, 0}, 0, dest.Address)
if err != nil {
return nil, err
}
mv.RecordTxn(tx)
sb, err := mv.CreateAndExecuteBlock()
if err != nil {
return nil, err
}
blocks[i] = sb
}
return blocks, nil
}