Got ShapeShiftController back to working

feature/default_network_editable
Dan Finlay 8 years ago
parent 13ee92909c
commit 4dc71ed57b
  1. 19
      app/scripts/lib/controllers/shapeshift.js
  2. 36
      app/scripts/migrations/010.js

@ -9,8 +9,9 @@ class ShapeshiftController {
constructor (opts = {}) { constructor (opts = {}) {
const initState = extend({ const initState = extend({
shapeShiftTxList: [], shapeShiftTxList: [],
}, opts) }, opts.initState)
this.store = new ObservableStore(initState) this.store = new ObservableStore(initState)
this.pollForUpdates()
} }
// //
@ -19,19 +20,12 @@ class ShapeshiftController {
getShapeShiftTxList () { getShapeShiftTxList () {
const shapeShiftTxList = this.store.getState().shapeShiftTxList const shapeShiftTxList = this.store.getState().shapeShiftTxList
shapeShiftTxList.forEach((tx) => {
if (tx.response.status === 'no_deposits') {
this.updateTx(tx)
}
})
console.dir({shapeShiftTxList})
return shapeShiftTxList return shapeShiftTxList
} }
getPendingTxs () { getPendingTxs () {
const txs = this.getShapeShiftTxList() const txs = this.getShapeShiftTxList()
const pending = txs.filter(tx => tx.response.status !== 'complete') const pending = txs.filter(tx => tx.response && tx.response.status !== 'complete')
return pending return pending
} }
@ -47,7 +41,7 @@ class ShapeshiftController {
})) }))
.then((results) => { .then((results) => {
results.forEach(tx => this.saveTx(tx)) results.forEach(tx => this.saveTx(tx))
setTimeout(this.pollForUpdates.bind(this), POLLING_INTERVAL) this.timeout = setTimeout(this.pollForUpdates.bind(this), POLLING_INTERVAL)
}) })
} }
@ -55,7 +49,9 @@ class ShapeshiftController {
const url = `https://shapeshift.io/txStat/${tx.depositAddress}` const url = `https://shapeshift.io/txStat/${tx.depositAddress}`
return fetch(url) return fetch(url)
.then((response) => { .then((response) => {
tx.response = response.json() return response.json()
}).then((json) => {
tx.response = json
if (tx.response.status === 'complete') { if (tx.response.status === 'complete') {
tx.time = new Date().getTime() tx.time = new Date().getTime()
} }
@ -89,7 +85,6 @@ class ShapeshiftController {
} else { } else {
shapeShiftTxList.push(shapeShiftTx) shapeShiftTxList.push(shapeShiftTx)
} }
console.dir({ shapeShiftTxList })
this.store.updateState({ shapeShiftTxList }) this.store.updateState({ shapeShiftTxList })
this.pollForUpdates() this.pollForUpdates()

@ -0,0 +1,36 @@
const version = 10
/*
This migration breaks out the CurrencyController substate
*/
const merge = require('deep-extend')
module.exports = {
version,
migrate: function (versionedData) {
versionedData.meta.version = version
try {
const state = versionedData.data
const newState = transformState(state)
versionedData.data = newState
} catch (err) {
console.warn(`MetaMask Migration #${version}` + err.stack)
}
return Promise.resolve(versionedData)
},
}
function transformState (state) {
const newState = merge({}, state, {
ShapeShiftController: {
shapeShiftTxList: state.shapeShiftTxList || [],
},
})
delete newState.shapeShiftTxList
return newState
}
Loading…
Cancel
Save