¿Se entrega el gas reembolsado por el almacenamiento "liberado" al contrato, al "asignador" o al "borrador"?
Supongamos que un contrato asigna algo de almacenamiento. Este almacenamiento lo paga el remitente de la transacción que realiza la asignación, ¿verdad?
Ahora, cuando este almacenamiento es "liberado" por el delete
operador en Solidity, ¿quién recibe el reembolso y cómo se calcula el reembolso?
¿Es el contrato el que recibe el reembolso, el remitente ("asignador") de la transacción de asignación o el remitente ("eliminador") de la transacción de eliminación? En particular, ¿qué precio del gas se utiliza para calcular el reembolso?
En resumen, al remitente de la transacción que provoca la liberación del lugar de almacenamiento (establecido en cero) se le deducirá una cantidad (un gas neto de 10000 por lugar de almacenamiento liberado) de la cantidad total de gas utilizado para la transacción.
Es un poco más matizado en realidad:
El costo del gas de establecer la ubicación en cero es 5000 (G_sreset en el Libro amarillo).
Se añaden 15000 de gasolina al contador de reembolsos (R_sclear en el Libro Amarillo).
Al final de una transacción exitosa, la cantidad de gas en el mostrador de reembolso (hasta un tope de la mitad del gas total utilizado) se agrega al gas no utilizado y se devuelve a la persona que llama (Ecuación 72 en el Libro Amarillo).
Las referencias anteriores corresponden a esta versión del Libro amarillo , que analiza el Contador de reembolsos en las secciones 6.1 y 6.2.
El precio del gas es el precio del gas que se aplica a toda la transacción en la que se produce el reembolso.
Shuzheng
delete
este almacenamiento? ¿No sería más justo, si el usuario "A" fuera recompensado con el reembolso (usando algún mecanismo)?Shuzheng
benjaminion
Shuzheng
benjaminion