No se puede enviar ETH desde Wallet Contract

  • Sistema operativo Win7.
  • Nodo: Paridad 1.3.3
  • Cliente: Ethereum wallet & Mist (en 2 PC diferentes)

La cuenta del propietario del contrato está totalmente financiada con > 5 ETH (lo suficientemente bien como para cubrir las tarifas de tx/gas) * el contrato de billetera contiene > 1 ETH fwiw.

Nunca antes había tenido este problema, pero después de cambiar a la paridad (debido a los ataques de DOS), decidí realizar algunas transacciones para probar que todo funcionaba correctamente.

Primero envié una pequeña cantidad de ETH de account1a account2, funciona bien.

Luego envié una pequeña cantidad account1a mi wallet contract, funciona bien.

Finalmente, intenté (varias veces) enviar desde wallet contractatrás account1y también intenté enviar a account2. Ethereum Wallet muestra la transacción como confirmada y muestra "-1.18 ETHER" en el historial de transacciones por un corto tiempo, pero luego desaparece del historial (en la niebla, la transacción aún es visible) Pero la cuenta receptora y los saldos del contrato de la billetera no muestran cambios.

Las capturas de pantalla a continuación muestran el gas consumido pero muestran el valor transferido como "0". Lo he intentado varias veces desde 2 PC diferentes y he quemado gas tras gas, pero no puedo sacar el éter del contrato.

Ver la dirección del contrato en etherscan muestra las múltiples transacciones que he intentado, pero el valor de cada transacción es "0 Ether". El saldo de ETH es >1.

Solo para probar la función, también escribí para contratar add ownery pude agregar un segundo propietario al contrato. El contrato se creó utilizando la opción billetera ethererum Add wallet contract(cuenta de propietario único).

Cualquier ayuda sería muy apreciada.

EDITAR: Usé la Killfunción para eliminar el éter del contrato. Desafortunadamente, el contrato ahora es inútil (ya que no tiene propietarios). Traté de hacer un nuevo contrato, pero obtuve un error que excedía el límite de gas del bloque (estimado en 2 millones de gas, 3 millones como máximo).ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Puede que no haya ningún problema en absoluto. ¿Las transacciones que se muestran en etherscan tienen un ícono de error? Si se ejecutan correctamente, el contrato podría haber funcionado. Tus transacciones tienen valor 0, pero revisa las transacciones internas del contrato. Deberías ver contrato -> transferencia de Ether de cuenta allí.
Esto suena exactamente como si se quedara sin combustible y la transacción se revirtiera. Sin embargo, dudo en proporcionar eso como respuesta porque no proporcionó el hash de transacción para inspeccionar. Las tarifas aún se pagan al minero incluso si la transacción no se puede completar.

Respuestas (1)

Por lo general, la cantidad de éter almacenada en el contrato se puede recibir después de ejecutar la opción de suicidio (que vacía el saldo del contrato y envía todo a la dirección del propietario del contrato). Después de esa etapa, el contrato se vuelve inactivo (y cualquier ether enviado a su dirección se pierde, se quema), por lo que el contrato deja de ejecutar las funciones codificadas en su interior.

Por supuesto, esta opción podría codificarse dentro del contrato desde su creación porque el contrato, una vez creado, no se puede modificar en la cadena de bloques. Una vez que elimine un contrato, no se usará gas si envía un pago a su dirección (ya que las funciones dentro de él no se ejecutan), sin embargo, si aún ve transacciones pendientes anteriores (lo cual es muy poco probable), significa que las transacciones aún no se extrajeron debido a que se proporciona demasiado poco gas.

Esto me recuerda cierta situación explicada por alguien antes. Es cuando uno intenta enviar una transacción (con tarifa de gas demasiado baja) pero debido a que la red no lo confirma en poco tiempo (se pone en cola) el usuario intenta una y otra vez (pruebas con varias tarifas de gas incluidas). En un momento determinado, se acepta una transacción, el saldo disminuye con la cantidad correspondiente, por lo que todo parece perfecto y el usuario está contento y deja de intentar enviar de nuevo. Sin embargo, si en algún momento vuelve a financiar su dirección, es posible que una transacción pendiente finalmente sea aceptada (minada) y el usuario vea desaparecer nuevamente la misma cantidad de su dirección (como un gasto doble inesperado). Lo digo de nuevo, es poco probable que suceda tal cosa (no lo experimenté ni me gustaría que me sucediera a mí), así que solo lo describo en teoría.