Vertragsinformationen aus Transaktionsinformationen abrufen?

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.

Antworten (2)

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 onlyOwnerdie 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.