Ich ging auf die Website https://etherscan.io/txs?block=4067373
und wählen Sie mit diesen Informationen die folgende Adresse (dritte in der Reihe) zum Testen aus:
0x25f000254108a104A7127B5a5697cb3C12643e62
Und der folgende Code wurde getestet:
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));
});
Ich habe auch einen weiteren Test mit dem Optionsobjekt durchgeführt:
var options = {
fromBlock: 4067372,
toBlock: 4067374,
address: "0x25f000254108a104A7127B5a5697cb3C12643e62",
};
In beiden Fällen war das Ergebnis ein leeres Array:
[]
Frage:
Ist oben etwas falsch gemacht worden? Ich habe erwartet, einige Werte im Ergebnisarray zu erhalten, und ich weiß nicht, warum es leer ist.
Als ich anfing, an Ethereum zu arbeiten, hatte sogar ich ähnliche Probleme und ich habe es auf die harte Tour gelernt. Ich werde teilen, was ich aus meinen Fehlern gelernt habe, und hoffen, dass Sie am Ende nicht dasselbe tun.
Antwort auf Ihre Frage:
Ist oben etwas falsch gemacht worden? Ich habe erwartet, einige Werte im Ergebnisarray zu erhalten, und ich weiß nicht, warum es leer ist.
Ich glaube, Sie haben das falsche Verständnis von FILTER. Sie verwenden die Themenfilter-API, die nach Ereignissen filtert, die von Verträgen ausgegeben werden; Daher werden darin nur Verträge angezeigt.
Als ich Ihren Code (auf meinem TESTNET) für eine zufällige Adresse ausprobiert habe:
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));
});
Das Ergebnis daraus war:
[]
Aber wenn ich den Wert des Schlüssels "Adresse" durch eine Vertragsadresse ersetze und eine Absenderadresse hinzufüge (dh von der Vertragsfunktionen aufgerufen wurden)
CODE:
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));
});
ERGEBNIS:
{
"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
}
Das sind alle Transaktionen, die von dieser Adresse (0x76e0bb92b6f8d431af2fe1bafd304eb832241619) auf Vertrag (0x5c99dadde01ce61ab5b5536d566bf41ecd17e3a9) zwischen den Blöcken 1535000-1535104 durchgeführt werden.
NOTIZ:
Wenn Sie nicht vertragliche Transaktionen aus der Blockchain erhalten möchten, müssen Sie jeden Block auf Transaktionen untersuchen, die in diesem Blog stattgefunden haben, und dann mithilfe der web3-API Transaktionsdetails abrufen. Dieser Link (Allgemein nützliche JavaScript-Schnipsel für Geth) hat diesen Abschnitt Skript zum Suchen von Transaktionen zu/von einem Konto
Der obige Link hilft Ihnen nicht, die internen Transaktionen zu kennen, die innerhalb eines Vertrags stattfinden, hier ist der Link dazu. Hoffentlich hilft Ihnen das weiter.
Crissi Mariam Robert
Crissi Mariam Robert
farhankhwaja