本文整理汇总了Golang中github.com/skycoin/skycoin/src/visor.Visor.Spend方法的典型用法代码示例。如果您正苦于以下问题:Golang Visor.Spend方法的具体用法?Golang Visor.Spend怎么用?Golang Visor.Spend使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/skycoin/skycoin/src/visor.Visor
的用法示例。
在下文中一共展示了Visor.Spend方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: makeValidTxnNoError
func makeValidTxnNoError(t *testing.T, mv *visor.Visor) coin.Transaction {
we := wallet.NewWalletEntry()
tx, err := mv.Spend(mv.Wallets[0].GetID(), visor.Balance{10 * 1e6, 0}, 0,
we.Address)
assert.Nil(t, err)
return tx
}
示例2: 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
}
示例3: 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)
}
示例4: 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
}
示例5: makeMoreBlocks
func makeMoreBlocks(mv *visor.Visor, n int,
now uint64) ([]visor.SignedBlock, error) {
dest := wallet.NewWalletEntry()
blocks := make([]visor.SignedBlock, n)
for i := 0; i < n; i++ {
tx, err := mv.Spend(mv.Wallets[0].GetID(), visor.Balance{10 * 1e6, 0},
0, dest.Address)
if err != nil {
return nil, err
}
mv.RecordTxn(tx)
sb, err := mv.CreateBlock(now + uint64(i) + 1)
if err != nil {
return nil, err
}
err = mv.ExecuteSignedBlock(sb)
if err != nil {
return nil, err
}
blocks[i] = sb
}
return blocks, nil
}
示例6: makeValidTxn
func makeValidTxn(mv *visor.Visor) (coin.Transaction, error) {
we := visor.NewWalletEntry()
return mv.Spend(visor.Balance{10 * 1e6, 0}, 0, we.Address)
}
示例7: makeValidTxn
func makeValidTxn(mv *visor.Visor) (coin.Transaction, error) {
we := wallet.NewWalletEntry()
return mv.Spend(mv.Wallets[0].GetID(), wallet.Balance{10 * 1e6, 0}, 0,
we.Address)
}