Anfängliche Bereitstellung des ERC20-Tokens, aufgeteilt in 2 oder mehr fest codierte Adressen

Ich weiß nicht, ob mir jemand helfen kann, aber lassen Sie mich mein Problem erklären. Für mehr Transparenz in meinem ERC20-Token-Generierungs-Smart-Vertrag möchte ich den Team-Pool (0xA) und den Crowdfunding-Pool (0xB) mit Zuweisungsbeträgen fest codieren, nur als Beispiel.

constructor() public {
    symbol = "STT";
    name = "Sample Token";
    decimals = 18; 

    totalSupply_ = 500000000 * (10 ** uint256(decimals));
    // Now we need to split the total supply into 2 hardcoded addresses
}

//my pseudo code idea 
function allocate() public {
    allocations[0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA] = 250000000 * (10 ** uint256(decimals));
    allocations[0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB] = 250000000 * (10 ** uint256(decimals)); 
}

Bedeutet, dass nach der Bereitstellung der gesamte Vorrat an zwei Ethereum-Adressen verteilt wird.

Kann mich bitte jemand anleiten und wie die Beträge während der Bereitstellung gesendet werden. ? Der Rest des Codes basiert auf https://github.com/OpenZeppelin/openzeppelin-solidity BasicToken ohne Mint oder Burn

Vielen Dank im Voraus

Beifall

contract SampleToken is PausableToken {
    string public constant name = "Sample Token"; 
    string public constant symbol = "STT";
    uint256 public constant decimals = 18;

    mapping (address => uint256) freezes;

    /* This notifies clients about the amount burnt */
    event Burn(address indexed from, uint256 value);

    /* This notifies clients about the amount frozen */
    event Freeze(address indexed from, uint256 value);

    /* This notifies clients about the amount unfrozen */
    event Unfreeze(address indexed from, uint256 value);

    constructor() public {
        totalSupply_ = 500000000 * (10 ** uint256(decimals));
        balances[msg.sender] = totalSupply_;
        // we need to split the total supply to two or more addresses 
    }

    function freezeOf(address _owner) public view returns (uint256) {
        return freezes[_owner];
    }

    function burn(uint256 _value) whenNotPaused public returns (bool) {
        require(_value <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit Burn(msg.sender, _value);
        return true;
    }

    function freeze(uint256 _value) whenNotPaused public returns (bool) {
        require(_value <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        freezes[msg.sender] = freezes[msg.sender].add(_value);
        emit Freeze(msg.sender, _value);
        return true;
    }

    function unfreeze(uint256 _value) whenNotPaused public returns (bool) {
        require(_value <= freezes[msg.sender]);

        freezes[msg.sender] = freezes[msg.sender].sub(_value);
        balances[msg.sender] = balances[msg.sender].add(_value);
        emit Unfreeze(msg.sender, _value);
        return true;
    }

    /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
    function transferOwnership(address newOwner) onlyOwner whenNotPaused public {
        super.transferOwnership(newOwner);
    }

    /**
    * The fallback function.
    */
    function() payable external {
        revert();
    }
}
Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen.
kannst du dir aktuelle versuche liefern? Ich meine, Sie ziehen sich zusammen
Ohne weitere Details aus Ihrem Vertrag (wie den Namen der verwendeten Variablen) ist es schwierig, etwas Nützliches zu sagen. Wenn Sie beispielsweise OpenZeppelin-Verträge verwenden, benötigen Sie so etwas wie _mint(0xAAAAA..A, INITIAL_SUPPLY/2); _mint(0xBBBBB..B, INITIAL_SUPPLY/2).
Scheint ein schwieriges Problem zu sein oder braucht es weitere Informationen? 500000000 ist meine benutzerdefinierte ERC20-Token-Gesamtsumme und ich möchte sie auf 3 Konten aufteilen. zum Beispiel 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA = 200000000 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB = 200000000 0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC = 100000000 bedeutet 3 Ethereum-Konten

Antworten (1)

Aus der Frage ist nicht ersichtlich, was erforderlich ist.

Das Folgende ist ein sehr grundlegendes contract, das 1 etherbereitgestellt werden muss. Dann teilt sich dieser Äther gleichmäßig auf, wenn der Besitzer 2 addressesanruft .allocate

pragma solidity >=0.5.4 <0.6.0;

contract SplitSupply {
    address owner;
    address payable private team = 0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C;
    address payable private crowd = 0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB;

    constructor() payable public {
        require(1 ether < msg.value);
        owner = msg.sender;
    }

    function allocate() public {
        require(msg.sender == owner);
        address(team).transfer(address(this).balance / 2);
        address(crowd).transfer(address(this).balance);
    }
}
Es ist ein Token, ich habe meine Frage bearbeitet
nicht wirklich was ich suche
Lass uns wieder anfangen. valueSie möchten einen solchen Vertrag bereitstellen, der einige in erhält constructor. Das speicherst du in totalSupply_. Dann wird es mir etwas schwammig. Möchten Sie halfan und die andere Hälfte an totalSupply_ein an accountanderes Konto senden?
Hey, danke für deine Antwort, richtig, aber ich möchte die Token-Beträge in Zahlen anzeigen, wie in meinem Fall 250000000 * (10 ** uint256 (Dezimalstellen)) und nicht /2 an zwei separate Adressen senden
Ist das etwas, wo Sie helfen können?
Ist 500000000Ihr Token-Betrag und nicht Ether? Wenn es sich tatsächlich um Äther handelt, möchten Sie die Hälfte auf 2 Konten übertragen?
Richtig, es ist kein Ether, es ist ein ERC20-Token und ich möchte zunächst an zwei oder mehr Adressen übertragen. Deshalb ist /2 keine Option und ich brauche einen vollständigen Wert oder so etwas wie uint256 öffentliche Konstante Betrag1 = 250000000 totalSupply_ +=amount1 oder ähnliches
Was ist die Idee hinter dem Schreiben totalSupply_ = 500000000 * (10 ** uint256(decimals));?
die Dezimalstellen, dies ist allgemeiner Standard. Ich hoffe, Sie können mir bei meinem Problem helfen, ich habe selbst bei Google nichts gefunden
Ist 500000000Ihre eigene custom TokenSumme und Sie möchten sie aufteilen 2 accounts? 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABedeutet und 0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBbedeutet in Ihrem Beispiel 2 ethereum accounts? Wenn es tatsächlich so ist, dann können Sie diesen Konten einfach nichts zuordnen. Ethereum-Konten können nur Ether halten , keine anderen benutzerdefinierten ERC20Token.
Kann nicht wahr sein. Ethereum-Adressen können ERC20-Token enthalten und ich kann sie übertragen