Узел цепной связи — сбой задания encode_tx и ошибка submit_tx

#solidity #remix #chainlink #kovan

Вопрос:

Я следил за официальной документацией по выполнению цепной связи с использованием сети kovan. Я запускаю приведенный ниже код

надежность pragma 0.6.6; импорт «@chainlink/контракты/src/v0.6/Oracle.sol»;

[ получить из официального документа , https://remix.ethereum.org/#url=https://docs.chain.link/samples/NodeOperators/Oracle.sol

 for node chainlink node job

    type = "directrequest"
schemaVersion = 1
name = "Get > Uint256"
# Optional External Job ID: Automatically generated if unspecified
# externalJobID = "b1d42cd5-4a3a-4200-b1f7-25a68e48aad8"
contractAddress = "YOUR_ORACLE_CONTRACT_ADDRESS"
maxTaskDuration = "0s"
observationSource = """
    decode_log   [type=ethabidecodelog
                  abi="OracleRequest(bytes32 indexed specId, address requester, bytes32 requestId, uint256 payment, address callbackAddr, bytes4 callbackFunctionId, uint256 cancelExpiration, uint256 dataVersion, bytes data)"
                  data="$(jobRun.logData)"
                  topics="$(jobRun.logTopics)"]

    decode_cbor  [type=cborparse data="$(decode_log.data)"]
    fetch        [type=http method=GET url="$(decode_cbor.get)"]
    parse        [type=jsonparse path="$(decode_cbor.path)" data="$(fetch)"]
    multiply     [type=multiply input="$(parse)" times=100]
    encode_data  [type=ethabiencode abi="(uint256 value)" data="{ \"value\": $(multiply) }"]
    encode_tx    [type=ethabiencode
                  abi="fulfillOracleRequest(bytes32 requestId, uint256 payment, address callbackAddress, bytes4 callbackFunctionId, uint256 expiration, bytes32 data)"
                  data="{\"requestId\": $(decode_log.requestId), \"payment\": $(decode_log.payment), \"callbackAddress\": $(decode_log.callbackAddr), \"callbackFunctionId\": $(decode_log.callbackFunctionId), \"expiration\": $(decode_log.cancelExpiration), \"data\": $(encode_data)}"
                 ]
    submit_tx    [type=ethtx to="YOUR_ORACLE_CONTRACT_ADDRESS" data="$(encode_tx)"]

    decode_log -> decode_cbor -> fetch -> parse -> multiply -> encode_data -> encode_tx -> enter code heresubmit_tx
 

«»»

для потребителя используйте приведенный ниже код https://remix.ethereum.org/#url=https://docs.chain.link/samples/APIRequests/ATestnetConsumer.sol

фрагменты кода ошибки: ошибки в задании узла звена цепи

Комментарии:

1. Вы поменялись YOUR_ORACLE_CONTRACT_ADDRESS своим адресом оракула?

2. привет @PatrickCollins отредактировал адрес контракта перед публикацией, пожалуйста, найдите ниже оригинальную версию. «0xbf12C4159c5d03Df77e87c15CAA3c2bf41fAB443»

3. Можете ли вы также добавить, как выглядит смарт-контракт?

4. @PatrickCollins, пожалуйста, найдите Оракула. ниже приведен код sol github.com/smartcontractkit/chainlink/blob/develop/contracts/… код тестового пользователя : remix.ethereum.org/#url=https://docs.chain.link/samples/…

5. Хмм… выглядит нормально. Что это за версия узла chainlink? И что вы передаете в качестве входного параметра вызываемой функции?