diff options
Diffstat (limited to 'plugin/evm/block.go')
-rw-r--r-- | plugin/evm/block.go | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/plugin/evm/block.go b/plugin/evm/block.go deleted file mode 100644 index ec47490..0000000 --- a/plugin/evm/block.go +++ /dev/null @@ -1,75 +0,0 @@ -// (c) 2019-2020, Ava Labs, Inc. All rights reserved. -// See the file LICENSE for licensing terms. - -package evm - -import ( - "fmt" - - "github.com/ava-labs/go-ethereum/core/types" - "github.com/ava-labs/go-ethereum/rlp" - - "github.com/ava-labs/gecko/ids" - "github.com/ava-labs/gecko/snow/choices" - "github.com/ava-labs/gecko/snow/consensus/snowman" -) - -// Block implements the snowman.Block interface -type Block struct { - id ids.ID - ethBlock *types.Block - vm *VM -} - -// ID implements the snowman.Block interface -func (b *Block) ID() ids.ID { return b.id } - -// Accept implements the snowman.Block interface -func (b *Block) Accept() { - b.vm.ctx.Log.Verbo("Block %s is accepted", b.ID()) - b.vm.updateStatus(b.ID(), choices.Accepted) -} - -// Reject implements the snowman.Block interface -func (b *Block) Reject() { - b.vm.ctx.Log.Verbo("Block %s is rejected", b.ID()) - b.vm.updateStatus(b.ID(), choices.Rejected) -} - -// Status implements the snowman.Block interface -func (b *Block) Status() choices.Status { - status := b.vm.getCachedStatus(b.ID()) - if status == choices.Unknown && b.ethBlock != nil { - return choices.Processing - } - return status -} - -// Parent implements the snowman.Block interface -func (b *Block) Parent() snowman.Block { - parentID := ids.NewID(b.ethBlock.ParentHash()) - block := &Block{ - id: parentID, - ethBlock: b.vm.getCachedBlock(parentID), - vm: b.vm, - } - b.vm.ctx.Log.Verbo("Parent(%s) has status: %s", block.ID(), block.Status()) - return block -} - -// Verify implements the snowman.Block interface -func (b *Block) Verify() error { - _, err := b.vm.chain.InsertChain([]*types.Block{b.ethBlock}) - return err -} - -// Bytes implements the snowman.Block interface -func (b *Block) Bytes() []byte { - res, err := rlp.EncodeToBytes(b.ethBlock) - if err != nil { - panic(err) - } - return res -} - -func (b *Block) String() string { return fmt.Sprintf("EVM block, ID = %s", b.ID()) } |