Как финансировать смарт-контракт Chainlink с помощью другого контракта?

#ethereum #solidity #smartcontracts #erc20 #chainlink

Вопрос:

Я пытаюсь финансировать смарт — контракт с помощью токенов LINK. Я получаю сообщение об ошибке «Ошибка виртуальной машины: возврат. возврат Транзакция была возвращена в исходное состояние. Примечание: Вызываемая функция должна быть оплачена, если вы отправляете значение, а значение, которое вы отправляете, должно быть меньше вашего текущего баланса. Отладьте транзакцию, чтобы получить дополнительную информацию». Мой код прост:

 // SPDX-License-Identifier: MIT
pragma solidity >=0.5 <0.9.0;

//Remix Imports
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.6/ChainlinkClient.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.6/vendor/Ownable.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.6/vendor/SafeMathChainlink.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.6/interfaces/LinkTokenInterface.sol";
import "https://github.com/smartcontractkit/chainlink/blob/master/evm-contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";

contract SimpleStorage {
  SimpleStorage2[] simpleStorage2s;

  function set() public payable returns(address) {
    SimpleStorage2 a = new SimpleStorage2();
    simpleStorage2s.push(a);

    LinkTokenInterface link = LinkTokenInterface(a.getChainlinkToken());
    link.transfer(address(a), 100);
    
    return address(a);
  }

}

contract SimpleStorage2 is ChainlinkClient, Ownable {

  function getChainlinkToken() public view returns (address) {
         return chainlinkTokenAddress();
     }
}
 

Компилятор солидности 0.6.12. Что я делаю не так? Как мне заставить это работать?

Ответ №1:

Получите адрес развернутого вами контракта и отправьте ССЫЛКУ на него.

Вы можете прочитать документацию по цепочке для получения дополнительной информации.

Похоже, ты используешь ремикс.

  1. Получите адрес вашего контракта. введите описание изображения здесь
  2. Вставьте его в свою метамаску

введите описание изображения здесь 3. Отправьте ССЫЛКУ на свой контракт

Вы получите несколько уведомлений для подтверждения.