当前位置: 首页>>代码示例>>Golang>>正文


Golang Visor.RecordTxn方法代码示例

本文整理汇总了Golang中github.com/skycoin/skycoin/src/visor.Visor.RecordTxn方法的典型用法代码示例。如果您正苦于以下问题:Golang Visor.RecordTxn方法的具体用法?Golang Visor.RecordTxn怎么用?Golang Visor.RecordTxn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/skycoin/skycoin/src/visor.Visor的用法示例。


在下文中一共展示了Visor.RecordTxn方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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
}
开发者ID:up4k,项目名称:skycoin,代码行数:32,代码来源:genesis.go

示例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)
}
开发者ID:up4k,项目名称:skycoin,代码行数:14,代码来源:visor_test.go

示例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
}
开发者ID:up4k,项目名称:skycoin,代码行数:17,代码来源:visor_test.go

示例4: 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
}
开发者ID:notsoshifty,项目名称:skycoin,代码行数:23,代码来源:visor_test.go


注:本文中的github.com/skycoin/skycoin/src/visor.Visor.RecordTxn方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。