aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorChi Kei Chan <chikeichan@gmail.com>2017-09-26 05:51:49 +0800
committerChi Kei Chan <chikeichan@gmail.com>2017-10-21 12:51:37 +0800
commit5cbbb476b3eb7a5fd70b014b2a1a83fea7092b58 (patch)
tree17e4223f56f3a73944b60be5ec28e8bc98c8eefd /ui
parent5aaa2d679b00a7a78338b9b72fa72397ad945b35 (diff)
downloadtangerine-wallet-browser-5cbbb476b3eb7a5fd70b014b2a1a83fea7092b58.tar.gz
tangerine-wallet-browser-5cbbb476b3eb7a5fd70b014b2a1a83fea7092b58.tar.zst
tangerine-wallet-browser-5cbbb476b3eb7a5fd70b014b2a1a83fea7092b58.zip
ShapeShift Integration
Diffstat (limited to 'ui')
-rw-r--r--ui/app/actions.js24
-rw-r--r--ui/app/reducers/app.js1
-rw-r--r--ui/app/reducers/metamask.js21
3 files changed, 42 insertions, 4 deletions
diff --git a/ui/app/actions.js b/ui/app/actions.js
index eb066a0e7..6a5a31bfb 100644
--- a/ui/app/actions.js
+++ b/ui/app/actions.js
@@ -138,6 +138,7 @@ var actions = {
BUY_ETH: 'BUY_ETH',
buyEth: buyEth,
buyEthView: buyEthView,
+ buyWithShapeShift,
BUY_ETH_VIEW: 'BUY_ETH_VIEW',
COINBASE_SUBVIEW: 'COINBASE_SUBVIEW',
coinBaseSubview: coinBaseSubview,
@@ -977,6 +978,18 @@ function coinShiftRquest (data, marketData) {
}
}
+function buyWithShapeShift (data) {
+ return dispatch => new Promise((resolve, reject) => {
+ shapeShiftRequest('shift', { method: 'POST', data}, (response) => {
+ if (response.error) {
+ return reject(response.error)
+ }
+ background.createShapeShiftTx(response.deposit, response.depositType)
+ return resolve(response)
+ })
+ })
+}
+
function showQrView (data, message) {
return {
type: actions.SHOW_QR_VIEW,
@@ -1010,9 +1023,14 @@ function shapeShiftRequest (query, options, cb) {
options.method ? method = options.method : method = 'GET'
var requestListner = function (request) {
- queryResponse = JSON.parse(this.responseText)
- cb ? cb(queryResponse) : null
- return queryResponse
+ try {
+ queryResponse = JSON.parse(this.responseText)
+ cb ? cb(queryResponse) : null
+ return queryResponse
+ } catch (e) {
+ cb ? cb({error: e}) : null
+ return e
+ }
}
var shapShiftReq = new XMLHttpRequest()
diff --git a/ui/app/reducers/app.js b/ui/app/reducers/app.js
index 4b05b608d..6f08c6dc4 100644
--- a/ui/app/reducers/app.js
+++ b/ui/app/reducers/app.js
@@ -494,7 +494,6 @@ function reduceApp (state, action) {
},
})
-
case actions.ONBOARDING_BUY_ETH_VIEW:
return extend(appState, {
transForward: true,
diff --git a/ui/app/reducers/metamask.js b/ui/app/reducers/metamask.js
index 323539eef..85ac3e201 100644
--- a/ui/app/reducers/metamask.js
+++ b/ui/app/reducers/metamask.js
@@ -19,6 +19,8 @@ function reduceMetamask (state, action) {
lastUnreadNotice: undefined,
frequentRpcList: [],
addressBook: [],
+ tokenExchangeRates: {},
+ coinOptions: {},
}, state.metamask)
switch (action.type) {
@@ -132,6 +134,25 @@ function reduceMetamask (state, action) {
conversionDate: action.value.conversionDate,
})
+ case actions.PAIR_UPDATE:
+ const { value: { marketinfo: pairMarketInfo } } = action
+ return extend(metamaskState, {
+ tokenExchangeRates: {
+ ...metamaskState.tokenExchangeRates,
+ [pairMarketInfo.pair]: pairMarketInfo,
+ },
+ })
+
+ case actions.SHAPESHIFT_SUBVIEW:
+ const { value: { marketinfo, coinOptions } } = action
+ return extend(metamaskState, {
+ tokenExchangeRates: {
+ ...metamaskState.tokenExchangeRates,
+ [marketinfo.pair]: marketinfo,
+ },
+ coinOptions,
+ })
+
default:
return metamaskState