timateGas, web3.Contract.methods.myMethod.estimateGas (), приводящий к исключению - PullRequest
0 голосов
/ 09 марта 2020

У меня есть умный контракт, который поддерживает коллекцию учетных записей администраторов;

pragma solidity >= 0.4.24 < 0.7.0;

contract Administrator {
    address public administratorMinter;

    mapping (address => bool) administratorCollection;

    constructor() public {
        administratorMinter = msg.sender;

        administratorCollection[msg.sender] = true;
    }

    function grant(address _address) public payable {
        require(isAdministrator(_address) == true, 'Unauhtorized Access!');

        administratorCollection[_address] = true;
    }

    function isAdministrator(address _administrator) public view returns(bool) {
        return administratorCollection[_administrator];
    }
}

Использование web3. js библиотека Я пытаюсь вызвать метод предоставления для умного договора, есть только один счет в цепочке развития паритета, с достаточным количеством эфира. Этот же аккаунт использовался для развертывания контракта. Однако, когда я использую действительный адрес ethereum в качестве параметра для метода предоставления / отзыва, оценка газа приводит к следующей ошибке; Ошибка: возвращенная ошибка: выполнение не выполнено из-за исключительной ситуации.

Я пробовал два разных подхода, которые приводят к той же ошибке, что и выше.

Интернет3. js code:

    let contract = new web3.eth.Contract(contractABI.abiModel, contractABI.address)

    let grant = contract.methods.grant(params.address)

    let estimatedGas = await grant.estimateGas({from: poster.address}).catch(console.error)

Мне нужно получить расчетный газ для построения необработанного объекта транзакции, но это приводит к ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...