Arran Schlosberg
44068c8bab
refactor: abstract options package ( #74 )
...
## Why this should be merged
Simplifies the creation and application of variadic options; this is
also applicable to many of my other WIP branches (e.g. `snapshot`).
## How this works
See `libevm/options/options.go`, which is very simple.
## How this was tested
Existing tests of `vm.PrecompileEnvironment.Call()`, which itself uses
refactored options.
2024-11-21 13:59:51 -08:00
Arran Schlosberg
210f8ab8e1
feat: vm.PrecompiledStatefulContract can make CALLs ( #40 )
...
* feat: `vm.PrecompiledStatefulContract` can make `CALL`s
* fix: caller propagation
* feat: precompile can override default caller in `Call()`
* refactor: `WithUNSAFEForceDelegate()` replaces `WithCaller()`
* refactor: `WithUNSAFECallerAddressProxying()` instead of `ForceDelegate`
This matches the pattern used by `ava-labs/coreth` `NativeAssetCall`.
* refactor: `type callType` replaces `rwInheritance` + `delegation` types
* refactor: abstract return-data-proxy contract bytecode
* doc: fix comments from `46346f51`
* fix: `PrecompileEnvironment.Addresses()` for all call types
* chore: readability, linting & mark upstream test flaky
* test: `PrecompileEnvironment.Call()`
* refactor: improved {read,maintain}ability
* doc: fix `evmCallArgs` example
* test: `PrecompileEnvironment.Call()` input data
* fix: write protection for non-zero call value
2024-09-30 17:26:50 +01:00