diff options
author | Guillaume Ballet <gballet@gmail.com> | 2018-07-25 20:56:39 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-25 20:56:39 +0800 |
commit | 7abedf9bbb725da8d610762d051af43085be1cda (patch) | |
tree | 7640e475868c575115cbcfde8bddb7b4484eee20 /core/vm/jump_table.go | |
parent | 27a278e6e35836999ac8e4d9a19c406407db8ae5 (diff) | |
download | go-tangerine-7abedf9bbb725da8d610762d051af43085be1cda.tar.gz go-tangerine-7abedf9bbb725da8d610762d051af43085be1cda.tar.zst go-tangerine-7abedf9bbb725da8d610762d051af43085be1cda.zip |
core/vm: support for multiple interpreters (#17093)
- Define an Interpreter interface
- One contract can call contracts from other interpreter types.
- Pass the interpreter to the operands instead of the evm.
This is meant to prevent type assertions in operands.
Diffstat (limited to 'core/vm/jump_table.go')
-rw-r--r-- | core/vm/jump_table.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/core/vm/jump_table.go b/core/vm/jump_table.go index f387e6133..deedf70cd 100644 --- a/core/vm/jump_table.go +++ b/core/vm/jump_table.go @@ -24,7 +24,7 @@ import ( ) type ( - executionFunc func(pc *uint64, env *EVM, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) + executionFunc func(pc *uint64, interpreter *EVMInterpreter, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) gasFunc func(params.GasTable, *EVM, *Contract, *Stack, *Memory, uint64) (uint64, error) // last parameter is the requested memory size as a uint64 stackValidationFunc func(*Stack) error memorySizeFunc func(*Stack) *big.Int |