Quiero evaluar el consumo máximo de gas (límite mínimo seguro de gas que no fallará) que consumiría llamar a un método de contrato específico dado que tengo el código fuente/código de byte del contrato .
Recuerdo que hace unos meses vi un sitio web donde puedes ingresar el código de solidez y calcula la cantidad de gas que consumiría este código, pero no puedo encontrar este sitio web en ningún lado.
Solo para aclarar: sé que hay un método en la API que puede estimar el consumo de gas de la transacción, que es solo una estimación, ya que se basa en las variables que pueden cambiar (como el número de bloque, etc.) , pero estoy hablando de máximo consumo de gas Dado que se conoce el código fuente del contrato/código de bytes.
¿Hay alguna web que calcule esto?
ACTUALIZAR CON CASO DE USO:
Para el contrato de EtherDelta ( enlace ), ¿cómo puedo determinar cuál sería el consumo máximo de gas posible para llamar a un método específico (por ejemplo, el método 'aprobar'), de modo que pueda decir cuál es el límite mínimo seguro de gas que nunca fallaría?
Creo que puede estar aludiendo al compilador de remixes en línea para Solidity. Esto le permitirá ver fácilmente cuánto gas necesitará/gastó una transacción para una función.
Si ejecuta una función de cambio de estado, inspeccione los detalles de la transacción y obtendrá más información. Por favor, vea el ejemplo a continuación:
Aquí podemos ver trasaction cost
& execution cost
. Todo lo que necesitas. Espero que esto ayude.
Según la pregunta a la que se vinculó, el estimateGas
método RPC es completamente preciso, aparte de las cosas que pueden cambiar entre el momento en que realiza la estimación y el momento en que se procesa la transacción. Si el gas utilizado en el contrato al que está llamando no varía según tales cosas (p. ej., otras transacciones enviadas, el número de bloque/hash, etc.), le estimateGas
dará un número exacto y correcto.
Tener el código fuente no ayuda aquí excepto para su propia comprensión; preferiría usar el código de bytes de todos modos.
amit
Malone
Environment
utilizado para tener su propio proveedor, es decirInjected Web3
. De esta forma podrás controlar con mayor precisión en cuántos bloques te encuentras. Debería poder probarblock height
las condiciones más fácilmente de esta manera.