2017-08-22 3 views
0

Meine Frage könnte trivial sein, aber ich konnte keine Antworten finden. Also im Grunde habe ich einfachen Vertrag, aus Solidität Dokumentation, Trüffel hinzugefügt. Ich bin mit Trüffel 3,59 und testRPC 4.0.1Einfache Währung senden mit testRPC

pragma solidity ^0.4.0; 
 

 
contract Coin { 
 
    // The keyword "public" makes those variables 
 
    // readable from outside. 
 
    address public minter; 
 
    mapping (address => uint) public balances; 
 

 
    // Events allow light clients to react on 
 
    // changes efficiently. 
 
    event Sent(address from, address to, uint amount); 
 

 
    // This is the constructor whose code is 
 
    // run only when the contract is created. 
 
    function Coin() { 
 
     minter = msg.sender; 
 
    } 
 

 
    function mint(address receiver, uint amount) { 
 
     if (msg.sender != minter) return; 
 
     balances[receiver] += amount; 
 
    } 
 

 
    function send(address receiver, uint amount) { 
 
     if (balances[msg.sender] < amount) return; 
 
     balances[msg.sender] -= amount; 
 
     balances[receiver] += amount; 
 
     Sent(msg.sender, receiver, amount); 
 
    } 
 
}

, dass der Vertrag ist, später laufen testRPC auf Standard localhost: 8545. Dann, Trüffel kompilieren, migrieren und bereitstellen, alles funktioniert gut, ich gehe zur Trüffel-Konsole und jetzt, bitte erkläre mir, wie man Münzen von einem Konto zu einem anderen übertragen, die von testRPC standardmäßig generiert werden.

Zusätzliche Frage! Wie überprüfe ich das Konto von testRPC?

Prost!

Antwort

0

Ich denke, Sie mischen zwei verschiedene Dinge, von wie Sie die Frage gestellt haben, ich nehme an, dass Sie denken, token sind ether. In Wirklichkeit wird Äther anders gehandhabt, da er der wichtigste Mechanismus ist, um Transaktionen und Operationen voranzutreiben. Man kann zum Beispiel Äther nicht aus dünner Luft prägen, was bei Token der Fall ist.

TestRPC, wenn standardmäßig gestartet, gibt jedes Konto 100 Ether (NICHT TOKENS)! Sobald Sie Ihren Smart-Vertrag bereitgestellt haben (sofern kein anderer Standardbenutzer angegeben wurde), verwendet die Trüffel die Konten [0] von testrpc als Haupt-Deployer.

Sie laufen truffle deploy und der Vertrag ist abgelaufen. jetzt, wenn Sie in Ihrem Vertrag suchen haben Sie eine Konstruktorfunktion

function Coin() { 
    minter = msg.sender; 
} 

Dies macht Konto [0] erstes Konto in testRPC die minter. Der Münzprüfer kann Token aus der Luft erstellen, indem Sie mit [0] eine beliebige Anzahl von Token an jede von Ihnen angegebene Adresse eingeben können. sagen wir, Sie einige „newbe“ Token-Konten geben wollen [1]

function mint(address receiver, uint amount) { 
    if (msg.sender != minter) return; 
    balances[receiver] += amount; 
} 

Sie Minze-Funktion aufrufen Konto angeben [1] und wie viele Zeichen Sie wollen geben. Führen Sie die Funktion in der Konsole und seine done Konto [1] hat 100 Token

wenn Sie wissen wollen, wie viel Balance Konto [1] können Sie

überprüfen
mapping (address => uint) public balances; 

Dies wird durch jede öffentlich accssesed werden kann man kann einfach contractInsance.balances[account[1]]; ausführen und Sie erhalten, wie viel Konto [1] oder jede Adresse hat.

geben Sie mir einen Kommentar, wenn ich einen Punkt verpasst oder etwas nicht klar war