BalanceOf von BasicToken & totalSupply von ERC20Basic funktioniert nicht von Crowdsale.sol

Ich verwende Crowdsale.sol von OpenZeppelin / zeppelin-solidity . Hier ist ein Ausschnitt:

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;

Wird dies von MintableToken geerbt?

MintableToken.sol erbt von StandardToken.sol und Ownable.sol. StandardToken.sol erbt von BasicToken.sol und ERC20.sol. BasicToken.sol erbt von ERC20Basic.sol und SafeMath.sol.

function balanceOfIch möchte von BasicToken.sol und von ERC20Basic.sol verwenden uint256 public totalSupply, aber diese erscheinen nicht auf remix.ethereum.org (unter Verwendung von „JavaScript VM“), nachdem ich den Crowdsale-Vertrag erstellt habe.

Wenn ich Crowdsale.sol zu einem der folgenden ändere:

contract Crowdsale is StandardToken {

contract Crowdsale is MintableToken {

contract Crowdsale is BasicToken {

... balanceOfund totalSupplyerscheinen (nach dem Erstellen des Vertrags), aber sie geben nur 0 zurück. Ich sende etwas Geld an den Vertrag und gebe die Adresse des Absenders ein balanceOfund es wird 0 zurückgegeben. Ich klicke auf totalSupplyund es wird null zurückgegeben. Sie scheinen nicht zu funktionieren.

Was muss ich tun, damit diese funktionieren?

Antworten (1)

Ich glaube du missverstehst diese Klasse. So wie es aussieht, ist Crowdsale.sol eine Token-Fabrik. Es wird eine Zahlung erfordern, um einen MintableToken-Vertrag dynamisch zu generieren.

Sie müssten dann auf das neu geprägte Token zugreifen, um auf die eigentlichen Token-Funktionen zugreifen zu können.

Wie greife ich auf diese Token-Funktionen und -Variablen (balanceOf, transfer, totalSupply) zu von: 1) Remix 2) Wallet? Muss ich im Remix sowohl einen MintableToken-Vertrag als auch einen Crowdsale-Vertrag erstellen, damit ich über den MintableToken-Vertrag darauf zugreifen kann?