Skip to content

Commit

Permalink
refactor(Swap): removed shapeshift
Browse files Browse the repository at this point in the history
  • Loading branch information
tony-blockchain committed Nov 20, 2018
1 parent 653de6c commit 3ccf41d
Show file tree
Hide file tree
Showing 19 changed files with 107 additions and 1,337 deletions.
Original file line number Diff line number Diff line change
@@ -1,47 +1,3 @@
export const EXCHANGE_INITIALIZED = '@EVENT.EXCHANGE_INITIALIZED'
export const EXCHANGE_DESTROYED = '@EVENT.EXCHANGE_DESTROYED'
export const EXCHANGE_PAYMENT_UPDATED = '@EVENT.EXCHANGE_PAYMENT_UPDATED'
export const EXCHANGE_ORDER_UPDATED = '@EVENT.EXCHANGE_ORDER_UPDATED'
export const EXCHANGE_FIRST_STEP_INITIALIZED =
'@EVENT.EXCHANGE_FIRST_STEP_INITIALIZED'
export const EXCHANGE_FIRST_STEP_ENABLED = '@EVENT.EXCHANGE_FIRST_STEP_ENABLED'
export const EXCHANGE_FIRST_STEP_DISABLED =
'@EVENT.EXCHANGE_FIRST_STEP_DISABLED'
export const EXCHANGE_FIRST_STEP_FORM_VALIDATED =
'@EVENT.EXCHANGE_FIRST_STEP_FORM_VALIDATED'
export const EXCHANGE_FIRST_STEP_FORM_UNVALIDATED =
'@EVENT.EXCHANGE_FIRST_STEP_FORM_UNVALIDATED'
export const EXCHANGE_FIRST_STEP_SWAP_CLICKED =
'@EVENT.EXCHANGE_FIRST_STEP_SWAP_CLICKED'
export const EXCHANGE_FIRST_STEP_MINIMUM_CLICKED =
'@EVENT.EXCHANGE_FIRST_STEP_MINIMUM_CLICKED'
export const EXCHANGE_FIRST_STEP_MAXIMUM_CLICKED =
'@EVENT.EXCHANGE_FIRST_STEP_MAXIMUM_CLICKED'
export const EXCHANGE_FIRST_STEP_SUBMIT_CLICKED =
'@EVENT.EXCHANGE_FIRST_STEP_SUBMIT_CLICKED'
export const EXCHANGE_SECOND_STEP_INITIALIZED =
'@EVENT.EXCHANGE_SECOND_STEP_INITIALIZED'
export const EXCHANGE_SECOND_STEP_SUCCESS =
'@EVENT.EXCHANGE_SECOND_STEP_SUCCESS'
export const EXCHANGE_SECOND_STEP_FAILURE =
'@EVENT.EXCHANGE_SECOND_STEP_FAILURE'
export const EXCHANGE_SECOND_STEP_GOBACK = '@EVENT.EXCHANGE_SECOND_STEP_GOBACK'
export const EXCHANGE_SECOND_STEP_CANCEL_CLICKED =
'@EVENT.EXCHANGE_SECOND_STEP_CANCEL_CLICKED'
export const EXCHANGE_SECOND_STEP_PAYMENT_SENT =
'@EVENT.EXCHANGE_SECOND_STEP_PAYMENT_SENT'
export const EXCHANGE_SECOND_STEP_SUBMIT_CLICKED =
'@EVENT.EXCHANGE_SECOND_STEP_SUBMIT_CLICKED'
export const EXCHANGE_SECOND_STEP_ORDER_EXPIRED =
'@EVENT.EXCHANGE_SECOND_STEP_ORDER_EXPIRED'
export const EXCHANGE_THIRD_STEP_INITIALIZED =
'@EVENT.EXCHANGE_THIRD_STEP_INITIALIZED'
export const EXCHANGE_THIRD_STEP_TRADE_STATUS_CHANGED =
'@EVENT.EXCHANGE_THIRD_STEP_TRADE_STATUS_CHANGED'
export const EXCHANGE_THIRD_STEP_CLOSE_CLICKED =
'@EVENT.EXCHANGE_THIRD_STEP_CLOSE_CLICKED'
export const EXCHANGE_US_STATE_REGISTERED =
'@EVENT.EXCHANGE_US_STATE_REGISTERED'
export const SET_STEP = '@DATA.EXCHANGE.SET_STEP'
export const CHANGE_SOURCE = '@EVENT.EXCHANGE.CHANGE_SOURCE'
export const CHANGE_TARGET = '@EVENT.EXCHANGE.CHANGE_TARGET'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,86 +1,5 @@
import * as AT from './actionTypes'

// ShapeShift Actions
export const initialized = () => ({ type: AT.EXCHANGE_INITIALIZED })
export const destroyed = () => ({ type: AT.EXCHANGE_DESTROYED })
export const paymentUpdated = payment => ({
type: AT.EXCHANGE_PAYMENT_UPDATED,
payload: payment
})
export const orderUpdated = order => ({
type: AT.EXCHANGE_ORDER_UPDATED,
payload: order
})
export const firstStepInitialized = () => ({
type: AT.EXCHANGE_FIRST_STEP_INITIALIZED
})
export const firstStepEnabled = () => ({
type: AT.EXCHANGE_FIRST_STEP_ENABLED
})
export const firstStepDisabled = () => ({
type: AT.EXCHANGE_FIRST_STEP_DISABLED
})
export const firstStepFormValidated = () => ({
type: AT.EXCHANGE_FIRST_STEP_FORM_VALIDATED
})
export const firstStepFormUnvalidated = error => ({
type: AT.EXCHANGE_FIRST_STEP_FORM_UNVALIDATED,
payload: error
})
export const firstStepSubmitClicked = () => ({
type: AT.EXCHANGE_FIRST_STEP_SUBMIT_CLICKED
})
export const firstStepSwapClicked = () => ({
type: AT.EXCHANGE_FIRST_STEP_SWAP_CLICKED
})
export const firstStepMinimumClicked = () => ({
type: AT.EXCHANGE_FIRST_STEP_MINIMUM_CLICKED
})
export const firstStepMaximumClicked = () => ({
type: AT.EXCHANGE_FIRST_STEP_MAXIMUM_CLICKED
})
export const secondStepInitialized = () => ({
type: AT.EXCHANGE_SECOND_STEP_INITIALIZED
})
export const secondStepSuccess = data => ({
type: AT.EXCHANGE_SECOND_STEP_SUCCESS,
payload: data
})
export const secondStepFailure = error => ({
type: AT.EXCHANGE_SECOND_STEP_FAILURE,
payload: error
})
export const secondStepSubmitClicked = () => ({
type: AT.EXCHANGE_SECOND_STEP_SUBMIT_CLICKED
})
export const secondStepPaymentSent = payment => ({
type: AT.EXCHANGE_SECOND_STEP_PAYMENT_SENT,
payload: payment
})
export const secondStepCancelClicked = () => ({
type: AT.EXCHANGE_SECOND_STEP_CANCEL_CLICKED
})
export const secondStepOrderExpired = () => ({
type: AT.EXCHANGE_SECOND_STEP_ORDER_EXPIRED
})
export const secondStepGoBack = () => ({
type: AT.EXCHANGE_SECOND_STEP_GOBACK
})
export const thirdStepInitialized = () => ({
type: AT.EXCHANGE_THIRD_STEP_INITIALIZED
})
export const thirdStepTradeStatusChanged = status => ({
type: AT.EXCHANGE_THIRD_STEP_TRADE_STATUS_CHANGED,
payload: status
})
export const thirdStepCloseClicked = () => ({
type: AT.EXCHANGE_THIRD_STEP_CLOSE_CLICKED
})
export const usStateRegistered = () => ({
type: AT.EXCHANGE_US_STATE_REGISTERED
})

// Exchange Actions
export const setStep = step => ({
type: AT.SET_STEP,
payload: { step }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ import {

export const logLocation = 'exchange/sagas'

export default ({ api, coreSagas, options, networks }) => {
export default ({ api, coreSagas, networks }) => {
const { SECOND_STEP_SUBMIT, SECOND_STEP_ERROR } = model.analytics.EXCHANGE
const {
RESULTS_MODAL,
Expand All @@ -77,9 +77,7 @@ export default ({ api, coreSagas, options, networks }) => {
validateXlmCreateAccount,
validateXlmAccountExists
} = utils({
api,
coreSagas,
options,
networks
})
const formValueSelector = selectors.form.getFormValues(EXCHANGE_FORM)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ export const EXCHANGE_STEPS = {

export const EXCHANGE_FORM = '@EXCHANGE.EXCHANGE_FORM'
export const CONFIRM_FORM = '@EXCHANGE.CONFIRM_FORM'
export const SHAPESHIFT_FORM = '@EXCHANGE.SHAPESHIFT_FORM'

export const SHAPESHIFT_PAIRS = Remote.of([
'BTC-BCH',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
import { assoc, compose, merge } from 'ramda'
import { assoc, compose } from 'ramda'
import * as AT from './actionTypes'
import { Remote } from 'blockchain-wallet-v4'
import { EXCHANGE_STEPS } from './model'

const INITIAL_STATE = {
step: EXCHANGE_STEPS.EXCHANGE_FORM,
secondStep: Remote.NotAsked,
error: 'initial',
payment: {},
order: {},
firstStepEnabled: true,
limits: Remote.NotAsked,
min: null,
max: null,
Expand All @@ -23,51 +18,6 @@ export default (state = INITIAL_STATE, action) => {
const { type, payload } = action

switch (type) {
case AT.EXCHANGE_ORDER_UPDATED: {
return assoc('order', payload, state)
}
case AT.EXCHANGE_PAYMENT_UPDATED: {
return assoc('payment', payload, state)
}
case AT.EXCHANGE_FIRST_STEP_ENABLED: {
return assoc('firstStepEnabled', true, state)
}
case AT.EXCHANGE_FIRST_STEP_DISABLED: {
return assoc('firstStepEnabled', false, state)
}
case AT.EXCHANGE_FIRST_STEP_FORM_VALIDATED: {
return assoc('error', '', state)
}
case AT.EXCHANGE_FIRST_STEP_FORM_UNVALIDATED: {
return assoc('error', payload, state)
}
case AT.EXCHANGE_FIRST_STEP_SUBMIT_CLICKED: {
return assoc('step', EXCHANGE_STEPS.CONFIRM, state)
}
case AT.EXCHANGE_SECOND_STEP_INITIALIZED: {
return assoc('secondStep', Remote.Loading, state)
}
case AT.EXCHANGE_SECOND_STEP_SUCCESS: {
return assoc('secondStep', Remote.Success(payload), state)
}
case AT.EXCHANGE_SECOND_STEP_FAILURE: {
return assoc('secondStep', Remote.Failure(payload), state)
}
case AT.EXCHANGE_SECOND_STEP_ORDER_EXPIRED:
case AT.EXCHANGE_SECOND_STEP_CANCEL_CLICKED: {
return INITIAL_STATE
}
case AT.EXCHANGE_SECOND_STEP_PAYMENT_SENT: {
return merge(state, {
step: EXCHANGE_STEPS.EXCHANGE_RESULT,
payment: payload
})
}
case AT.EXCHANGE_SECOND_STEP_GOBACK:
case AT.EXCHANGE_DESTROYED:
case AT.EXCHANGE_THIRD_STEP_CLOSE_CLICKED: {
return INITIAL_STATE
}
case AT.SET_STEP: {
return assoc('step', payload.step, state)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,78 +1,36 @@
import { actionTypes as formActionTypes } from 'redux-form'
import { takeEvery, takeLatest, fork } from 'redux-saga/effects'
import { takeLatest } from 'redux-saga/effects'

import { actionTypes } from 'data'
import * as AT from './actionTypes'
import exchangeSagas from './exchange.sagas'
import shapeshiftSagas from './shapeshift.sagas'

const registerExchangeSagas = function*(exchange) {
yield takeLatest(AT.INITIALIZE, exchange.exchangeFormInitialized)
yield takeLatest(AT.CHANGE_SOURCE, exchange.changeSource)
yield takeLatest(AT.CHANGE_TARGET, exchange.changeTarget)
yield takeLatest(AT.CHANGE_AMOUNT, exchange.changeAmount)
yield takeLatest(AT.CHANGE_FIX, exchange.changeFix)
yield takeLatest(AT.CONFIRM_EXCHANGE, exchange.confirm)
yield takeLatest(AT.CLEAR_SUBSCRIPTIONS, exchange.clearSubscriptions)
yield takeLatest(AT.SWAP_BASE_AND_COUNTER, exchange.swapFieldValue)
yield takeLatest(AT.UPDATE_LIMITS, exchange.updateLimits)
yield takeLatest(
actionTypes.modules.rates.PAIR_UPDATED,
exchange.onQuoteChange
)
yield takeLatest(
actionTypes.modules.rates.UPDATE_BEST_RATES,
exchange.onBestRatesChange
)
yield takeLatest(AT.USE_MIN, exchange.useMin)
yield takeLatest(AT.USE_MAX, exchange.useMax)
yield takeLatest(
AT.RECHECK_LATEST_TX,
exchange.checkLatestTx.bind(null, 'ETH')
)
yield takeLatest(AT.SHOW_CONFIRMATION, exchange.showConfirmation)
}

const registerShapeshiftSagas = function*(shapeshift) {
yield takeLatest(
AT.EXCHANGE_FIRST_STEP_INITIALIZED,
shapeshift.firstStepInitialized
)
yield takeLatest(AT.EXCHANGE_FIRST_STEP_SWAP_CLICKED, shapeshift.swapClicked)
yield takeLatest(
AT.EXCHANGE_FIRST_STEP_MINIMUM_CLICKED,
shapeshift.minimumClicked
)
yield takeLatest(
AT.EXCHANGE_FIRST_STEP_MAXIMUM_CLICKED,
shapeshift.maximumClicked
)
yield takeLatest(
AT.EXCHANGE_FIRST_STEP_SUBMIT_CLICKED,
shapeshift.firstStepSubmitClicked
)
yield takeLatest(
AT.EXCHANGE_THIRD_STEP_INITIALIZED,
shapeshift.thirdStepInitialized
)
yield takeLatest(
AT.EXCHANGE_SECOND_STEP_SUBMIT_CLICKED,
shapeshift.secondStepSubmitClicked
)
yield takeLatest(
AT.EXCHANGE_US_STATE_REGISTERED,
shapeshift.usStateRegistered
)
yield takeLatest(AT.EXCHANGE_DESTROYED, shapeshift.destroyed)
yield takeEvery(formActionTypes.CHANGE, shapeshift.change)
}

export default ({ api, coreSagas, options, networks }) => {
const shapeshift = shapeshiftSagas({ api, coreSagas, options, networks })
const exchange = exchangeSagas({ api, coreSagas, options, networks })
export default ({ api, coreSagas, networks }) => {
const exchange = exchangeSagas({ api, coreSagas, networks })

return function*() {
yield fork(registerShapeshiftSagas, shapeshift)
yield fork(registerExchangeSagas, exchange)
yield takeLatest(AT.INITIALIZE, exchange.exchangeFormInitialized)
yield takeLatest(AT.CHANGE_SOURCE, exchange.changeSource)
yield takeLatest(AT.CHANGE_TARGET, exchange.changeTarget)
yield takeLatest(AT.CHANGE_AMOUNT, exchange.changeAmount)
yield takeLatest(AT.CHANGE_FIX, exchange.changeFix)
yield takeLatest(AT.CONFIRM_EXCHANGE, exchange.confirm)
yield takeLatest(AT.CLEAR_SUBSCRIPTIONS, exchange.clearSubscriptions)
yield takeLatest(AT.SWAP_BASE_AND_COUNTER, exchange.swapFieldValue)
yield takeLatest(AT.UPDATE_LIMITS, exchange.updateLimits)
yield takeLatest(
actionTypes.modules.rates.PAIR_UPDATED,
exchange.onQuoteChange
)
yield takeLatest(
actionTypes.modules.rates.UPDATE_BEST_RATES,
exchange.onBestRatesChange
)
yield takeLatest(AT.USE_MIN, exchange.useMin)
yield takeLatest(AT.USE_MAX, exchange.useMax)
yield takeLatest(
AT.RECHECK_LATEST_TX,
exchange.checkLatestTx.bind(null, 'ETH')
)
yield takeLatest(AT.SHOW_CONFIRMATION, exchange.showConfirmation)
}
}

0 comments on commit 3ccf41d

Please sign in to comment.