BalanceOf от BasicToken и totalSupply от ERC20Basic не работает от Crowdsale.sol

Я использую Crowdsale.sol от OpenZeppelin/zeppelin-solidity . Вот фрагмент:

import '../token/MintableToken.sol';
import '../math/SafeMath.sol';

/**
 * @title Crowdsale 
 * @dev Crowdsale is a base contract for managing a token crowdsale.
 * Crowdsales have a start and end block, where investors can make
 * token purchases and the crowdsale will assign them tokens based
 * on a token per ETH rate. Funds collected are forwarded to a wallet 
 * as they arrive.
 */
contract Crowdsale {
  using SafeMath for uint256;

  // The token being sold
  MintableToken public token;

Это наследуется от MintableToken?

MintableToken.sol наследуется от StandardToken.sol и Ownable.sol. StandardToken.sol наследуется от BasicToken.sol и ERC20.sol. BasicToken.sol наследуется от ERC20Basic.sol и SafeMath.sol.

Я хочу использовать function balanceOfот BasicToken.sol и uint256 public totalSupplyот ERC20Basic.sol, но они не появляются на remix.ethereum.org (с использованием «JavaScript VM») после создания контракта Crowdsale.

Если я изменю Crowdsale.sol на любое из следующего:

contract Crowdsale is StandardToken {

contract Crowdsale is MintableToken {

contract Crowdsale is BasicToken {

... balanceOfи totalSupplyпоявляются (после создания контракта), но они возвращают только 0. Я отправляю немного средств на контракт и ввожу адрес отправителя, balanceOfи он возвращает 0. Я нажимаю totalSupply, и он возвращает ноль. Кажется, они не работают.

Что мне нужно сделать, чтобы заставить их работать?

Ответы (1)

Я думаю, вы неправильно понимаете этот класс. Судя по всему, Crowdsale.sol — это фабрика токенов. Для динамического создания контракта MintableToken потребуется оплата.

Затем вам нужно будет получить доступ к недавно выпущенному токену, чтобы получить доступ к фактическим функциям токена.

Как получить доступ к этим функциям и переменным токена (balanceOf, transfer, totalSupply) из: 1) remix 2) кошелька? В ремиксе мне нужно создать контракт MintableToken, а также контракт Crowdsale, чтобы я мог получить к ним доступ через контракт MintableToken?