CONTRIBUTING TO EOS TOKEN SALE WITH MyEtherWallet and Contract Inner *WORKS*

in #eos7 years ago

IMG_1637.PNG
trending

Shedding some light on the EOS Token Purchase Agreement
9 hours ago by cob 59 in eos

Some, ok many, people joining the EOS Slack channel are: extremely confused by the Token Purchase Agreement. It…
$2,513.85
268 83
Contributing to EOS Token Sale with MyEtherWallet & Contract Inner-Workings
8 hours ago by sandwich 56 in eos

There's been a bit of confusion about how to contribute to the EOS ICO with MyEtherWallet. I speculate this is an…
$2,185.97
168 40
500+ SBD BOUNTY & POTENTIAL STEEMGIG - HELP ME IMPROVE STEEMIT
15 hours ago by papa-pepper 75 in bounty

I can come up with ideas, but I lack the skills to make some things happen. I cannot write programs, I am not a…
$1,766.57
842 329
Happy Birthday to me - My first birthday as a Steemian !
yesterday by sweetsssj 73 in steemit

Dear beloved Steemit friends : Since reaching my previous milestoe of 3000 followers less than five days…
$2,193.05
1271 880
EOS ICO is Launching Today - Informations, Tips & Tricks, News, Predictions.
6 hours ago by kingscrown 72 in eos

EOS is another project of STEEMs original developer and its presale starts today. The presale will start as a Token…
$1,426.25
639 118
Travel In The Shenyang Imperial Palace #1: (one of the two remaining palaces in China)沈阳故宫
5 hours ago by helene 69 in travel

Hello steemian friends: Today I would like to share with you the Imperial Palace, one of the two remaining palaces…
$1,275.42
137 41
Our First Date - Meeting Charlie Shrem and Starting Our Adventure (Part 1)
9 hours ago by courtneywarner 56 in story

One cold January evening, I was pounding the pavement looking for a gig, before the acting picked up, I always…
$1,336.96
198 77
MyPictureSunday #10 - Dinner in Paris
9 hours ago by timsaid 70 in photography

Welcome my dear Steemian friends to another episode of MyPictureSunday! On Friday I decided to have a short…
$1,303.55
483 89
I WENT INSIDE GENESIS MININGS BITCOIN AND ETHEREUM MINING FARM!
2 days ago by trevonjb 67 in trevonjb

Here it is, the most anticipated, scam busting, confidence building, mouth shutting video of the year. Here is the…
$2,790.09
1281 506
My Adventure on the Island of Crete - Day 5 希腊克里特岛之旅 - 第五天
yesterday by rea 66 in cn

We've had the perfect holiday in Crete so far. Most of our friends back home advised us not to miss out a visit to…
$1,778.63
500 302
•••
What You Need To Know In The Vacation Rental Industry 06-25-2017
20 hours ago by bookingteam.com 61 in news

Hey there everyone, welcome to the BookingTeam "What you need to know in the vacation rental industry" blog post! See…
$1,368.15
305 73
BeyondBitcoin Bounties -- Whaleshares "Meta-Token" Logo Contest! (Round 3/3) [1000's of Steem in Prizes!]
5 hours ago by officialfuzzy 72 in beyondbitcoin

WhaleShares Logo Contest: Round #3 Begins! Art from Winners of the WhaleShares Contest 3/3…
$1,037.35
410 57

Why I Stopped Drinking Alcohol And Will Never Drink Again
13 hours ago by jeffberwick 56 in life

Well, it only took me about 30 years to figure out what a scam alcohol is! I thought I was smarter than to fall for…
$1,115.03
421 206
Is It Ethical To Eat Meat?
2 days ago by trafalgar 65 in life

The Benefits of Being A Human First off, congratulations! Because if you're reading this, chances are you're human…
$1,703.21
856 636
Decentralized and Blockchain Based Internet Coming Soon ?
yesterday by kingscrown 72 in technology

This was in plans since long time, project closest to achieving this was MAIDSAFE. The token trades on exchanges…
$1,579.08
874 230
How to Display Your Steemit Feed on a Wordpress Site: Plugin Fixed
14 hours ago by vitkolesnik 52 in wordpress

Good news for you Steemians: the plugin Steemit Feed for WordPress works again and is improved thanks to the…
$1,077.91
148 37
Cryptocurrencies Are Blowing Central Banks Out Of The Water - with Jeff Berwick
13 hours ago by joshsigurdson 59 in money

In this video, I sit down with Jeff Berwick of The @DollarVigilante and Anarchast at the Red Pill Expo in Bozeman…
$1,049.30
305 81
Din's Fire: A project to create a decentralized intelligence network
12 hours ago by rebelskum 64 in chainbb

Centralized or privatized intelligence serves only the interests of a small group of executives and shareholders. In…
$1,021.69
65 37
EOS vs. Ethereum for Dummies!
2 days ago by trogdor 62 in eos

Disclaimer: EOS is currently under development, and some of what we do know about the project is probably subject to…
$2,254.52
960 394
Steemit Is So Much More Than Just A Method For Individuals To Get Paid For Blogging, The Philosophy Behind The Steemit Platform Could Truly Revolutionize The Way Individuals Use The Internet.
10 hours ago by cryptofreedom 65 in steemit

Steemit proves that a platform where individuals have access to the value that they generate is possible, and it may…
$946.18
168 79
Back
Contributing to EOS Token Sale with MyEtherWallet & Contract Inner-Workings
8 hours ago
sandwich56 in eos
eos-blockchain.png

There's been a bit of confusion about how to contribute to the EOS ICO with MyEtherWallet. I speculate this is an inadvertent result of Dan being spoiled by Graphene blockchains, and the inherent ease of building a web-interface on top of them. By using MetaMask, the EOS team could come close to meeting these high standards. The reality is likely a bit different, but I digress...

The nature of this ICO almost demands a user interface, and by having one, helps you understand various parameters and avoid potentially catastrophic validation mistakes and/or process omissions. Because MyEtherWallet only aggregates interfaces in a very rudimentary way, you are imposing a great deal of usability constraints onto yourself when attempting to interact with the EOS Token Sale contract in this way.

All that aside, some people don't want to use MetaMask or don't use Chrome. Some just insist on using MyEtherWallet (MEW). This article is directed towards this niche group of users.

It took quite a bit of time to figure out how contributing with MEW would be accomplished, and in doing so learned a great deal about how this contract was structured. While the following article does explain how to participate in the ICO using MEW, it has not been verified or tested by anyone (since it cannot be tested yet)

Because of this, I did not skimp on any details, and will probably be the most tl;dr article you will (or will not) read today.

This article assumes you already have a funded ETH wallet and prior MyEtherWallet experience

You've Been Warned
THE INSTRUCTIONS BELOW ARE UNTESTED, I WILL UPDATE THIS MESSAGE AND OR CORRESPONDING INSTRUCTIONS ONCE I HAVE TESTED IT MYSELF. IT IS NOT RECOMMENDED THAT YOU FOLLOW THESE INSTRUCTIONS UNTIL THIS MESSAGE IS GONE

USE AT YOUR OWN RISK. THIS IS NOT LEGAL OR INVESTMENT ADVICE. IT IS HIGHLY SUGGESTED YOU READ THIS ARTICLE IN IT'S ENTIRETY AND UNDERSTAND THE IMPLICATIONS BEFORE CONDUCTING A TRANSACTION. IF YOU'RE A US CITIZEN OR RESIDENT YOU CANNOT PARTICIPATE IN EOS TOKEN SALE AND BY EXERCISING THIS CONTRACT YOU ARE AGREEING TO THOSE TERMS.

About the EOS Token Sale
Here's a wonderful article written by @trogdor

Technical Explanation of the Official EOS Distribution Web-Interface
The EOS Distribution page simplifies the interaction with their Ethereum Contract to make the process easier on the user with significantly lower possibility of error. So here is the breakdown of this simplification:

Button to Generate EOS Token client-side via JS.
Step to remind you to store your key-pair and nags for a private key confirmation.
When you click "I have safely backed up my private key," it calls the "register" function in the EOS Token contract which maps the EOS key you just generated to the active Ethereum wallet (address/pub key) in MetaMask. More on this below.
You then enter how many ETH you would like to contribute from the currently loaded MetaMask Wallet. Behind the scenes, it's passing the ETH amount, the number representing the window period you are contributing to (depending on the value of the dropdown) and it is passing a "0" for an argument called "limit" that doesn't seem to be exposed in the interface (more on that later) to a function called buyWithLimit()
Note: One of the biggest conveniences of the provided interface is the availability of "window periods" represented as numbers in a dropdown. Obtaining these numbers, cross-correlating them to a contribution window and subsequently understanding that particular contribution period's economic parameters is near impossible at this moment in time strictly through MEW.

Prerequisites
Prior MyEtherWallet experience
A funded Ethereum Wallet.
You will need to obtain the following information, which will be available on EOS.io at June 26th, 2017 at 13:00 UTC.

Token Sale Contract address
Token Sale ABI / JSON Interface
While I found this information by browsing source code, you shouldn't trust me or anyone else other than the official page to give it to you, it should always be obtained from the official site. Because of this, I have chosen not to include the contract address or interface code.

Instructions
REMINDER: The contract is not live, so I am not able to test these instructions

Step 1: Generate EOS Key-pair
Visit the EOS Token Generator created by @nadejde based off the official EOS Distribution Interface code, but with everything stripped out but the Key Generator. The original article about this code is here
Click Generate EOS key
CAREFULLY SAVE THE GENERATED KEY-PAIR
I cannot stress enough: SAVE THESE KEYS, write them down, put them in a safe, save them in an encrypted password manager with redundant backups and/or whatever your personally defined, paranoiac entropy ritual entails. Make sure you've copied them correctly! This cannot be stressed enough, you will need these to access your native EOS tokens in approximately a year!

Step 2: Registering/Mapping your EOS Key
About EOS Key Mapping
Registering your EOS key will map the key-pair you generated earlier, the public key of your future EOS wallet, to the Ethereum Address this transaction is broadcasted from. It is very important to understand this, because 48 hours after the token sale ends, ERC20 tokens can no longer be transferred, and where they live at that moment in time will be where they die, only to be reborn on the EOS blockchain according to the mapping defined by this function.

(takes deep breath)

If you move the tokens to an exchange, and fail to move your tokens back to Ethereum address you have the private keys for and have mapped to an EOS address, you will not have access to those EOS tokens on the native chain after June 1st 2018.

...But relax, you have time, there is no rush or need for anxiety yet, as of right now it's 341 days away

Does it matter when the EOS keys are mapped to an Ethereum Wallet?
Before I get into the technicals, which EOS has kindly simplified this through their user friendly interface, let me say this:

All that's really important is that you have a valid EOS key-pair whose public key is mapped to an Ethereum wallet containing EOS ERC20 tokens BEFORE the end of the 48 hour grace period following the end of the EOS token sale on June 1, 2018 at 22:59:59 UTC

(takes another deep breath)

So Technically, registering your EOS key can be completed at your discretion, before or after funding the contract.

For the sake of simplicity, this guide will consider key registration as the first step, however as outlined above, it can be completed at any point before the ERC20 tokens are frozen

How to Register your EOS Key
YOU ONLY NEED TO MAP AN EOS KEY TO AN ETHEREUM ADDRESS ONCE! DOING MORE THAN ONCE IS JUST WASTING MONEY!

You're going to need that Contract Address and ABI / JSON Interface I mentioned earlier
Go to https://www.myetherwallet.com/#contracts
Paste in the Contract Address and ABI/JSON Interface code
Click Access
Under "Read / Write Contract" select registerfrom dropdown.
In the field named Key enter the EOS Public Key you generated earlier. DO NOT, I repeat, DO NOT enter your Private key here.
Load your wallet using any one of the methods listed, for this example I used the Keystore File. Enter the password to your wallet in the very likely event is is encrypted. If it's not encrypted, may Murphy's Law forever be in your favor.
Click Unlock
Click Write
Set Amount to send to 0 and Gas Limit to at least 90000. If your TX fails, increase Gas Limit. If you would like your TX to go through more quickly, choose your gas limit accordingly.
Click "Generate Transaction"
Check the details of the transaction, and if you are confident, click Yes, I am sure! Make transaction
If all went well, a green bar will appear at the bottom of the page including a link to your transaction on the blockchain.
Step 3: Fund EOS Contract (The Current Window, "Today")
There's really two ways to do this, but for the sake of simplicity we'll do it the easiest way.

You're going to need that Contract Address
Go to https://www.myetherwallet.com/#send-transaction
Load your wallet using any one of the methods listed, for this example I used the Keystore File. Enter the password to your wallet in the very likely event is is encrypted. If it's not encrypted, may Murphy's Law forever be in your favor.
Click Unlock button
In Address field, enter the contract address.
In Amount to send field, enter the amount you would like to contribute.
Set Gas Limit to at least 90000. If your TX fails, increase Gas Limit. If you would like your TX to go through more quickly, choose your gas limit accordingly.
Click Generate Transaction button
Check the details of the transaction, and if you are confident, click Yes, I am sure! Make transaction
If all went well, a green bar will appear at the bottom of the page including a link to your transaction on the blockchain.
Caveat: Until someone publishes an interface that's autonomous from the official distribution page (hint, hint), you will not know the current rate without first using MetaMask ... If you're using MetaMask, why are you still reading this?

Note: There is a function in contract that allows more control over buying that is not exposed in GUI. However, I'm not sure how this function would work in actuality. After I test this functionality and confirm its efficacy, I will add it to this guide.

Step 4: Claim EOS Tokens
You can claim tokens at the end of any window you have contributed to. You will want to claim the tokens if you intend on trading them on exchanges. Each time you claim it will cost you some Ether, so you may want to wait it out.

You're going to need that Contract Address and ABI / JSON Interface I mentioned earlier
Go to https://www.myetherwallet.com/#contracts
Paste in the Contract Address and ABI/JSON Interface code
Click Access
Under the "Read / Write Contract" heading, in the dropdown select claimAll.
Load your wallet using any one of the methods listed, for this example I used the Keystore File. Enter the password to your wallet in the very likely event is is encrypted. If it's not encrypted, may Murphy's Law forever be in your favor.
Click Unlock button
Click Write button
Set Amount to send to 0 and Gas Limit to at least 90000. If your TX fails, increase Gas Limit. If you would like your TX to go through more quickly, choose your gas limit accordingly.
Click Generate Transaction button
Check the details of the transaction, and if you are confident with the details you have entered, click Yes, I am sure! Make transaction
If all went well, a green bar will appear at the bottom of the page including a link to your transaction on the blockchain.
Unanswered Questions
What happens if a single EOS public key is mapped to multiple Ethereum addresses?
Can register() be called from the Ethereum wallet to update its mapping to an EOS public key?
How does buyWithLimit() work in practice? Are funds not meeting limit requirements returned when running claimAll()? If so, where is the code for this?
Conclusion
I strongly suggest you use the official EOS distribution page with MetaMask integration. It takes far less time, and the chances of making a mistake are many orders of magnitude lower. If you're an advanced user and comfortable with MEW, you may have found this helpful. If you've found an error, please let me know!

Recap
Generate and save EOS key pair
Register (map) your EOS public key to your Ethereum Wallet (technically anytime before end of Token Sale)
Fund Contract from Ethereum Wallet you have mapped with your EOS key (or be sure to send the ERC20 tokens there by end of Token Sale)
Claim your tokens if you would like to transfer them.
Remember that your EOS ERC20 tokens should be in a wallet mapped to an EOS public key that you posses the private keys for sometime before the end of the ICO.
If you have no specific reasoning for preferring MEW you should really visit this article by @trogdor that explains the EOS sale in its entirely, as well as the MetaMask contribution process.

Again, USE at your own risk i don't own this!