Понятия не имею, должно ли быть указано событие или как создать функцию с помощью balanceOf.Не могу пройти тест Трюфеля.
Здравствуйте, это мой первый умный контракт, направленный на создание токена ERC20.Пройдя через такой процесс в Dapp University без каких-либо синтаксических проблем, я не могу пройти трюфельный тест, чтобы проверить, правильно ли кодируется весь запас.Я пробовал разные подходы, посмотрите код пожалуйста.Ошибка после теста $ truffle следующая: Использование сети 'development'.
Компиляция ./contracts/TestToken.sol ... Компиляция ./contracts/Migrations.sol...
Контракт: TestToken 1) устанавливает общий запас при развертывании
Никаких событий не было отправлено
0 прохождение (67мс) 1 сбой
1) Контракт: TestToken устанавливает общий запас при развертывании: TypeError: tokenInstance.balanceOf не является функцией в Context.(test / Test.js: 27: 40) в process.internalTickCallback (внутренний / process / next_tick.js: 77: 7)
.sol код:
pragma solidity ^0.4.24;
contract TestToken {
uint256 public totalSupply;
constructor (uint256 _initialSupply) public {
totalSupply = _initialSupply;
// allocate the initial supply
}
}
test.jsкод: (работает до 7-й строки [ошибка начинается с, adminBalance = (...)])
var TestToken = artifacts.require("./TestToken.sol");
contract('EracoinToken', (accounts) => {
var tokenInstance;
it('sets the total supply upon deployment', async function() {
const tokenInstance = await TestToken.deployed()
, _initialSupply = 100
, totalSupply = await tokenInstance.totalSupply()
, adminBalance = await
tokenInstance.balanceOf(accounts[0])
assert.equal(await totalSupply.toNumber(),
_initialSupply, 'Total supply should be _initialSupply');
assert.equal(await adminBalance.toNumber(),
_initialSupply, 'Initial supply should be allocated to admin
account!');
});
});
миграция с развертыванием кода .js:
var TestToken = artifacts.require("./TestToken.sol");
let _initialSupply = 100;
module.exports = function(deployer) {
deployer.deploy(TestToken, _initialSupply);
};
Если я запускаю тест.JS до, TotalSupply = Await (...) это работает просто отлично.Терминал говорит, что он устанавливает общий запас при развертывании.После 7-ой строки test.js я ожидаю, что терминал скажет, что Общая поставка должна быть _initialSupply, а Начальная поставка должна быть выделена для учетной записи администратора!
Наверняка что-то не так с кодом - I 'м начинающий.Пожалуйста, дайте мне подсказку или помогите исправить код.