¿Puedo pasar de una transacción a un contrato de cambios de estado usando la API de RPC?

Si estoy hablando con geth usando la API JSON RPC, encontré una transacción que me interesa y puedo ver que está llamando a un contrato (datos en la parte de "entrada" del objeto de transacción).

Entonces, ¿puedo averiguar qué cambios en los saldos son el resultado de esta invocación? No veo nada en el objeto TransactionReceipt.

Respuestas (1)

Como está preguntando sobre saldos y tiene la transacción usando JSON-RPC, puede ver el from, toy valuede la transacción. Puede hacer una conjetura simple de que fromel saldo ha disminuido en value, y toel saldo ha aumentado en value.

Es una conjetura simple porque no puede saber si el tocontrato envió el valuea otras cuentas (incluidas algunas a from), a menos que mire más, algunos ejemplos: mire el código del contrato para ver qué hace, ejecute el código a través del Ethereum Virtual Machine o un simulador, o compare las diferencias entre el bloque actual y el anterior.

eso no le mostrará el costo del gas si una de las partes es la que presentó la transacción. Además, en general, adivinar a partir de números delta en sistemas distribuidos está plagado de peligros. Siempre se deben usar contadores absolutos siempre que sea posible. Reiterando la pregunta original: ¿podemos ver el saldo de una dirección en una transacción en particular?
@PaulS. De acuerdo con sus puntos; su pregunta es ciertamente más clara y no estoy seguro de si eso es lo que pretendía la pregunta. Tal vez lo sea y creo que está bien escribir su respuesta a medida que percibe la pregunta.
También puede simplemente registrar un evento en su transacción y obtener el saldo de cualquier dirección que desee (dirección.saldo en solidez). Esos registros están en el recibo, creo.
Gracias por las respuestas, pero ¿qué no está claro específicamente sobre mi pregunta? Sé cómo derivar cambios en el saldo en función de los campos 'valor' / 'gasUse' / 'gasPrice' de los objetos Transaction y TransactionReceipt. Pero puede haber otros efectos secundarios; no solo a las cuentas de origen o destino del código en el contrato en sí; me pregunto si estos están expuestos a través de JSON RPC. Realmente no quiero comenzar a intentar ejecutar mi propio EVM para hacer esto. Pero tal vez esa es de hecho la única manera?
Si tiene más de una dirección, llame a la API de su contrato por bloque, es posible que tenga dificultades para descifrar qué transacción cobró qué saldo...
No es mi contrato, podría ser cualquier contrato del que no sepa nada. Solo estoy tratando de averiguar qué cambios en los saldos podrían haber ocurrido como resultado de la llamada. Me parece que no se puede hacer en este momento.