Брауни - последовательность конструктора имеет неправильную длину, ожидалось 1, но получено 0

Я пытаюсь развернуть контракт на Rinkeby, запустив скрипты запуска Brownie / deploy.py --network rinkeby, но получаю следующую ошибку:

      Constructor Sequence has incorrect length, expected 1 but got 0

Я думаю, проблема в том, что я НЕ указываю начальное значение конструктора при запуске сценария deploy.py. Это правильно? Если да, то как это исправить?

deploy.py

      from brownie import FundMe
from scripts.helpful_script import get_account


def deploy_fund_me():
    account = get_account()
    fund_me = FundMe.deploy({"from": account})
    print(f"Contract deployed to {fund_me.account}")

Контракт на твердость

      pragma solidity ^0.6.6;

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
import "@chainlink/contracts/src/v0.6/vendor/SafeMathChainlink.sol";

contract FundMe {
    using SafeMathChainlink for uint256;

    mapping(address => uint256) public addressToAmountFunded;
    address[] public funders;
    address public owner;
    AggregatorV3Interface public priceFeed;

    constructor(address _priceFeed) public {
        priceFeed = AggregatorV3Interface(_priceFeed);
        owner = msg.sender;
    }
    ...OTHER FUNCTIONS...
    }
}

1 ответ

РЕШЕНО:

Попробуйте использовать этот код надежности:

https://github.com/PatrickAlphaC/brownie_fund_me/issues/1

      // SPDX-License-Identifier: MIT

pragma solidity ^0.6.6;

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
import "@chainlink/contracts/src/v0.6/vendor/SafeMathChainlink.sol";

contract FundMe {
    using SafeMathChainlink for uint256;

    mapping(address => uint256) public addressToAmountFunded;
    address[] public funders;
    address public owner;

    constructor() public {
        owner = msg.sender;
    }

    function fund() public payable {
        uint256 mimimumUSD = 50 * 10**18;
        require(
            getConversionRate(msg.value) >= mimimumUSD,
            "You need to spend more ETH!"
        );
        addressToAmountFunded[msg.sender] += msg.value;
        funders.push(msg.sender);
    }

    function getVersion() public view returns (uint256) {
        AggregatorV3Interface priceFeed = AggregatorV3Interface(
            0x8A753747A1Fa494EC906cE90E9f37563A8AF630e
        );
        return priceFeed.version();
    }
Другие вопросы по тегам