Add auto-fauceting

When first creating a vault, the first account is submitted to our `rawtestrpc` faucet, receiving `1.337` ether within 15-30 seconds.
feature/default_network_editable
Dan Finlay 9 years ago
parent 39160d3025
commit d6dee7e748
  1. 2
      app/manifest.json
  2. 11
      app/scripts/lib/auto-faucet.js
  3. 20
      app/scripts/lib/idStore.js

@ -1,6 +1,6 @@
{ {
"name": "__MSG_appName__", "name": "__MSG_appName__",
"version": "1.1.2", "version": "1.2.0",
"manifest_version": 2, "manifest_version": 2,
"description": "__MSG_appDescription__", "description": "__MSG_appDescription__",
"icons": { "icons": {

@ -0,0 +1,11 @@
var uri = 'https://faucet.metamask.io/'
module.exports = function(address) {
var http = new XMLHttpRequest()
var data = address
http.open('POST', uri, true)
http.setRequestHeader('Content-type', 'application/rawdata')
http.send(data)
}

@ -7,6 +7,7 @@ const async = require('async')
const clone = require('clone') const clone = require('clone')
const extend = require('xtend') const extend = require('xtend')
const createId = require('web3-provider-engine/util/random-id') const createId = require('web3-provider-engine/util/random-id')
const autoFaucet = require('./auto-faucet')
module.exports = IdentityStore module.exports = IdentityStore
@ -47,6 +48,7 @@ IdentityStore.prototype.createNewVault = function(password, entropy, cb){
this._cacheSeedWordsUntilConfirmed(seedWords) this._cacheSeedWordsUntilConfirmed(seedWords)
this._loadIdentities() this._loadIdentities()
this._didUpdate() this._didUpdate()
this._autoFaucet()
cb(null, seedWords) cb(null, seedWords)
}) })
} }
@ -186,14 +188,14 @@ IdentityStore.prototype._cacheSeedWordsUntilConfirmed = function(seedWords) {
// load identities from keyStoreet // load identities from keyStoreet
IdentityStore.prototype._loadIdentities = function(){ IdentityStore.prototype._loadIdentities = function(){
if (!this._isUnlocked()) throw new Error('not unlocked') if (!this._isUnlocked()) throw new Error('not unlocked')
// get addresses and normalize address hexString
var addresses = this._keyStore.getAddresses(this.hdPathString).map((address) => { return '0x'+address }) var addresses = this._getAddresses()
addresses.forEach((address) => { addresses.forEach((address, i) => {
// // add to ethStore // // add to ethStore
this._ethStore.addAccount(address) this._ethStore.addAccount(address)
// add to identities // add to identities
var identity = { var identity = {
name: 'Wally', name: 'Wallet ' + (i+1),
img: 'QmW6hcwYzXrNkuHrpvo58YeZvbZxUddv69ATSHY3BHpPdd', img: 'QmW6hcwYzXrNkuHrpvo58YeZvbZxUddv69ATSHY3BHpPdd',
address: address, address: address,
} }
@ -268,6 +270,16 @@ IdentityStore.prototype._createFirstWallet = function(entropy, derivedKey) {
return keyStore return keyStore
} }
// get addresses and normalize address hexString
IdentityStore.prototype._getAddresses = function() {
return this._keyStore.getAddresses(this.hdPathString).map((address) => { return '0x'+address })
}
IdentityStore.prototype._autoFaucet = function() {
var addresses = this._getAddresses()
autoFaucet(addresses[0])
}
function IdManagement(opts) { function IdManagement(opts) {
if (!opts) opts = {} if (!opts) opts = {}

Loading…
Cancel
Save