Gemäß Whitehat Withdrawal contract – Update and Next Steps und Whitehat Withdrawal contract – Last update before deploying werden die Goodies die Auszahlungsverträge whetcwithdraw.sol , authorised_addresses.sol und whauthorizeaddress.sol bereitstellen , um die Auszahlung von Classic Ethers (ETCs) zu erleichtern auf Ihrem The DAO-Token DAO-Guthaben bei Block 1.919.999 kurz vor dem Hard Fork.
Wie verwende ich diese Verträge, um meine Classic Ethers (ETC) vom Auszahlungsvertrag abzuheben?
Siehe auch:
Sie haben nur noch 3 Tage Zeit, um Ihre Rückerstattungen aus dem WhitehatWithdraw-Vertrag abzuheben .
Im Auszahlungsvertrag verbleiben noch 1.651.062,7506 ETC (USD 4.292.763,15).
87 % der Konten haben ihre Rückerstattungen NICHT zurückgezogen .
Überprüfen Sie diese Tabelle , um zu bestätigen, dass Sie alle Ihre Rückerstattungen zurückgezogen haben.
Es folgt ein Diagramm des WhitehatWithdraw-Kontostands:
Die neuesten Anweisungen finden Sie unter The DAO Refunds .
Wie in DAO Token Holders dokumentiert, fordern Sie Ihr Geld an! , wird MyEtherWallet die Unterstützung für das Abheben von ETCs nach dem 1. Januar 2017 einstellen.
Eine neue Version von MyEtherWallet wurde gerade mit einem Node Switcher veröffentlicht . DAO-zu-ETC-Abhebungen können weiterhin ausgeführt werden, indem Sie zum ETC-Knoten von MyEtherWallet wechseln, aber die Unterstützung für den ETC-Knoten wird im nächsten Monat eingestellt. Bitte beachten Sie, dass ETC-Transaktionen auf der ETH-Kette wiedergegeben werden . Wie in den Versionshinweisen erwähnt, verschieben Sie Ihr ETH-Guthaben an eine neue Adresse, bevor Sie Ihre ETC-Transaktionen ausführen!
Sie können auch die alte v3.37-Version von MyEtherWallet herunterladen und Ihre DAO-zu-ETC-Auszahlung mit Wiederholungsschutz ausführen, aber auch hier beabsichtigt MyEtherWallet, die Unterstützung für ihren ETC-Knoten im nächsten Monat einzustellen.
Der Whitehat-Rücktrittsvertrag wurde um 2 Monate bis zum 15. April 2017 verlängert.
Die neuesten Anweisungen finden Sie unter The DAO Refunds .
Vom Whitehat-Rücktrittsvertrag – Aktualisierung und nächste Schritte :
Wenn keine größeren Einwände oder Exploits festgestellt werden, wird der Auszahlungsvertrag am 30. August 2016 um 17:00 Uhr MEZ bereitgestellt . Alle Benutzer haben ab diesem Tag 6 Monate Zeit, um ihre Rückerstattung zu beantragen.
Der Abhebungsvertrag wird wahrscheinlich mehrmals aufgestockt, da es noch ein weiteres kleines DAO gibt, auf dessen Erstellung wir warten, und auch einige Gelder werden von Börsen gehalten. Die Leute müssten also jedes Mal, wenn Gelder an den Vertrag gesendet werden, den Rest ihres Anteils beanspruchen.
Wir arbeiten auch aktiv mit Börsen zusammen, um das Problem der eingefrorenen Gelder zu lösen, und werden ein Update veröffentlichen, sobald es neue Informationen gibt, damit diese Gelder auch dem Auszahlungsvertrag hinzugefügt werden können.
Nach 6 Monaten werden alle verbleibenden Gelder an eine von der Whitehat-Gruppe kontrollierte Multisig gesendet und entweder als Spende für die Bemühungen behalten, die sie unternommen haben, um diesen Wert den Token-Inhabern zurückzugeben, oder für Community-Entwicklungen gespendet.
Die 6-Monatsfrist beträgt 24 Wochen ab Bereitstellung des Rücktrittsvertrags. Alle verbleibenden Gelder werden am 13. Februar 2017 aus dem Auszahlungsvertrag entfernt . Führen Sie Ihre Auszahlungen vor diesem Zeitpunkt durch, wenn Sie Ihre ETCs beanspruchen möchten.
Der Kanal #withdrawal_support auf thedao.slack.com wurde für Benutzer erstellt, um Unterstützung für den Widerrufsvertragsprozess zu erhalten (und zu geben). Und Spendenadressen für die Goodies sind 0xf63d257fc3576f9736fd9014cf0f0e1f0e7dd531 auf der ETH-Kette und 0xe79aca5c8cda44d834efa969906a377cb987e02e auf der ETC-Kette.
Sie sollten jetzt in der Lage sein, etwa 0,60417219365076306985 ETC pro 1 ETH-Token (100 DAOs) abzuheben. Der Auszahlungsvertrag wird mit weiteren ~ 0,11 ETC pro 1 ETH-Token (100 DAOs) aufgestockt. Weitere Auszahlungen können bei einer späteren Aufladung des Auszahlungsvertrages erfolgen. Aus dem Skript am Ende dieser Antwort:
WH Total Funds : 6971038.689221082299900709
The DAO Total Supply: 11538165.381458511407837618
WH Fill Factor : 0.60417219365076306985
Am 4. September 2016 um 07:02 UTC verbleiben noch 2749352,9709 ETCs im Auszahlungskontrakt bei 0x9f5304da62a5408416ea58a17a92611019bd5ce3 . Etwa 60 % der verfügbaren Mittel (6971038,6892 ETCs) wurden abgezogen.
Am 6. September 2016 um 15:05 Uhr UTC verbleiben noch 2697281,1240 ETCs im Auszahlungsvertrag. Etwa 61 % der verfügbaren Mittel wurden abgezogen. Und die Baddies haben in 7 Stunden Zugriff auf 3641694 ETCs.
Am 7. September 2016 um 01:38 Uhr UTC verbleiben noch 4132558,4010 ETCs im Auszahlungsvertrag. Der Auszahlungsvertrag wurde mit der endgültigen Einzahlung aufgestockt, einschließlich eines Bonus von 186.516,63 aus Wechselkursbewegungen. Hier ein Update der Statistik:
WH Total Funds : 8440400.269846492299900709
The DAO Total Supply: 11538165.381458511407837618
WH Fill Factor : 0.73152013260357357102
Ab wann haben die Baddies Zugriff auf die gehackten Gelder der Ethereum Classic-Kette? :
Stolen booty: 3641694.241898506992612606
The DAO Total Supply: 11538165.381458511407837618
Steal Factor: 0.3156
Steal + WH Fill Factor: 1.0471
Von @lefteris
:
Hey ... wenn der Angreifer hier ist und die Lücke liest ... würden Sie ein Held werden und dieses DAO-Kapitel wunderbar beenden, wenn Sie alle ETC, die Sie gerade erhalten haben, in den Auszahlungsvertrag einzahlen, damit der DTH sie abrufen kann.
Verwenden Sie die Funktion
deposit()
für die Adresse0x9f5304da62a5408416ea58a17a92611019bd5ce3
mitmsg.value
der Menge an ETC.
Unter https://whwithdraw.bity.com/ können Sie die Menge der ausgezahlten ETCs, die Menge der ETCs, die Sie abheben können, überprüfen und die ETCs abheben (hierfür müssen Sie eine Unterschrift leisten - siehe Methode 5 unten) .
Sie können den DAO-Saldo Ihres Kontos im Pre-Hard-Fork-Block 1.919.999 in DAOTokenBalance_20160819_155742UTC_balance.xlsx überprüfen . Sie können den ETC-Saldo und die Transaktionen Ihres Kontos mit dem Classic Chain Block Explorer unter https://gastracker.io/ überprüfen .
Methode 1 – Abhebung mit MyEtherWallet Dies ist die einfachste Methode, um Ihr ETC abzuheben. Richten Sie Ihren Browser auf https://www.myetherwallet.com/#the-dao (WICHTIG, um diese korrekte URL zu verwenden, da jeden Tag Phishing-Sites auftauchen). Siehe auch das obige Update vom 4. Januar 2017 .
Methode 2 – Auszahlung mit Ethereum Wallet auf der Classic Chain Synchronisieren Sie Ethereum Wallet 0.8.1 (NICHT 0.8.2) mit der Classic Chain und führen Sie die WhitehatWithdraw.withdraw(...)
Funktion aus.
Methode 3 – Auszahlung mit geth
On The Classic Chain Sync geth
1.4.10 oder höher mit der --oppose-dao-fork
Option und Funktion ausführen WhitehatWithdraw.withdraw(...)
.
[GESCHLOSSEN] Methode 4 – Bereitstellung Ihrer Absichtsunterschrift auf der ETH-Kette, damit die Goodies Ihre Auszahlung ausführen – nur für Wallet-Verträge Kette. Sie müssen dann nicht mit der Ethereum Classic-Kette synchronisieren. Diese Unterschrift musste vor dem 30. August 2016 um 17:00 Uhr MEZ ausgeführt werden, wenn der WhitehatWithdraw
Vertrag bereitgestellt wurde.
Methode 5 – Verwenden von sign() für die Whitehat-Auszahlung in der ETH-Kette – Für Nicht-Wallet-Vertragskonten Weitere Informationen finden Sie unter Verwendung von sign() für die Whitehat - Auszahlung . Beachten Sie, dass Sie für jede neue Auszahlung eine neue Signatur erstellen müssen, selbst wenn Sie dieselben Parameter angeben (von @jbaylina in thedao.slack.com/messages/withdraw_support ).
Methode 6 – Verwenden von WHETCWithdraw aus einem Mist-Kontrakt auf der klassischen Kette Siehe Verwenden von whetcwithdraw aus einem Mist-Kontrakt .
Wichtig
@kirkdameron
, können Sie ein neues Konto in der ETH-Kette (oder ETC, da die Konten gleich sind) erstellen und dieses neue Konto bei der Ausführung als Ihr Konto verwenden die Funktion. In MyEtherWallet können Sie Ihre neuen Konten als ETC-Zieladresse angeben. Verwenden Sie dieses neue Konto nicht in der ETH-Kette. Sie sind jetzt vor den Transaktionswiederholungen sicher.@lunejy
@bocrypto
_beneficiary
WhitehatWithdraw.withdraw(...)
DENKEN SIE DARAN, DASS ES MEHR RÜCKERSTATTUNGSRUNDEN GIBT – wenn die Goodies diesen Auszahlungsvertrag auffüllen. Überprüfen Sie regelmäßig das https://thedao.slack.com/messages/withdraw_support/-Forum und https://www.reddit.com/r/ethereum/ . Ich werde auch diese Seite aktualisieren.
21:26 31. August 2016 21:26 Kraken hat die eingefrorenen Gelder in diesen Auszahlungsvertrag eingezahlt. Sie können den zur Auszahlung verfügbaren Betrag mit der Funktion "Auszahlung berechnen" in der Ethereum-Wallet oder mit der unten dokumentierten whitehatWithdraw.calculateWithdraw(myAccount)
Funktion überprüfen.geth
03:00 Sep 1 2016 UTC Poloniex hat die eingefrorenen Gelder in den Auszahlungsvertrag eingezahlt.
08:36 1. September 2016 UTC Bonus geth
+ bash
Skript, um Ihnen die für Ihr Konto gezahlten und ausstehenden Whitehat-Auszahlungsbeträge anzuzeigen - siehe unten in dieser Antwort.
01:38 7. September 2016 UTC Whitehat-Auszahlungsvertrag – Endgültige Einzahlung ist verfügbar . Der Abhebungsvertrag wurde endgültig mit 269.566,58 ETC (von childDAO #101) und 1.199.777,62 ETC (von umgewandelten ETCs) aufgeladen – Sie müssen den Abhebungsprozess ein letztes Mal durchführen. Gute Arbeit insgesamt Goodies!
Details basierend auf den Verträgen in github am 27. August 2016 um 16:01 Uhr.
Update 1. Januar 2017 – MyEtherWallet wird die ETC-Auszahlungsunterstützung nach dem 1. Januar 2017 einstellen.
LEBEN UND ARBEITEN
Führen Sie MyEtherWallet von https://www.myetherwallet.com/#the-dao aus (Seien Sie vorsichtig, da es gefälschte MyEtherWallet-Sites mit ähnlichen URLs gibt, die über das Internet auftauchen und darauf abzielen, Ihre privaten Schlüssel zu stehlen.)
Und die Spendenadresse von MyEtherWallet ist 0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8 .
LEBEN UND ARBEITEN - VERGESSEN SIE NICHT, DIES AUF DER KLASSISCHEN KETTE AUSZUFÜHREN
Wenn Sie den WhitehatWithdraw- Vertrag verwenden möchten, um auf ein reguläres Konto abzuheben (anstelle eines Wallet-Vertrags), müssen Sie die folgende Funktion ausführen:
withdraw(address _beneficiary, uint _percentageWHG)
Sie benötigen Ethereum Wallet 0.8.1 , um das Wallet der Classic-Kette zu verwenden.
Beachten Sie, dass Ethereum Wallet 0.8.2 NICHT auf der Classic-Kette ausgeführt wird, sondern Sie stattdessen auffordert, die Tools von https://ethereumclassic.github.io herunterzuladen .
Wenn Sie Ethereum Wallet 0.8.1 starten, werden Sie gefragt: „Möchten Sie die Kette aktivieren, in der mit dem Exploit verbundene Gelder in einen Vertrag zurückgeführt werden, wo sie von The DAO-Token-Inhabern abgehoben werden können?“. Antworten Sie mit Nein , um Ethereum Wallet in der Classic-Kette zu verwenden. Ethereum Wallet weist dann die gepackte geth
ausführbare Datei an, die Classic-Kette --fast
automatisch herunterzuladen. Möglicherweise werden Sie auch gefragt, ob Sie die neue Version herunterladen möchten - schließen Sie einfach das Dialogfeld.
Siehe Wie synchronisiere ich die Ethereum-Wallet und/oder Geth mit der Ethereum Classic-Kette, ohne meine Hard-Fork-Ethereum-Kette zu beeinträchtigen? für Anweisungen zum Laufen der Classic-Kette neben der Hard-Fork-Kette - zu unterschiedlichen Zeiten.
WhitehatWithdraw
Vertrag ansehenKlicken Sie auf der Registerkarte Verträge auf Vertrag beobachten und dann:
WhitehatWithdraw
0x9f5304da62a5408416ea58a17a92611019bd5ce3
(dies ist die neu bereitgestellte Adresse)[{"constant":true,"inputs":[{"name":"_dth","type":"address"}],"name":"calculateWithdraw","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"escapeHatch","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_additionalSeconds","type":"uint256"}],"name":"extendClosingTime","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"getPaidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"getWHGDonationAddress","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"getMyBalance","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"type":"function"},{"constant":false,"inputs":[],"name":"claimRemaining","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_percentageWHG","type":"uint256"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"proxyWithdraw","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"getTotalFunds","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_percentageWHG","type":"uint256"}],"name":"withdraw","outputs":[],"type":"function"},{"inputs":[{"name":"_whg_donation","type":"address"},{"name":"_daoBalanceSnapshotAddress","type":"address"},{"name":"_escapeAddress","type":"address"},{"name":"_remainingBeneficiary","type":"address"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"dth","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"percentageWHG","type":"uint256"},{"indexed":false,"name":"withdrawType","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_depositor","type":"address"},{"indexed":false,"name":"_allowed","type":"bool"}],"name":"CertifiedDepositorsChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeCalled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"RemainingClaimed","type":"event"}]
Klicken Sie auf OK
So sollte Ihr Bildschirm aussehen, mit der entsprechenden Adresse, wenn er angekündigt wird:
WhitehatWithdraw.withdraw(...)
Klicken Sie auf der Registerkarte „ Verträge “ auf den soeben erstellten benutzerdefinierten Vertrag von WHITEHATWITHDRAW und gehen Sie dann wie folgt vor:
Klicken Sie auf AUSFÜHREN und geben Sie Ihr Passwort ein, um das ausgewählte Konto zu entsperren.
HINWEIS - Im Passwortbestätigungsbildschirm müssen Sie sicherstellen, dass Sie mindestens 200000 Gas bereitstellen
Das ETC-Guthaben auf Ihrer Adresse sollte bei ETCs im Verhältnis zu Ihrem The DAO-Token-Bestand multipliziert mit dem Prozentsatz der Gelder hinterlegt werden, die die Goodies zurückgefordert haben. Ihr Ethereum Wallet-Adressguthaben sollte mit dem neuen Guthaben aktualisiert werden.
geth
der klassischen KetteLEBEN UND ARBEITEN - VERGESSEN SIE NICHT, DIES AUF DER KLASSISCHEN KETTE AUSZUFÜHREN
Stellen Sie sicher, dass Sie die Geth-Version 1.4.10 oder höher ausführen. Und führen Sie Ihre Geth-Befehle mit der --oppose-dao-fork
Option aus, damit Sie sich auf der Ethereum Classic-Blockchain befinden. Die Befehle folgen - fügen Sie --datadir ~/classicchain
vor dem console
Parameter hinzu, um die klassische Kette mit einem anderen Verzeichnis zu synchronisieren:
user@Kumquat:~$ geth --oppose-dao-fork --fast console
// Allow chain to sync
var percentageWHGDonation = 10; // MINIMUM 0, MAX 100
var whitehatWithdrawAddress = "0x9f5304da62a5408416ea58a17a92611019bd5ce3"; // New re-deployed address
var whitehatWithdrawABIFragment = [{"constant":true,"inputs":[{"name":"_dth","type":"address"}],"name":"calculateWithdraw","outputs":[{"name":"","type":"uint256"}],"type":"function"}, {"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"getPaidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"}, {"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_percentageWHG","type":"uint256"}],"name":"withdraw","outputs":[],"type":"function"}];
var whitehatWithdraw = eth.contract(whitehatWithdrawABIFragment).at(whitehatWithdrawAddress);
var myAccount = "{your account}";
// var myAccount = "{your account}".toLowerCase(); // As suggested by @0x8000
// Check paid out amount
var paidoutAmount = whitehatWithdraw.getPaidOut(myAccount);
console.log("So far you have been paid " + web3.fromWei(paidoutAmount, "ether") + " ETC");
// Check withdrawal amount
var withdrawalAmount = whitehatWithdraw.calculateWithdraw(myAccount);
console.log("You can withdraw " + web3.fromWei(withdrawalAmount, "ether") + " ETC");
// Withdraw
personal.unlockAccount(myAccount, "{your password}");
var withdraw = whitehatWithdraw.withdraw(myAccount, percentageWHGDonation, {from: myAccount, value: 0, gas:200000});
console.log(withdraw);
Siehe Wie synchronisiere ich die Ethereum-Wallet und/oder Geth mit der Ethereum Classic-Kette, ohne meine Hard-Fork-Ethereum-Kette zu beeinträchtigen? für Anweisungen zum Laufen der Classic-Kette neben der Hard-Fork-Kette - zu unterschiedlichen Zeiten.
Sehen Sie sich den Abschnitt Authorizeaddress des Whitehat-Auszahlungsvertrags – Update und nächste Schritte an, wenn Sie möchten, dass Sie einen Wallet-Vertrag verwendet haben, um DAO-Token kurz vor dem Hard Fork zu halten.
Diese Unterschrift musste vor dem 30. August 2016 um 17:00 Uhr MEZ ausgeführt werden, wenn der WhitehatWithdraw
Vertrag bereitgestellt wurde.
geth
zur Überprüfung Ihres Whitehat-AuszahlungsguthabensHier ist ein Skript, um Ihre Whitehat-Auszahlungssalden zu überprüfen. Speichern Sie es in einer Datei und sehen Sie sich die Anweisungen oben in der Datei an.
#!/bin/sh
# ------------------------------------------------------------------------------
# Retrieve information on the Whitehat ETC Withdrawal contract for your accounts
#
# This script runs in Linux and OS/X. This script may run in Windows with the
# Cygwin bash shell installed.
#
# Usage:
# 1. Download this script to getWHETCBalances .
# 2. `chmod 700 getWHETCBalances`
# 3. Run `geth --oppose-dao-fork console` in a window.
# 4. Then run this script `./getWHETCBalances` in a separate window.
#
# Enjoy. (c) BokkyPooBah 2016. The MIT licence.
# ------------------------------------------------------------------------------
geth attach << EOF | grep "INFO" | sed "s/^INFO//"
function padTokens(s, n) {
var o = s.toFixed(0);
while (o.length < n) {
o = " " + o;
}
return o;
}
function padEthers(s, n) {
var o = s.toFixed(18);
while (o.length < 27) {
o = " " + o;
}
return o;
}
function checkAllBalances() {
var theDAOABIFragment = [{ "type": "function", "outputs": [ { "type": "uint256", "name": "balance", "value": "0" } ], "name": "balanceOf", "inputs": [ { "type": "address", "name": "_owner" } ], "constant": true }, {"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"}];
var theDAOAddress = "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413";
var theDAO = eth.contract(theDAOABIFragment).at(theDAOAddress);
var whitehatWithdrawAddress = "0x9f5304da62a5408416ea58a17a92611019bd5ce3";
var whitehatWithdrawABIFragment = [{"constant":true,"inputs":[{"name":"_dth","type":"address"}],"name":"calculateWithdraw","outputs":[{"name":"","type":"uint256"}],"type":"function"}, {"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"getPaidOut","outputs":[{"name":"","type":"uint256"}],"type":"function"}, {"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_percentageWHG","type":"uint256"}],"name":"withdraw","outputs":[],"type":"function"}, {"constant":true,"inputs":[],"name":"getTotalFunds","outputs":[{"name":"","type":"uint256"}],"type":"function"}];
var whitehatWithdraw = eth.contract(whitehatWithdrawABIFragment).at(whitehatWithdrawAddress);
var theDAOTotal = new BigNumber(0);
var ethersTotal = new BigNumber(0);
var whPaidoutAmountTotal = new BigNumber(0);
var whWithdrawalAmountTotal = new BigNumber(0);
var whTotalFunds = whitehatWithdraw.getTotalFunds();
console.log("INFOWH Total Funds : " + web3.fromWei(whTotalFunds, "ether"));
var totalSupply = theDAO.totalSupply();
console.log("INFOThe DAO Total Supply: " + web3.fromWei(totalSupply, "ether"));
var whFillFactor = whTotalFunds.div(totalSupply);
console.log("INFOWH Fill Factor : " + whFillFactor);
console.log("INFO # Account TheDAO ETC WH Paid Out ETC WH Withdrawal ETC");
console.log("INFO------- ------------------------------------------ ---------- --------------------------- --------------------------- ---------------------------");
var i =0;
eth.accounts.forEach( function(e) {
var tokens = theDAO.balanceOf(e).div(1e16);
theDAOTotal = theDAOTotal.add(tokens.toString());
var ethers = web3.fromWei(eth.getBalance(e), "ether");
ethersTotal = ethersTotal.add(ethers.toString());
var whPaidoutAmount = web3.fromWei(whitehatWithdraw.getPaidOut(e), "ether");
whPaidoutAmountTotal = whPaidoutAmountTotal.add(whPaidoutAmount);
var whWithdrawalAmount = web3.fromWei(whitehatWithdraw.calculateWithdraw(e), "ether");
whWithdrawalAmountTotal = whWithdrawalAmountTotal.add(whWithdrawalAmount);
console.log("INFO " + i + "\t" + e + " " + padTokens(tokens, 10) + " " + padEthers(ethers) + " " + padEthers(whPaidoutAmount) + " " + padEthers(whWithdrawalAmount));
i++;
})
console.log("INFO------- ------------------------------------------ ---------- --------------------------- --------------------------- ---------------------------");
console.log("INFO " + i + " Total " + padTokens(theDAOTotal, 10) + " " + padEthers(ethersTotal) + " " + padEthers(whPaidoutAmountTotal) + " " + padEthers(whWithdrawalAmountTotal));
};
checkAllBalances()
exit;
EOF
Und hier sind einige Beispielberichtsdaten aus dem obigen Skript.
user@Kumquat:~$ getWHETCBalances
WH Total Funds : 6971038.689221082299900709
The DAO Total Supply: 11538165.381458511407837618
WH Fill Factor : 0.60417219365076306985
# Account TheDAO ETC WH Paid Out ETC WH Withdrawal ETC
------- ------------------------------------------ ---------- --------------------------- --------------------------- ---------------------------
0 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 367 0.111111111111111111 0.111111111111111111 0.111111111111111111
1 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 735 0.222222222222222222 0.222222222222222222 0.222222222222222222
2 0xcccccccccccccccccccccccccccccccccccccccc 1103 0.333333333333333333 0.333333333333333333 0.333333333333333333
------- ------------------------------------------ ---------- --------------------------- --------------------------- ---------------------------
3 Total 2205 0.666666666666666666 0.666666666666666666 0.666666666666666666
Wie von @Chevdor abgefragt, stimmt der Code, der den Solidity Online Compiler mit solc
v0.3.5-2016-08-10-fc60839 verwendet, mit dem Code überein, der unter der ETC-Adresse bereitgestellt wird 0x9f5304da62a5408416ea58a17a92611019bd5ce3
.
Hier ist der bereitgestellte Code:
user@Kumquat:~$ geth --exec 'eth.getCode("0x9f5304da62a5408416ea58a17a92611019bd5ce3").substr(0,160)' attach
"0x606060405236156100b95760e060020a600035046302ef6c8681146100c15780631554611f146100dc5780633e2640d6146100f15780633fb27b851461010557806357211ac01461013b57806364da"
Und hier ist der Solidity Online Compiler-Bildschirm, der den Laufzeitcode am unteren Rand des Bildschirms zeigt:
Und die Erstellungstransaktion finden Sie hier . Diese Transaktion wurde mit folgenden Parametern ausgeführt (Sie können diese Parameter in den Blöcken 76 bis 80 im Block-Explorer sehen):
Ich denke, es bleibt eine gute Praxis, jeden Vertrag zu überprüfen, bevor er ausgeführt wird.
Der Vertrag scheint zu sein unter: https://github.com/BitySA/whetcwithdraw/blob/master/whetcwithdraw.sol
Gibt es eine Möglichkeit zu überprüfen, ob der Vertrag unter der Adresse 0x9f5304da62a5408416ea58a17a92611019bd5ce3 tatsächlich von der oben genannten Quelle stammt?
Um zu überprüfen, ob der bereitgestellte Vertrag tatsächlich mit der oben genannten Quelle übereinstimmt, könnten Sie bitte die 4 Parameter angeben, die zum Bereitstellen des Vertrags verwendet wurden? Vor allem die „Fluchtadresse“ und der „Restberechtigte“ sowie was sie bewirken?
Soweit ich das beurteilen kann, stimmt die ABI aus der Quelle mit der aus diesem Beitrag überein, mit Ausnahme der Entfernung der Füllmethode.
BEARBEITUNGEN: Die Parameter sind für die Überprüfung des Bytecodes NICHT relevant, und dank der Hilfe der Leute im Slack-Channel konnten ich und einige andere bestätigen, dass der Bytecode mit der Quelle übereinstimmt, solange die richtige Compiler-Version verwendet wird. Kurzgesagt:
Also bestätige ich jetzt auch auf meiner Seite, dass die Verwendung der richtigen (nightly sic ) Version des Compilers (ethereum.github.io/browser-solidity/#version=soljson-v0.3.5-2016-08-10-fc60839 . js&optimize=true) entspricht der Code unter https://raw.githubusercontent.com/BitySA/whetcwithdraw/master/whetcwithdraw.sol dem Bytecode an der Adresse 0x9f5304da62a5408416ea58a17a92611019bd5ce3.
Anthony Kong
Datenschutz ist ein Menschenrecht.eth
0x8000
var myAccount = "{your account}".toLowerCase();
knokte
Datenschutz ist ein Menschenrecht.eth
0xd4fb7fd0c254a8c6211e441f7236fa9479708a99
im verlinkten Beitrag nicht finden. Im verlinkten Beitrag unten links findet ihr eine Auflistung zum nächsten Artikel. Dieser Artikel blog.bity.com/2016/08/29/… bezieht sich auf die Adresse0x9f5304da62a5408416ea58a17a92611019bd5ce3
.knokte
Datenschutz ist ein Menschenrecht.eth
Datenschutz ist ein Menschenrecht.eth