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 balanceOf
Ich 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 {
... balanceOf
und totalSupply
erscheinen (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 balanceOf
und es wird 0 zurückgegeben. Ich klicke auf totalSupply
und es wird null zurückgegeben. Sie scheinen nicht zu funktionieren.
Was muss ich tun, damit diese funktionieren?
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.
Kurz