Token senden und Guthaben prüfen

Ich möchte besser verstehen, wie ich überprüfen kann, wie viel von einem Token sich in meinem Konto befindet, und wie ich diesen Token an eine andere Adresse senden kann.

Angenommen, ich besitze eine Melone (MLN) und möchte überprüfen, wie viel ich habe. Ich habe wie folgt vorgegangen:

var tokenContractABI = [{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}]," zahlbar":false,"type":"function"},{"constant":true,"inputs":[],"name":"minter","outputs":[{"name":""," type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":" address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":" bool"}],"zahlbar":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type": "uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newAddress","type":"address"} ],"name":"changeMelonportAddress","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":" sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}]," Name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true," input":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function" },{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable" :false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOTAL_TOKEN_AMOUNT_OFFERED_TO_PUBLIC","outputs":[{"name":"","type" :"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newAddress","type":"address"}] ,"name":"changeMintingAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner ","type":"address"}],"name":"lockedBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false, "type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs ":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[]," name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant": false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"mintIcedToken ","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":" die Anschrift"},{"name":"amount","type":"uint256"}],"name":"mintLiquidToken","outputs":[],"payable":false,"type":"function"},{"constant ":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type ":"function"},{"constant":true,"inputs":[],"name":"MAX_TOTAL_TOKEN_AMOUNT","outputs":[{"name":"","type":"uint256"} ],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name ":"Betrag","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false ,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"unlockBalance"," Ausgänge":[],"zahlbar":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"} ,{"name":"_spender","type":"address"}],"name":"erlaubnis","outputs":[{"name":"remaining","type":"uint256"} ],"bezahlbar":false,"type":"function"},{"constant":true,"inputs":[],"name":"melonport","outputs":[{"name":""," type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"THAWING_DURATION","outputs": [{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"setMinter"," type":"address"},{"name":"setMelonport","type":"address"},{"name":"setStartTime","type":"uint256"},{"name":" setEndTime","type":"uint256"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from ","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value", "type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name": "_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value ","Art":"uint256"}],"name":"Approval","type":"event"}] // Melonenvertrag ABI

var tokenContract = eth.contract(tokenContractABI).at("0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1") // das ist die Adresse des Melonenvertrags

tokenContract.balanceOf(eth.coinbase) // Guthaben prüfen

Dies scheint eine übermäßig umständliche Methode zu sein, um den MLN-Saldo auf meinem Konto herauszufinden. Kann man etwas sauberer machen? Darüber hinaus möchte ich jetzt MLN-Token an eine andere Adresse senden, aber es ist mir nicht klar, wie das geht.

Danke für die Hilfe.

Antworten (2)

Wenn Sie die Ethereum-Brieftasche verwenden , ist der sauberere Weg „Token beobachten“.

  • Gehen Sie zur Registerkarte Verträge.
  • Klicken Sie auf Token beobachten
  • Geben Sie Details wie Token-Vertragsadresse, Token-Name, Token-Symbol, Dezimalstellen der kleinsten Einheit ein
  • OK klicken

Und Sie können Salden sehen.

Um Funktionen des Vertrages wie ' auszuführen transfer, müssen Sie Vertrag beobachten.

  • Gehen Sie zur Registerkarte Verträge.
  • Klicken Sie auf Token beobachten
  • Geben Sie Details wie Vertragsname, Vertragsadresse, JSON-Schnittstelle (Vertrag ABI) ein
  • OK klicken
  • Jetzt wird der Vertrag unter der Registerkarte Verträge aufgelistet und Sie können alle seine Funktionen aufrufen

Wenn Sie Ethereum Wallet nicht verwenden und weiterhin verwenden möchten, gethsollten Sie wahrscheinlich Funktionen für die Aktionen wie checkBalance, transferCoin unter Verwendung von web3.js schreiben .

QuickBlocks verfügt über ein Befehlszeilentool namens getTokenBal, das als ersten Parameter eine beliebige ERC20-Token-Adresse verwendet, gefolgt von einer beliebigen Anzahl zusätzlicher Konten. Es berichtet über Token-Guthaben für jedes Konto nach dem ersten. Von der Befehlszeile aus

getTokenBal 0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1 <your_account>

würde Ihre Bestände in MLN (oder einem beliebigen ERC20-Token) zurückgeben.

Alternativ nimmt Option --byAccteine beliebige Anzahl von ERC20-Token-Adressen, gefolgt von einem Konto, und meldet die Token-Salden für jedes Token für dieses Konto.

Im normalen Betrieb läuft es auf einem lokal ausgeführten Knoten, aber es gibt eine Umgebungsvariable, die Sie festlegen können, die bewirkt, dass es bei Infura nach seiner RPC-Quelle sucht, sodass Sie nicht die gesamte Blockchain herunterladen müssen.

Ein Schwester-Befehlszeilentool namens getBalancefunktioniert ähnlich, meldet aber ETH-Salden.

[Vollständige Offenlegung: Ich habe QuickBlocks geschrieben, das diese Woche in den Betatest geht.]