github.com/MetalBlockchain/metalgo@v1.11.9/vms/example/xsvm/execute/expects_context.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package execute 5 6 import ( 7 "github.com/MetalBlockchain/metalgo/vms/example/xsvm/block" 8 "github.com/MetalBlockchain/metalgo/vms/example/xsvm/tx" 9 ) 10 11 var _ tx.Visitor = (*TxExpectsContext)(nil) 12 13 func ExpectsContext(blk *block.Stateless) (bool, error) { 14 t := TxExpectsContext{} 15 for _, tx := range blk.Txs { 16 if err := tx.Unsigned.Visit(&t); err != nil { 17 return false, err 18 } 19 } 20 return t.Result, nil 21 } 22 23 type TxExpectsContext struct { 24 Result bool 25 } 26 27 func (*TxExpectsContext) Transfer(*tx.Transfer) error { 28 return nil 29 } 30 31 func (*TxExpectsContext) Export(*tx.Export) error { 32 return nil 33 } 34 35 func (t *TxExpectsContext) Import(*tx.Import) error { 36 t.Result = true 37 return nil 38 }