Dies könnte eine einfache Frage sein. Nehmen wir an, ich habe den Transaktionshash:
{
blockNumber: "6214286",
timeStamp: "1535248365",
hash: "0x144018f7327b3990124762d1aefececff3897755ce15313e662f2c5699aaaca1",
nonce: "5",
blockHash: "0x6bd409190b38364611b96006ead9f2281262e8d4b71cd712e528c7459d56962f",
transactionIndex: "135",
from: "0x446252b54d626cf4192e5c74545761dfaf7e5a50",
to: "0xb1690c08e213a35ed9bab7b318de14420fb57d8c",
value: "2000000000000000",
gas: "148770",
gasPrice: "1400000000",
isError: "1",
txreceipt_status: "0",
input: "0x454a2ab300000000000000000000000000000000000000000000000000000000000d1596",
contractAddress: "",
cumulativeGasUsed: "4423724",
gasUsed: "22540",
confirmations: "189517"
}
Gibt es eine Möglichkeit herauszufinden, welche Vertragsfunktion mit welchen Parametern aufgerufen wurde?
Ich habe die Vertrags-ABI und Adresse.
Mehr Informationen:
Ich habe versucht, die CryptoKitty-Token-ID aus der obigen Transaktion abzurufen. Ich führe diese Transaktion aus, indem ich Etherscan mit meinem Konto abfrage und nach dem Ziel „to“ filtere, das dem CryptoKitty-Auktionsvertrag (CryptoKittiesSalesAuction) zugeordnet ist.
Ja, du kannst.
Die Informationen, die Sie brauchen, sind hier:input: "0x454a2ab300000000000000000000000000000000000000000000000000000000000d1596",
Die ersten 4 Bytes sind das, was Sie brauchen, um die aufgerufene Funktion zu finden. Es heißt METHODEN-ID. Sie haben hier ein Beispiel
Dies wird als die ersten 4 Bytes des Keccak-Hashes der ASCII-Form der Signatur abgeleitet
Und der Parameter ist00000000000000000000000000000000000000000000000000000000000d1596
In Ihrem Smart Contract finden Sie die Methoden-ID mithilfe von .selector
für diese setup()-Funktion erhalten Sie beispielsweise function setup() external onlyOwner
die Methoden-ID, indem Sie dies tun: this.setup.selector
Versuchen Sie ethereum abi decoder https://www.npmjs.com/package/ethereum-input-data-decoder Sie können Eingabedaten damit dekodieren.