Der EthTx-Adapter reagiert nicht auf den Chainlink-Job, schlägt fehl mit „transaction reverted on-chain“

Wir verwenden die Standard-Truffle-Box ( https://github.com/smartcontractkit/box ), um den Chainlink-Vertrag ($LINK-Definition, Oracle, Muster-Endbenutzervertrag usw.) in einem privaten Ethereum-Testnetz bereitzustellen.

Alles funktioniert, da ich Jobs von Smart-Contract-Anrufen in der Kette auslösen kann, es sei denn, meine Job-Spezifikation endet mit dem „EthTx“-Adapter. Wenn ich meinen Job mit einem "EthTx"-Adapter beende, schlägt die Aufgabe fehl, und der einzige Fehler lautet "transaction reverted on-chain".

Meine Oracle-ETH-Konten sind gut finanziert, daher ist der Mangel an Benzin für die Ausführung der Transaktionen kein Problem. Außerdem funktionieren alle anderen Adapter ohne Fehler ... es ist also kein Problem, wenn der HTTP-Endpunkt ausgefallen ist, der Pfad falsch ist oder die falschen Typen gecastet werden. Was ist los?

Antworten (1)

Es gibt ein paar Dinge, die passieren können, aber höchstwahrscheinlich liegt es daran, dass die Fulfillment-Berechtigungen Ihres Oracle-Vertrags nicht richtig eingestellt sind.

Wenn Sie den Orakelvertrag bereitstellen, müssen Sie auch den setfulfillmentpermissionto truefür Ihren Knoten aufrufen. Sie können dies in remix/etherscan oder über ein Skript tun . In diesem Skript benötigen Sie Folgendes:

  1. PRIVATE_KEYUmgebungsvariable, die mit derselben Brieftasche verbunden ist, die den Oracle-Vertrag bereitstellt
  2. KOVAN_RPC_URLUmgebungsvariable verbunden die Blockchain der Wahl.
  3. Sie müssen oracleAddressdie Oracle-Vertragsadresse festlegen.
  4. Sie müssen addressdie Adresse Ihres Chainlink-Knotens festlegen.

Ich hoffe es hilft.