To make simulations as realistic as possible, we need to give agents some raw ether and force them to pay gas for transactions. At the moment, the gas price has been fixed to zero.
Solution
We can set another parameter in EnvironmentParameters similar to how I commented on #418. We can have an enum, or something, that allows the user to choose some gas rules for the environment. They can be externalized, stochastic, or off, e.g.,:
Idea
To make simulations as realistic as possible, we need to give agents some raw ether and force them to pay gas for transactions. At the moment, the gas price has been fixed to zero.
Solution
We can set another parameter in
EnvironmentParameters
similar to how I commented on #418. We can have an enum, or something, that allows the user to choose some gas rules for the environment. They can be externalized, stochastic, or off, e.g.,:UserControlled
: will give the user the ability to make calls such asclient.set_gas_price()
.Randomized
: would give the user gas price based on something like EIP-1559 rules. Could even play off of theBlockType
enum I mentioned in #418.None
: The user would not change gas price ever and have it set to the internalu128
.This
GasRules
can go into theEnvironmentParameters
.We can also perhaps add functionality for gas tips later on if we expand upon an enum.
IT IS WORTH NOTING THAT ISSUE #410 IS RELEVANT HERE TOO