Files

496 lines
20 KiB
HTML

<!DOCTYPE html>
<html lang="en" ng-app="mewApp">
<head>
<meta charset="utf-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/etherwallet-master.min.css">
<script type="text/javascript" src="js/etherwallet-static.min.js"></script>
<script type="text/javascript" src="js/etherwallet-master.js"></script>
<link rel="apple-touch-icon" sizes="180x180" href="images/fav/apple-touch-icon.png">
<link rel="icon" type="image/png" href="images/fav/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="images/fav/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="images/fav/manifest.json">
<link rel="mask-icon" href="images/fav/safari-pinned-tab.svg" color="#0e97c0">
<link rel="shortcut icon" href="images/fav/favicon.ico">
<meta name="msapplication-config" content="images/fav/browserconfig.xml">
<meta name="theme-color" content="#163151">
<meta property="og:url" content="" />
<meta property="og:title" content="" />
<meta property="og:description" content="" />
<meta property="og:image" content="" />
<meta property="og:image" content="" />
</head>
<body>
<header class="{{curNode.name}} {{curNode.service}} {{curNode.service}} nav-index-{{gService.currentTab}}" aria-label="header" ng-controller='tabsCtrl' >
<!--
<div class="small announcement annoucement-warning">
<div class="container">The #FOMO is Real. Breath. If you are trying to get in on Status.im, <strong> wait until BLOCK 3903900!</strong> <br /> If your TX is not urgent, we recommend NOT SENDING TODAY. Thank you for understanding. </div>
</div>
-->
<section class="bg-gradient header-branding">
<section class="container">
<!-- Warning: The separators you see on the frontend are in styles/etherwallet-custom.less. If you add / change a node, you have to adjust these. Ping tayvano if you're not a CSS wizard -->
</div>
</section>
</section>
<nav role="navigation" aria-label="main navigation" class="container nav-container overflowing" >
<a aria-hidden="true" ng-show="showLeftArrow" class="nav-arrow-left" ng-click="scrollLeft(100);" ng-mouseover="scrollHoverIn(true,2);" ng-mouseleave="scrollHoverOut()">&#171;</a>
<div class="nav-scroll">
<ul class="nav-inner">
<li ng-repeat="tab in tabNames track by $index" class="nav-item {{tab.name}}" ng-class="{active: $index==gService.currentTab}" ng-show="tab.mew" ng-click="tabClick($index)"> <a tabindex="0" aria-label="nav item: {{tab.name | translate}}" translate="{{tab.name}}"></a></li>
</ul>
</div>
<a aria-hidden="true" ng-show="showRightArrow" class="nav-arrow-right" ng-click="scrollRight(100);" ng-mouseover="scrollHoverIn(false,2);" ng-mouseleave="scrollHoverOut()">&#187;</a>
</nav>
<article class="modal fade" id="customNodeModal" tabindex="-1">
<section class="modal-dialog">
<section class="modal-content">
<div class="modal-body">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h2 class="modal-title text-info" translate="NODE_Title"> Set Up Your Custom Node </h2>
<p class="small" ng-show="browserProtocol!='https:'">
<strong translate="NODE_Subtitle">To connect to a local node...</strong>
<ul class="small">
<li> URL: http://127.0.0.1</li>
<li> Port: 8545 </li>
<li> Run geth: <code>geth --rpc --rpccorsdomain "null" --keystore "dont_put_secret_files_here_ever"</code></li>
<li> Run Parity: <code>parity --rpccorsdomain "*" --keys-path "dont_put_secret_files_here_ever"</code></li>
</ul>
</p>
<div ng-show="browserProtocol=='https:'" class="alert alert-danger small" translate="NODE_Warning">
Your node must be HTTPS in order to connect to it via MyEtherWallet.com. You can [download the MyEtherWallet repo & run it locally](https://github.com/kvhnuke/etherwallet/releases/latest) to connect to any node. Or, get free SSL certificate via [LetsEncrypt](https://letsencrypt.org/)</a>.
</div>
<section class="row">
<div class="clearfix col-xs-12">
<label translate="NODE_Name">Node Name</label>
<input class="form-control"
type="text"
placeholder="My ETH Node"
ng-model="customNode.name"
ng-class="Validator.isAlphaNumericSpace(customNode.name) ? 'is-valid' : 'is-invalid'">
</div>
<div class="clearfix col-xs-9">
<label>URL</label>
<input class="form-control" type="text" placeholder="http://127.0.0.1" ng-model="customNode.url" ng-class="checkNodeUrl(customNode.url) ? 'is-valid' : 'is-invalid'">
</div>
<div class="clearfix col-xs-3">
<label class="NODE_Port">Port</label>
<input class="form-control" type="text" placeholder="8545" ng-model="customNode.port" ng-class="Validator.isPositiveNumber(customNode.port) || customNode.port=='' ? 'is-valid' : 'is-invalid'">
</div>
<div class="clearfix col-xs-12">
<label><input type="checkbox" ng-model="customNode.httpBasicAuth" ng-true-value="{user:'',password:''}" ng-false-value="null" value="false"> HTTP Basic access authentication </label>
</div>
<div class="clearfix col-xs-6" ng-show="customNode.httpBasicAuth">
<label>User</label>
<input class="form-control" type="text" ng-model="customNode.httpBasicAuth.user" ng-class="customNode.httpBasicAuth &amp;&amp; customNode.httpBasicAuth.user.length > 0 ? 'is-valid' : 'is-invalid'">
</div>
<div class="clearfix col-xs-6" ng-show="customNode.httpBasicAuth">
<label>Password</label>
<input class="form-control" type="password" ng-model="customNode.httpBasicAuth.password" ng-class="customNode.httpBasicAuth &amp;&amp; customNode.httpBasicAuth.password.length > 0 ? 'is-valid' : 'is-invalid'">
</div>
<div class="clearfix col-xs-12 radio">
<label><input name="options" type="radio" ng-model="customNode.options" value="eth"> ETH </label>
<label><input name="options" type="radio" ng-model="customNode.options" value="etc"> ETC </label>
<label><input name="options" type="radio" ng-model="customNode.options" value="rop"> Ropsten </label>
<label><input name="options" type="radio" ng-model="customNode.options" value="kov"> Kovan </label>
<label><input name="options" type="radio" ng-model="customNode.options" value="rin"> Rinkeby </label>
<label><input name="options" type="radio" ng-model="customNode.options" value="cus"> Custom </label>
<label><input type="checkbox" ng-model="customNode.eip155" value="true"> Supports EIP-155 </label>
</div>
<div class="clearfix col-sm-6 col-sm-offset-6" ng-show="customNode.eip155">
<label>Chain ID</label>
<input class="form-control" type="text" placeholder="" ng-model="customNode.chainId" ng-class="Validator.isPositiveNumber(customNode.chainId) ? 'is-valid' : 'is-invalid'">
</div>
</section>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal" translate="x_Cancel">
Cancel
</button>
<button class="btn btn-primary" ng-click="saveCustomNode()" translate="NODE_CTA">
Save &amp; Use Custom Node
</button>
</div>
</section>
</section>
</article>
</header>
<section class="container" style="min-height: 50%" ng-controller='viewCtrl'>
<div class="tab-content" >
<div class="" ng-controller="helpersCtrl">
<h1> Convert Ethererum Units (e.g. Ether <-> Wei) </h1>
<h2 class="p"> Ether Wei Converter </h2>
<section class="mono">
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.wei" ng-change="convertUnit('wei')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> wei </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.kwei" ng-change="convertUnit('kwei')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> kwei </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.mwei" ng-change="convertUnit('mwei')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> mwei </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.gwei" ng-change="convertUnit('gwei')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> gwei <small>(shannon)</small> </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.szabo" ng-change="convertUnit('szabo')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> szabo </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.finney" ng-change="convertUnit('finney')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> finney </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.ether" ng-change="convertUnit('ether')" />
<div class="input-group-btn">
<a class="btn btn-primary" style="min-width: 170px;"> ether </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.kether" ng-change="convertUnit('kether')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> kether </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.mether" ng-change="convertUnit('mether')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> mether </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.gether" ng-change="convertUnit('gether')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> gether </a>
</div>
</div>
<div class="input-group form-group">
<input class="form-control" type="text" ng-model="units.tether" ng-change="convertUnit('tether')" />
<div class="input-group-btn">
<a class="btn btn-default" style="min-width: 170px;"> tether </a>
</div>
</div>
</section>
<br /><br /><br />
<h1> ENS Debugger & Data Grabber </h1>
<h2 class="p">Ethereum Name Service Data String Generator</h2>
<p class="text-danger"> This is meant to be a helpful tool for debugging and checking and generating manual reveals when necessary. Use at your own risk. There is no validation on these fields. </p>
<section class="row">
<div class="form-group col-sm-12">
<label> Address you Bid From </label>
<input class="form-control" type="text" ng-model="ensAddress" ng-change="allTheThings()" />
</div>
</section>
<section class="row">
<div class="form-group col-sm-6">
<label> ENS Name you Bid On (no '.eth' at the end!) </label>
<input class="form-control" type="text" ng-model="ensLabel" ng-change="toEnsLabelHash()" />
</div>
<div class="form-group col-sm-6">
<label> Hashed ENS Name (Label Hash) </label>
<input class="form-control" type="text" ng-model="ensLabelHash" />
</div>
</section>
<section class="row">
<div class="form-group col-sm-6">
<label> Amount you Bid (ETH) </label>
<input class="form-control" type="text" ng-model="bidEth" ng-change="toBidWei()" />
</div>
<div class="form-group col-sm-6">
<label> Amount you Bid (WEI) </label>
<input class="form-control" type="text" ng-model="bidWei" ng-change="toBidEth()" />
</div>
</section>
<section class="row">
<div class="form-group col-sm-6">
<label> Your Secret </label>
<input class="form-control" type="text" ng-model="ensSecret" ng-change="toEnsSecretHash()" />
</div>
<div class="form-group col-sm-6">
<label> Your Secret (Hashed) </label>
<input class="form-control" type="text" ng-model="ensSecretHash"/>
</div>
</section>
<section class="row">
<div class="form-group col-xs-12">
<label> Start Auction Data </label>
<input class="form-control" type="text" ng-model="startAuctionData" readonly />
<p>
To: <code>0x6090a6e47849629b7245dfa1ca21d94cd15878ef</code> &nbsp;&middot;&nbsp;
Amount: <code>0</code> &nbsp;&middot;&nbsp;
Gas Limit: <code>200000</code> &nbsp;&middot;&nbsp;
Data: <code>[ABOVE]</code>
</p>
</div>
</section>
<section class="row">
<div class="form-group col-xs-12">
<label> New Bid Data <small> If your reveals aren't working, this is the string that needs to match your bid data on Etherscan)</small> </label>
<input class="form-control" type="text" ng-model="shaBid" readonly />
<p>
To: <code>0x6090a6e47849629b7245dfa1ca21d94cd15878ef</code> &nbsp;&middot;&nbsp;
Amount: <code>[A NUMBER >= BID AMOUNT]</code> &nbsp;&middot;&nbsp;
Gas Limit: <code>500000</code> &nbsp;&middot;&nbsp;
Data: <code>[ABOVE]</code>
</p>
</div>
</section>
<section class="row">
<div class="form-group col-xs-12">
<label> Reveal Data <small> This is for manually revealing if you need to do so. </small></label>
<input class="form-control" type="text" ng-model="revealBidData" readonly />
<p>
To: <code>0x6090a6e47849629b7245dfa1ca21d94cd15878ef</code> &nbsp;&middot;&nbsp;
Amount: <code>0</code> &nbsp;&middot;&nbsp;
Gas Limit: <code>200000</code> &nbsp;&middot;&nbsp;
Data: <code>[ABOVE]</code>
</p>
</div>
</section>
<section class="row">
<div class="form-group col-xs-12">
<label> Finalize Auction Data </label>
<input class="form-control" type="text" ng-model="finalizeAuctionData" readonly />
<p>
To: <code>0x6090a6e47849629b7245dfa1ca21d94cd15878ef</code> &nbsp;&middot;&nbsp;
Amount: <code>0</code> &nbsp;&middot;&nbsp;
Gas Limit: <code>200000</code> &nbsp;&middot;&nbsp;
Data: <code>[ABOVE]</code>
</p>
</div>
</section>
<br /><br /><br />
<h1> Convert Decimal to Hexidecimal and Hex to Decimal </h1>
<div class="form-group">
<label> Decimal </label>
<input class="form-control" type="text" ng-model="decimalNumber" ng-change="decimalToHex()" />
</div>
<div class="form-group">
<label> Hexadecimal </label>
<input class="form-control" type="text" ng-model="hexNumber" ng-change="hexToDecimal()" />
</div>
<div class="form-group">
<label> Hexadecimal - Padded Left w/ 64 characters </label>
<input class="form-control" type="text" ng-model="hexPaddedLeft" />
</div>
<br /><br /><br />
<h1> "SHA3" (Keccak-256) It! <small><a href="https://ethereum.stackexchange.com/questions/550/which-cryptographic-hash-function-does-ethereum-use" target="_blank" rel="noopener">yooo... sha3 !== Keccak-256?!</a></small></h1>
<div class="form-group">
<label> Input </label>
<input class="form-control" type="text" ng-model="inputText" ng-change="toSHA3()" />
</div>
<div class="form-group">
<label> Output </label>
<input class="form-control" type="text" ng-model="outputText" readonly />
</div>
<br /><br /><br />
<h1> Ether Unit Reference Guide </h1>
<table class="table table-striped mono">
<tr>
<td><strong>wei</strong></td>
<td><small></small></td>
<td>1</td>
<td>1</td>
<td></td>
</tr>
<tr>
<td><strong>kwei</strong></td>
<td><small>ada, femtoether</small></td>
<td>1000</td>
<td>1,000</td>
<td>10<sup>3</sup></td>
</tr>
<tr>
<td><strong>mwei</strong></td>
<td><small>babbage, picoether</small></td>
<td>1000000</td>
<td>1,000,000</td>
<td>10<sup>6</sup></td>
</tr>
<tr>
<td><strong>gwei</strong></td>
<td><small>shannon, nanoether, nano</small></td>
<td>1000000000</td>
<td>1,000,000,000</td>
<td>10<sup>9</sup></td>
</tr>
<tr>
<td><strong>szabo</strong></td>
<td><small>microether, micro</small></td>
<td>1000000000000</td>
<td>1,000,000,000,000</td>
<td>10<sup>12</sup></td>
</tr>
<tr>
<td><strong>finney</strong></td>
<td><small>milliether, milli</small></td>
<td>1000000000000000</td>
<td>1,000,000,000,000,000</td>
<td>10<sup>15</sup></td>
</tr>
<tr>
<td><strong>ether</strong></td>
<td><small></small></td>
<td>1000000000000000000</td>
<td>1,000,000,000,000,000,000</td>
<td>10<sup>18</sup></td>
</tr>
<tr>
<td><strong>kether</strong></td>
<td><small>grand, einstein</small></td>
<td>1000000000000000000000</td>
<td>1,000,000,000,000,000,000,000</td>
<td>10<sup>21</sup></td>
</tr>
<tr>
<td><strong>mether</strong></td>
<td><small></small></td>
<td>1000000000000000000000000</td>
<td>1,000,000,000,000,000,000,000,000</td>
<td>10<sup>24</sup></td>
</tr>
<tr>
<td><strong>gether</strong></td>
<td><small></small></td>
<td>1000000000000000000000000000</td>
<td>1,000,000,000,000,000,000,000,000,000</td>
<td>10<sup>27</sup></td>
</tr>
<tr>
<td><strong>tether </strong></td>
<td><small></small></td>
<td>1000000000000000000000000000000</td>
<td>1000,000,000,000,000,000,000,000,000,000</td>
<td>10<sup>30</sup></td>
</tr>
</table>
</p>
<br /><br /><br />
<h1> Mistyped Private Key </h1>
<div class="form-group">
<label> Private Key that isn't unlocking correct address</label>
<input class="form-control" type="text" ng-model="mistypedPK" />
</div>
<div class="form-group">
<label> Address You Sent To </label>
<input class="form-control" type="text" ng-model="mistypedAddr" />
</div>
<div class="form-group">
<a class="btn btn-primary" ng-click="findMyPrivateKey()"> Start the Search! </a>
</div>
<div class="form-group">
<label> Actual Private Key </label>
<input class="form-control" type="text" ng-model="actualPK" readonly />
</div>
<div class="form-group">
<ul>
<li class="text-danger">Consider yourself very, very lucky.</li>
<li> Now you need to create a new secure wallet and move all funds to it.</li>
<li>In order to prevent the same thing from happening, <strong> please make sure your address you are sending to matches the address on your paper wallet</strong></li>
<li><a href="https://myetherwallet.groovehq.com/knowledge_base/topics/how-do-i-create-a-new-wallet" target="_blank" rel="noopener">Read this guide for more information.</a></li>
<li><a href="https://myetherwallet.groovehq.com/knowledge_base/topics/protecting-yourself-and-your-funds?from_search=true" target="_blank" rel="noopener">Learn how to protect yourself and your funds.</a></li>
</ul>
</div>
</div>
</div>
<div data-ng-repeat="alert in notifier.alerts">
<div class="alert popup alert-{{alert.type}} animated-show-hide"
style="bottom: {{55*$index}}px; z-index: {{999-$index}};">
<div class="container">
<div class='alert-message' ng-bind-html="alert.message"></div>
</div>
<i class="icon-close" ng-click="alert.close()"></i>
</div>
</div>
</section>
<footer class="footer" role="content" aria-label="footer" ng-controller='footerCtrl' >
</footer>
</main>
</body>
</html>