I became a bounty coder!

What is MetaMask?

MetaMask is a multi-browser plugin which I’d describe as an Ethereum caddy — it holds an Ether cryptocurrency wallet, makes that wallet available on web pages, and helps you sign and interact with other ‘smart contracts’ and tokens online using the web3 library.

How is a bounty created?

Owocki created the bounty with 0.4 Ether (then worth $393, now closer to $320) on GitCoin. This automatically added a notification to the relevant GitHub Issue, which had been open since July 2016. Maintainer Kumavis quickly made a comment which warned bounty hunters to focus on the newest UI branch.

How did I start working on the bounty?

I found out about the bounty when I saw this Tweet:

Is it difficult to add internationalization to a browser extension?

I was concerned at first, then I found the guide for Chrome apps, then I discovered that this is now a web standard which works in all the MetaMask browsers.

  • replace all UI text, such as <button>Confirm</button>, with the translation function <button>t(‘confirm’)</button>
  • enter shortcut codes in the manifest.json file so that the name and description in the App Store can be translated
  • build an organized list of all translations for the default language locale (en for English) which can be copied for other languages
  • a shorthand for longer phrases (‘Confirm this Transaction’ with ‘confirmThisTransaction’ or ‘confirmButton’ or ‘transactionConfirmButton’?)
  • organizing the English translations (I decided on alphabetical order, so that similar phrases might be bundled together)
  • a few menus looked at the text of your choice and not a unique ID.

Building and Testing

I found it difficult to consistently build the new UI branch on my machine. Maybe I have an old version of gulp? I got a full build working one day, tested it out, and forgot how to do it by the next day.

Circling back

Once I had seen the project working on my machine, I posted a Work-In-Progress pull request on the MetaMask repo. I explained some of my design decisions and asked for feedback (particularly on how to name and organize the almost 190 translatable phrases).

Updated March 12th, 2018

It took a month and a half, but after another user asked about translations, two developers at Consensys started on the final work to merge and approve my code for addition to MetaMask! That means the project was a success!

Conclusions

I would love to do more bounty work in the future. With cryptocurrency payments, it would be possible for someone to work on this anywhere in the world, without worrying about bank accounts or revealing their identity.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store