Fui al sitio web https://etherscan.io/txs?block=4067373
y con esa información elija la siguiente dirección (la tercera en la fila) para realizar la prueba:
0x25f000254108a104A7127B5a5697cb3C12643e62
Y se probó el siguiente código:
var options = {
fromBlock: 4067373,
toBlock: 4067373,
address: "0x25f000254108a104A7127B5a5697cb3C12643e62",
};
var filter = web3.eth.filter(options);
filter.get(function(error, result){
if (!error)
console.log(JSON.stringify(result, null, 2));
});
También hice otra prueba con el objeto de opciones siendo:
var options = {
fromBlock: 4067372,
toBlock: 4067374,
address: "0x25f000254108a104A7127B5a5697cb3C12643e62",
};
En ambos casos, el resultado fue una matriz vacía:
[]
Pregunta:
¿Se está haciendo algo mal arriba? Esperaba obtener algunos valores en la matriz de resultados y no sé por qué está vacío.
Cuando comencé a trabajar en Ethereum, incluso yo tenía problemas similares a este y aprendí de la manera más difícil. Compartiré lo que aprendí de mis errores y espero que no termines haciendo lo mismo.
Respuesta a tu pregunta:
¿Se está haciendo algo mal arriba? Esperaba obtener algunos valores en la matriz de resultados y no sé por qué está vacío.
Creo que entendiste mal el FILTRO. Está utilizando la API de filtro de temas, que filtra los eventos emitidos por los contratos; por lo tanto, solo los contratos aparecerán en eso.
Como, cuando probé su código (en mi TESTNET) para una dirección aleatoria:
var options = {
fromBlock: 1535000,
toBlock: 1535104,
address: "0x76e0bb92b6f8d431af2fe1bafd304eb832241619"
};
var filter = web3.eth.filter(options);
filter.get(function(error, result){
if (!error)
console.log(JSON.stringify(result, null, 2));
});
El resultado de esto fue:
[]
Pero cuando reemplazo el valor de la clave de "dirección", con una dirección de contrato y agrego una dirección de origen (es decir, desde la cual se invocaron las funciones de contrato)
CÓDIGO:
var options = {
fromBlock: 1535000,
toBlock: 1535104,
address: "0x5c99dadde01ce61ab5b5536d566bf41ecd17e3a9", //CONTRACT ADDR
from: "0x76e0bb92b6f8d431af2fe1bafd304eb832241619" //WALLET ADDR
};
var filter = web3.eth.filter(options);
filter.get(function(error, result){
if (!error)
console.log(JSON.stringify(result, null, 2));
});
RESULTADO:
{
"address": "0x5c99dadde01ce61ab5b5536d566bf41ecd17e3a9",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000076e0bb92b6f8d431af2fe1bafd304eb832241619",
"0x0000000000000000000000002b3425ce986f9f0f599758f4fb33158ca671e83e"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000001",
"blockNumber": 1535088,
"transactionHash": "0xf523285b652163f50f1d19ca08951f38b4bfe099d721a6e6d80ff7fd03a171eb",
"transactionIndex": 4,
"blockHash": "0x27a29bf153b302a5e8f24415ed1f2fac1829e845746bed9f3098f0b40cd232a5",
"logIndex": 1,
"removed": false
}
{
"address": "0x5c99dadde01ce61ab5b5536d566bf41ecd17e3a9",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000076e0bb92b6f8d431af2fe1bafd304eb832241619",
"0x0000000000000000000000002b3425ce986f9f0f599758f4fb33158ca671e83e"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000001",
"blockNumber": 1535104,
"transactionHash": "0x14632d129a6aac7365483a3000470ece443a19a73f242cba1f1944f78889a677",
"transactionIndex": 7,
"blockHash": "0x34ee516310a59407712455ec87bd76046a1e68f5c631dc8e6b4bb903b8c92834",
"logIndex": 6,
"removed": false
}
Son todas las transacciones realizadas desde esa dirección (0x76e0bb92b6f8d431af2fe1bafd304eb832241619) en el contrato (0x5c99dadde01ce61ab5b5536d566bf41ecd17e3a9) entre los bloques 1535000-1535104.
NOTA:
Si desea obtener transacciones no contractuales de la cadena de bloques, debe examinar cada bloque en busca de transacciones que ocurrieron en ese blog y luego obtener los detalles de la transacción utilizando la API web3. Este enlace (fragmentos de JavaScript útiles comunes para geth) tiene esta sección Script para encontrar transacciones hacia/desde una cuenta
El enlace anterior no lo ayudará a conocer las transacciones internas que ocurren dentro de un contrato, aquí está el enlace al mismo. Espero que esto te ayude.
crissi mariam robert
crissi mariam robert
farhankhwaja