Почему мой SmartContract работает без газа, когда я добавляю простую функцию
У меня есть простой токен, полученный из openzeppelin's MintableToken
,
Однако, когда я добавляю конструктор ИЛИ другую функцию, у меня постоянно кончается бензин. Но когда я добавляю ТОЛЬКО один из обоих, либо конструктор, либо функцию, все работает нормально.
Мой вопрос: как я могу добавить несколько функций вместе с конструктором в мой SmartContract?
Код токена:
pragma solidity ^0.4.22;
import "openzeppelin-solidity/contracts/token/ERC20/MintableToken.sol";
contract HaioToken is MintableToken {
string public name = "Haio Token";
string public symbol = "HAI";
uint8 public decimals = 18;
uint256 public cap;
constructor(uint256 _cap) public {
cap = _cap;
}
function test(address _to) public returns (bool) {
return true;
}
}
Миграции:
2_deploy_contracts.js:
var HaioToken = artifacts.require("HaioToken");
module.exports = function(deployer, network, accounts) {
const hardCap = 25000000;
return deployer
.then(() => {
return deployer.deploy(HaioToken, hardCap);
})
};
Когда я хочу развернуть код, я получаю следующее сообщение об ошибке:
Ошибка: VM Exception при обработке транзакции: нет газа
Если я удаляю либо конструктор, либо функцию тестирования, все работает нормально.
1 ответ
Я думаю, что вы запускаете миграцию с настройками по умолчанию для трюфелей, которые вышли из коробки после запуска "truffle init
"не так ли?
Вы должны поднять газ, который хотите отправить, при развертывании контракта таким образом в truffle.js
(или же truffle-config.js
в Windows):
module.exports = {
networks: {
development: {
host: "localhost",
port: 7545,
network_id: "*",
gas: 5000000
}
}
};
(Значение 5000000 является примером, который в основном работает "из коробки", и если вам не нужно заботиться об этом, потому что вы разрабатываете локальную тестовую сеть:))