mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Create a ShapeShift tx in tx History
This commit is contained in:
parent
23aeb1c5c1
commit
3525dc0801
@ -337,11 +337,11 @@ ConfigManager.prototype.getShapeShiftTxList = function () {
|
|||||||
var data = this.getData()
|
var data = this.getData()
|
||||||
var shapeShiftTxList = data.shapeShiftTxList ? data.shapeShiftTxList : []
|
var shapeShiftTxList = data.shapeShiftTxList ? data.shapeShiftTxList : []
|
||||||
shapeShiftTxList.forEach((tx) => {
|
shapeShiftTxList.forEach((tx) => {
|
||||||
if (tx.response.status !== 'complete'){
|
if (tx.response.status !== 'complete') {
|
||||||
var requestListner = function (request) {
|
var requestListner = function (request) {
|
||||||
tx.response = JSON.parse(this.responseText)
|
tx.response = JSON.parse(this.responseText)
|
||||||
if (tx.status === 'complete') {
|
if (tx.response.status === 'complete') {
|
||||||
tx.completeTime = new Date().getTime()
|
tx.time = new Date().getTime()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,6 +351,7 @@ ConfigManager.prototype.getShapeShiftTxList = function () {
|
|||||||
shapShiftReq.send()
|
shapShiftReq.send()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
this.setData(data)
|
||||||
return shapeShiftTxList
|
return shapeShiftTxList
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -358,10 +359,11 @@ ConfigManager.prototype.createShapeShiftTx = function (depositAddress, depositTy
|
|||||||
var data = this.getData()
|
var data = this.getData()
|
||||||
|
|
||||||
var shapeShiftTx = {depositAddress, depositType, key: 'shapeshift', time: new Date().getTime(), response: {}}
|
var shapeShiftTx = {depositAddress, depositType, key: 'shapeshift', time: new Date().getTime(), response: {}}
|
||||||
if(!data.shapeShiftTxList) {
|
if (!data.shapeShiftTxList) {
|
||||||
data.shapeShiftTxList = [shapeShiftTx]
|
data.shapeShiftTxList = [shapeShiftTx]
|
||||||
} else {
|
} else {
|
||||||
data.shapeShiftTxList.push(shapeShiftTx)
|
data.shapeShiftTxList.push(shapeShiftTx)
|
||||||
}
|
}
|
||||||
this.setData(data)
|
this.setData(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ module.exports = class MetamaskController {
|
|||||||
// coinbase
|
// coinbase
|
||||||
buyEth: this.buyEth.bind(this),
|
buyEth: this.buyEth.bind(this),
|
||||||
// shapeshift
|
// shapeshift
|
||||||
createShapeShiftTx : this.createShapeShiftTx.bind(this),
|
createShapeShiftTx: this.createShapeShiftTx.bind(this),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -319,10 +319,9 @@ module.exports = class MetamaskController {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
createShapeShiftTx (depositAddress, depositType) {
|
createShapeShiftTx (depositAddress, depositType) {
|
||||||
this.configManager.createShapeShiftTx(depositAddress, depositType)
|
this.configManager.createShapeShiftTx(depositAddress, depositType)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function noop () {}
|
function noop () {}
|
||||||
|
@ -30,7 +30,7 @@ function mapStateToProps (state) {
|
|||||||
unconfTxs: valuesFor(state.metamask.unconfTxs),
|
unconfTxs: valuesFor(state.metamask.unconfTxs),
|
||||||
unconfMsgs: valuesFor(state.metamask.unconfMsgs),
|
unconfMsgs: valuesFor(state.metamask.unconfMsgs),
|
||||||
isEthWarningConfirmed: state.metamask.isEthConfirmed,
|
isEthWarningConfirmed: state.metamask.isEthConfirmed,
|
||||||
shapeShiftTxList : state.metamask.shapeShiftTxList,
|
shapeShiftTxList: state.metamask.shapeShiftTxList,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -747,7 +747,7 @@ function reshowQrCode (data, coin) {
|
|||||||
shapeShiftRequest('marketinfo', {pair: `${coin.toLowerCase()}_eth`}, (mktResponse) => {
|
shapeShiftRequest('marketinfo', {pair: `${coin.toLowerCase()}_eth`}, (mktResponse) => {
|
||||||
if (mktResponse.error) return dispatch(actions.showWarning(mktResponse.error))
|
if (mktResponse.error) return dispatch(actions.showWarning(mktResponse.error))
|
||||||
|
|
||||||
var message =[
|
var message = [
|
||||||
`Deposit your ${coin} to the address bellow:`,
|
`Deposit your ${coin} to the address bellow:`,
|
||||||
`Deposit Limit: ${mktResponse.limit}`,
|
`Deposit Limit: ${mktResponse.limit}`,
|
||||||
`Deposit Minimum:${mktResponse.minimum}`,
|
`Deposit Minimum:${mktResponse.minimum}`,
|
||||||
|
@ -54,7 +54,7 @@ BuyButtonSubview.prototype.render = function () {
|
|||||||
justifyContent: 'space-around',
|
justifyContent: 'space-around',
|
||||||
},
|
},
|
||||||
}, [
|
}, [
|
||||||
h(currentForm.coinbase ? '.activeForm' : '.inactiveForm', {
|
h(currentForm.coinbase ? '.activeForm' : '.inactiveForm.pointer', {
|
||||||
onClick: () => props.dispatch(actions.coinBaseSubview()),
|
onClick: () => props.dispatch(actions.coinBaseSubview()),
|
||||||
}, 'Coinbase'),
|
}, 'Coinbase'),
|
||||||
h('a', {
|
h('a', {
|
||||||
@ -67,7 +67,7 @@ BuyButtonSubview.prototype.render = function () {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
h(currentForm.shapeshift ? '.activeForm' : '.inactiveForm', {
|
h(currentForm.shapeshift ? '.activeForm' : '.inactiveForm.pointer', {
|
||||||
onClick: () => props.dispatch(actions.shapeShiftSubview(props.provider.type)),
|
onClick: () => props.dispatch(actions.shapeShiftSubview(props.provider.type)),
|
||||||
}, 'Shapeshift'),
|
}, 'Shapeshift'),
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ const addressSummary = require('../util').addressSummary
|
|||||||
|
|
||||||
const CopyButton = require('./copyButton')
|
const CopyButton = require('./copyButton')
|
||||||
const EtherBalance = require('./eth-balance')
|
const EtherBalance = require('./eth-balance')
|
||||||
|
const Tooltip = require('./tooltip')
|
||||||
|
|
||||||
|
|
||||||
module.exports = connect(mapStateToProps)(ShiftListItem)
|
module.exports = connect(mapStateToProps)(ShiftListItem)
|
||||||
@ -19,15 +20,15 @@ function mapStateToProps (state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inherits(ShiftListItem, Component)
|
inherits(ShiftListItem, Component)
|
||||||
|
|
||||||
function ShiftListItem () {
|
function ShiftListItem () {
|
||||||
Component.call(this)
|
Component.call(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
ShiftListItem.prototype.render = function () {
|
ShiftListItem.prototype.render = function () {
|
||||||
const props = this.props
|
|
||||||
return (
|
return (
|
||||||
h(`.transaction-list-item.flex-row`, {
|
h('.transaction-list-item.flex-row', {
|
||||||
style:{
|
style: {
|
||||||
paddingTop: '20px',
|
paddingTop: '20px',
|
||||||
paddingBottom: '20px',
|
paddingBottom: '20px',
|
||||||
justifyContent: 'space-around',
|
justifyContent: 'space-around',
|
||||||
@ -36,13 +37,13 @@ ShiftListItem.prototype.render = function () {
|
|||||||
}, [
|
}, [
|
||||||
h('div', {
|
h('div', {
|
||||||
style: {
|
style: {
|
||||||
width:'0px',
|
width: '0px',
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
bottom: '19px',
|
bottom: '19px',
|
||||||
},
|
},
|
||||||
}, [
|
}, [
|
||||||
h('img', {
|
h('img', {
|
||||||
src:'https://info.shapeshift.io/sites/default/files/logo.png',
|
src: 'https://info.shapeshift.io/sites/default/files/logo.png',
|
||||||
style: {
|
style: {
|
||||||
height: '35px',
|
height: '35px',
|
||||||
width: '132px',
|
width: '132px',
|
||||||
@ -68,30 +69,53 @@ ShiftListItem.prototype.renderUtilComponents = function () {
|
|||||||
switch (props.response.status) {
|
switch (props.response.status) {
|
||||||
case 'no_deposits':
|
case 'no_deposits':
|
||||||
return h('.flex-row', [
|
return h('.flex-row', [
|
||||||
h(CopyButton, { value: this.props.depositAddress }),
|
h(CopyButton, {
|
||||||
h('i.fa.fa-qrcode.pointer', {
|
value: this.props.depositAddress,
|
||||||
onClick: () => props.dispatch(actions.reshowQrCode(props.depositAddress, props.depositType)),
|
|
||||||
style: {
|
|
||||||
margin: '5px',
|
|
||||||
marginLeft: '23px',
|
|
||||||
marginRight: '12px',
|
|
||||||
fontSize: '20px',
|
|
||||||
color: '#F7861C',
|
|
||||||
},
|
|
||||||
}),
|
}),
|
||||||
|
h(Tooltip, {
|
||||||
|
title: 'QR Code',
|
||||||
|
}, [
|
||||||
|
h('i.fa.fa-qrcode.pointer.pop-hover', {
|
||||||
|
onClick: () => props.dispatch(actions.reshowQrCode(props.depositAddress, props.depositType)),
|
||||||
|
style: {
|
||||||
|
margin: '5px',
|
||||||
|
marginLeft: '23px',
|
||||||
|
marginRight: '12px',
|
||||||
|
fontSize: '20px',
|
||||||
|
color: '#F7861C',
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
]),
|
||||||
])
|
])
|
||||||
case 'received':
|
case 'received':
|
||||||
return h('.flex-row')
|
return h('.flex-row')
|
||||||
|
|
||||||
case 'complete':
|
case 'complete':
|
||||||
return h('.flex-row', [
|
return h('.flex-row', [
|
||||||
h(CopyButton, { value: this.props.response.transaction }),
|
h(CopyButton, {
|
||||||
h(EtherBalance, {
|
value: this.props.response.transaction,
|
||||||
value: `+${props.response.outgoingCoin}`,
|
}),
|
||||||
width: '55px',
|
h('.flex-row', {
|
||||||
shorten: true,
|
style: {
|
||||||
style: {fontSize: '15px'},
|
alignItems: 'baseline',
|
||||||
})
|
},
|
||||||
|
}, [
|
||||||
|
h('.color-orange', {
|
||||||
|
style: {
|
||||||
|
fontFamily: 'Montserrat Light',
|
||||||
|
position: 'relative',
|
||||||
|
left: '6px',
|
||||||
|
},
|
||||||
|
}, '+'),
|
||||||
|
h(EtherBalance, {
|
||||||
|
value: `${props.response.outgoingCoin}`,
|
||||||
|
width: '55px',
|
||||||
|
shorten: true,
|
||||||
|
style: {
|
||||||
|
fontSize: '15px',
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
]),
|
||||||
])
|
])
|
||||||
|
|
||||||
case 'failed':
|
case 'failed':
|
||||||
@ -106,17 +130,20 @@ ShiftListItem.prototype.renderInfo = function () {
|
|||||||
var props = this.props
|
var props = this.props
|
||||||
switch (props.response.status) {
|
switch (props.response.status) {
|
||||||
case 'no_deposits':
|
case 'no_deposits':
|
||||||
return h('.flex-column', {style: {width: '200px', overflow: 'hidden'}}, [
|
return h('.flex-column', {
|
||||||
|
style: {
|
||||||
|
width: '200px',
|
||||||
|
overflow: 'hidden',
|
||||||
|
},
|
||||||
|
}, [
|
||||||
h('div', {
|
h('div', {
|
||||||
style: {
|
style: {
|
||||||
fontSize: 'x-small',
|
fontSize: 'x-small',
|
||||||
color: '#ABA9AA',
|
color: '#ABA9AA',
|
||||||
width: '100%',
|
width: '100%',
|
||||||
},
|
},
|
||||||
}, [
|
}, `${props.depositType} to ETH via ShapeShift`),
|
||||||
`${props.depositType} to ETH via ShapeShift`
|
h('div', 'No deposits received'),
|
||||||
]),
|
|
||||||
h('div', `Status: ${props.response.status.replace('_', ' ')}`),
|
|
||||||
h('div', {
|
h('div', {
|
||||||
style: {
|
style: {
|
||||||
fontSize: 'x-small',
|
fontSize: 'x-small',
|
||||||
@ -126,17 +153,20 @@ ShiftListItem.prototype.renderInfo = function () {
|
|||||||
}, formatDate(props.time)),
|
}, formatDate(props.time)),
|
||||||
])
|
])
|
||||||
case 'received':
|
case 'received':
|
||||||
return h('.flex-column', {style: {width: '200px', overflow: 'hidden'}}, [
|
return h('.flex-column', {
|
||||||
|
style: {
|
||||||
|
width: '200px',
|
||||||
|
overflow: 'hidden',
|
||||||
|
},
|
||||||
|
}, [
|
||||||
h('div', {
|
h('div', {
|
||||||
style: {
|
style: {
|
||||||
fontSize: 'x-small',
|
fontSize: 'x-small',
|
||||||
color: '#ABA9AA',
|
color: '#ABA9AA',
|
||||||
width: '100%',
|
width: '100%',
|
||||||
},
|
},
|
||||||
}, [
|
}, `${props.depositType} to ETH via ShapeShift`),
|
||||||
`${props.depositType} to ETH via ShapeShift`
|
h('div', 'Conversion in progress'),
|
||||||
]),
|
|
||||||
h('div', `Conversion in progress`),
|
|
||||||
h('div', {
|
h('div', {
|
||||||
style: {
|
style: {
|
||||||
fontSize: 'x-small',
|
fontSize: 'x-small',
|
||||||
@ -146,20 +176,25 @@ ShiftListItem.prototype.renderInfo = function () {
|
|||||||
}, formatDate(props.time)),
|
}, formatDate(props.time)),
|
||||||
])
|
])
|
||||||
case 'complete':
|
case 'complete':
|
||||||
var url = explorerLink(props.response.transaction, parseInt('1'))
|
var url = explorerLink(props.response.transaction, parseInt('1'))
|
||||||
|
|
||||||
return h('.flex-column.pointer', {
|
return h('.flex-column.pointer', {
|
||||||
style: {width: '200px', overflow: 'hidden'},
|
style: {
|
||||||
onClick: () => extension.tabs.create({ url })
|
width: '200px',
|
||||||
|
overflow: 'hidden',
|
||||||
|
},
|
||||||
|
onClick: () => extension.tabs.create({
|
||||||
|
url,
|
||||||
|
}),
|
||||||
}, [
|
}, [
|
||||||
h('div', {
|
h('div', {
|
||||||
style: {
|
style: {
|
||||||
fontSize: 'x-small',
|
fontSize: 'x-small',
|
||||||
color: '#ABA9AA',
|
color: '#ABA9AA',
|
||||||
width: '100%',
|
width: '100%',
|
||||||
},
|
},
|
||||||
}, `ShapeShift`),
|
}, 'From ShapeShift'),
|
||||||
h('div', props.completeTime),
|
h('div', formatDate(props.time)),
|
||||||
h('div', {
|
h('div', {
|
||||||
style: {
|
style: {
|
||||||
fontSize: 'x-small',
|
fontSize: 'x-small',
|
||||||
@ -170,7 +205,7 @@ ShiftListItem.prototype.renderInfo = function () {
|
|||||||
])
|
])
|
||||||
|
|
||||||
case 'failed':
|
case 'failed':
|
||||||
return h('span.error', ' (Failed)')
|
return h('span.error', '(Failed)')
|
||||||
default:
|
default:
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
@ -592,3 +592,7 @@ div.message-container > div:first-child {
|
|||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #4D4D4D;
|
color: #4D4D4D;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pop-hover:hover {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
@ -490,7 +490,7 @@ function reduceApp (state, action) {
|
|||||||
data: action.value.data,
|
data: action.value.data,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
default:
|
default:
|
||||||
return appState
|
return appState
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user