* use stack of contexts to implement snapshot revert
Closes#338
add exception revert test case
verify partial revert
mutate state after the reverted subcall
polish
update comments
name the module after the type name
remove the unnecessary Snapshot in outer layer
and add snapshot unit test
assert context stack is clean after tx processing
cleanups
fix context revert
fix comments
update comments
it's ok to commit in failed case too
Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
update comment and error message
add comment to cacheContext
k -> cs
Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
evm can handle state revert
renames and unit tests
* use table driven tests
* keep all the cosmos events
* changelog
* check for if commit function is nil
* fix changelog
* Update x/evm/keeper/context_stack.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* fix: issue #310
- add ip-addresses for localnet-setup generation
- add localnet-setup folder to keep localnet-setup-artifacts
- map localnet-setup-artifacts to containers
- change start-docker.sh to pick up generated testnet artifacts
* feat: get rid of explicit ip-address-assignments for containers
* feat: get rid of docker-localnet, introduce localnet-build and localnet-show-logstream, fix localnet-unsafe-reset and localnet-clean, add comments
* fix: add --no-cache on docker build, exclude build-directory
* miner namespace
* SetGasPrice call
* Added note plus fixed error logging
* Refactor to use the keyring in the miner namespace
* Changed keyring function return
* Added more detailed logs to unsupported functions
* Reverted changes on ethapi and just using a refrence to it on miner
* Creating a transaction
* fix condition
* Error string not capitalized
* suggested changes to setEtherbase
* change log level
* minor changes
* minor changes
* Sending tx to test the endpoint
* get tx nonce
* Using aphoton const and changing the logger to debug
* Using default RPC gas limit constant
* Apply suggestions from code review
Renames and log changes
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* pair programming session
* get gas
* Set gas prices note added
* Setting fess and max gas
* delete unnecessary log
* Apply suggestions from code review
return false in case of error
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Suggested changes applied
* Updated changelog and json_rpc docs
* Update CHANGELOG.md
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Update ethereum/rpc/namespaces/miner/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Update ethereum/rpc/namespaces/miner/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Update ethereum/rpc/namespaces/miner/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Update ethereum/rpc/namespaces/miner/api.go
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* Using the same coin denom as the gas price for the fee
Co-authored-by: ramacarlucho <ramirocarlucho@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
* keep the original context for GetCommittedState api
* fix method mutation
* keep estimateGas consistant
* added test after the original context is recovered
* add integration test for the gas consumption of sstore
* test the committed case
* move methods to keeper module
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* return geth error format
* fix format in gasestimate
* deal with other evm errors
* fix import
* fix lint
* add test
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
Solution: add windows script
build binary
check
windows bat working
windows batch file working
change gas limit
change create_empty_blocks
tidy up
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* add some unit tests for estimateGas
Also add some test environment setup, Closes#323
test estimateGas of erc20 token transfer
fix failed test case
the trick is to keep a clean transient store, by doing a commit
put artifacts to external file
* fix test failure
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* sync start command with cosmos-sdk 0.43
Closes#340
- add grpc web and rosetta server
- add tx/tm services
- add standalone mode
- update cosmos-sdk to 0.43.0-rc2, which fixed a bug in service startup
- add EnableUnsafeCORS option to evm rpc server
* set keyring options in root cmd and use viper prefix
* fix linter and pr suggestions
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
The previous code is not incorrect since the method `SetBlockBloom` use the `ctx` passed in rather than the `k.ctx`.
It's confusing that sometimes methods use ctx in parameter, sometimes use `k.ctx`, but that's another issue.
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* API Hello World
* Added all the debug functions + more data to try implementing the GC functions
* Getting transactions information
* Added cpu profile first approach functions
* new struct for cpuprofile and read filename from params
* cpuprofile, gcstats and memstats
* added comment
* All endpoints returns error instead of string
* Code cleanup
* Changed errors messages to match go-eth returns
* Removed activated flag and just using the file to check if it's running
* Added new endpoints to the json_rpc.md file
* GoTrace debug endpoints added
* Block profile endpoint added
* missing goeth calls
* added debug logs
* divide debug and internal api
* Using ExpandHome on server configuration
* Added rpc changes to changelog
* Logging go trace status
* Removed logger functions and moved logger errors to debug
* Added more logs to go trace
* Added more datailed changelog
* Removed trace debug api interface
* added comments
* cleanup
* Updated changelog
* disable lint on cpuprofile rename
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* return error in StopCpuProfile
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* return error in StopGoTrace
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* implement suggested changes
Co-authored-by: ramacarlucho <ramirocarlucho@gmail.com>
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
* do binary search to estimate gas
Closes#268
- Also refactor ApplyMessage to be more reuseable
move binary search to rpc api side to have a clean context each try
remove EstimateGas grpc api
* extract BinSearch function and add unit test
* do estimateGas in grpc query
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>