feat(contracts, l2geth): native ETH value support for ovmCALL (#1038)
* feat(contracts): add ovmCALL-types with native value
* add ovmCALLVALUE context
* add ovmBALANCE
* test success and revert cases
* test empty contract case
* chore: lint
* test(integration-tests): ovmCALL-types with value (compiler and wrapper)
* fix ovmDELEGATECALL type, update tests
* add ovmSELFBALANCE
* fix ovmDELEGATECALL jumping to CALL
* chore: lint
* fix(contracts): account for intrinsic gas of OVM_ETH sends
* fix(contracts): merge conflict bug
* fix(contracts): update gas benchmark
* feat(contracts, integration-tests): use new value-compatible compiler
* feat(contracts,l2geth): support value calls in OVM_ECDSAContractAccount
* fix(contracts): ovmDELEGATECALL does not change message context
* feat(contracts): sending value between EOAs
* test(integration-tests): ovmDELEGATECALL preserves ovmCALLVALUE
* test(integration-tests): assert ovmSELFBALANCEs correct
* test(integration-tests): intrinsic gas for eth value calls
* test(integration-tests): update gas values
* chore(contracts): lint
* feat(contracts, l2geth): eth_calls with nonzero value
* chore: minor fixups and comments based on PR feedback
* test(integration-tests): add requested tests from PR reviews
* test(integration-tests): ovmSELFBALANCE is preserved in ovmDELEGATECALLs
* fix(contracts): fix bug where ovmDELEGATECALL could fail if balance was lower than the ovmCALLVALUE
* chore: add changeset
* fix(contracts): update intrinsic gas for worst-case value sends
* chore: address final PR nits/improvements
Co-authored-by:
Kelvin Fichter <kelvinfichter@gmail.com>
Showing
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment