commit
30af7e96cb
File diff suppressed because one or more lines are too long
@ -0,0 +1,163 @@ |
|||||||
|
{ |
||||||
|
"metamask": { |
||||||
|
"currentFiat": "USD", |
||||||
|
"conversionRate": 11.06608791, |
||||||
|
"conversionDate": 1470421024, |
||||||
|
"isInitialized": true, |
||||||
|
"isUnlocked": true, |
||||||
|
"currentDomain": "example.com", |
||||||
|
"rpcTarget": "https://rawtestrpc.metamask.io/", |
||||||
|
"shapeShiftTxList":[ |
||||||
|
{ |
||||||
|
"depositAddress": "1L8BJCR6KHkCiVceDqibt7zJscqPpH7pFw", |
||||||
|
"depositType": "BTC", |
||||||
|
"key": "shapeshift", |
||||||
|
"time": 1471564825772, |
||||||
|
"response": { |
||||||
|
"status": "complete", |
||||||
|
"outgoingCoin": "100.00", |
||||||
|
"incomingCoin": "1.000", |
||||||
|
"transaction": "0x3701e0ac344a12a1fc5417cf251109a7c41f3edab922310202630d9c012414c8" |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
"depositAddress": "1L8BJCR6KHkCiVceDqibt7zJscqPpH7pFw", |
||||||
|
"depositType": "BTC", |
||||||
|
"key": "shapeshift", |
||||||
|
"time": 1471566579224, |
||||||
|
"response": { |
||||||
|
"status": "no_deposits", |
||||||
|
"depositAddress": "1L8BJCR6KHkCiVceDqibt7zJscqPpH7pFw" |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
"depositAddress": "1L8BJCR6KHkCiVceDqibt7zJscqPpH7pFw", |
||||||
|
"depositType": "BTC", |
||||||
|
"key": "shapeshift", |
||||||
|
"time": 1471566565378, |
||||||
|
"response": { |
||||||
|
"status": "received", |
||||||
|
"depositAddress": "1L8BJCR6KHkCiVceDqibt7zJscqPpH7pFw" |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"transactions": [ { |
||||||
|
"id": 1467921503489592, |
||||||
|
"txParams": { |
||||||
|
"from": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", |
||||||
|
"to": "0x18a3462427bcc9133bb46e88bcbe39cd7ef0e761", |
||||||
|
"value": "0x66c899104aa57038000", |
||||||
|
"origin": "thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com", |
||||||
|
"metamaskId": 1467921503489592, |
||||||
|
"metamaskNetworkId": "2" |
||||||
|
}, |
||||||
|
"time": 1467921503489, |
||||||
|
"status": "rejected", |
||||||
|
"containsDelegateCall": false |
||||||
|
}, |
||||||
|
{ |
||||||
|
"id": 1467923203344608, |
||||||
|
"txParams": { |
||||||
|
"from": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", |
||||||
|
"to": "0x18a3462427bcc9133bb46e88bcbe39cd7ef0e761", |
||||||
|
"value": "0x0", |
||||||
|
"origin": "thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com", |
||||||
|
"metamaskId": 1467923203344608, |
||||||
|
"metamaskNetworkId": "2" |
||||||
|
}, |
||||||
|
"time": 1467923203344, |
||||||
|
"status": "confirmed", |
||||||
|
"containsDelegateCall": false, |
||||||
|
"hash": "0x957bbba51e2732a86c10c5e7e8a484a093795a06f2e2c38ad02da1b20aeca620" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"id": 1467921503489592, |
||||||
|
"txParams": { |
||||||
|
"from": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", |
||||||
|
"to": "0x18a3462427bcc9133bb46e88bcbe39cd7ef0e761", |
||||||
|
"value": "0x66c899104aa57038000", |
||||||
|
"origin": "thelongestdomainnameintheworldandthensomeandthensomemoreandmore.com", |
||||||
|
"metamaskId": 1467921503489592, |
||||||
|
"metamaskNetworkId": "2" |
||||||
|
}, |
||||||
|
"time": 1467921503489, |
||||||
|
"status": "confirmed", |
||||||
|
"containsDelegateCall": false |
||||||
|
}], |
||||||
|
"identities": { |
||||||
|
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { |
||||||
|
"name": "Wallet 1", |
||||||
|
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", |
||||||
|
"mayBeFauceting": false |
||||||
|
}, |
||||||
|
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { |
||||||
|
"name": "Wallet 2", |
||||||
|
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", |
||||||
|
"mayBeFauceting": false |
||||||
|
}, |
||||||
|
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": { |
||||||
|
"name": "Wallet 3", |
||||||
|
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823", |
||||||
|
"mayBeFauceting": false |
||||||
|
}, |
||||||
|
"0x704107d04affddd9b66ab9de3dd7b095852e9b69": { |
||||||
|
"name": "Wallet 4", |
||||||
|
"address": "0x704107d04affddd9b66ab9de3dd7b095852e9b69", |
||||||
|
"mayBeFauceting": false |
||||||
|
} |
||||||
|
}, |
||||||
|
"unconfTxs": {}, |
||||||
|
"accounts": { |
||||||
|
"0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { |
||||||
|
"code": "0x", |
||||||
|
"balance": "0x0", |
||||||
|
"nonce": "0x0", |
||||||
|
"address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" |
||||||
|
}, |
||||||
|
"0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { |
||||||
|
"code": "0x", |
||||||
|
"nonce": "0x0", |
||||||
|
"balance": "0x0", |
||||||
|
"address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b" |
||||||
|
}, |
||||||
|
"0xeb9e64b93097bc15f01f13eae97015c57ab64823": { |
||||||
|
"code": "0x", |
||||||
|
"nonce": "0x0", |
||||||
|
"balance": "0x0", |
||||||
|
"address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823" |
||||||
|
}, |
||||||
|
"0x704107d04affddd9b66ab9de3dd7b095852e9b69": { |
||||||
|
"code": "0x", |
||||||
|
"balance": "0x0", |
||||||
|
"nonce": "0x0", |
||||||
|
"address": "0x704107d04affddd9b66ab9de3dd7b095852e9b69" |
||||||
|
} |
||||||
|
}, |
||||||
|
"selectedAddress": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", |
||||||
|
"network": "1", |
||||||
|
"seedWords": null, |
||||||
|
"isConfirmed": true, |
||||||
|
"unconfMsgs": {}, |
||||||
|
"messages": [], |
||||||
|
"provider": { |
||||||
|
"type": "mainnet" |
||||||
|
}, |
||||||
|
"selectedAccount": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" |
||||||
|
}, |
||||||
|
"appState": { |
||||||
|
"menuOpen": false, |
||||||
|
"currentView": { |
||||||
|
"name": "accountDetail", |
||||||
|
"detailView": null, |
||||||
|
"context": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" |
||||||
|
}, |
||||||
|
"accountDetail": { |
||||||
|
"subview": "transactions" |
||||||
|
}, |
||||||
|
"currentDomain": "127.0.0.1:9966", |
||||||
|
"transForward": true, |
||||||
|
"isLoading": false, |
||||||
|
"warning": null |
||||||
|
}, |
||||||
|
"identities": {} |
||||||
|
} |
@ -0,0 +1,200 @@ |
|||||||
|
const inherits = require('util').inherits |
||||||
|
const Component = require('react').Component |
||||||
|
const h = require('react-hyperscript') |
||||||
|
const connect = require('react-redux').connect |
||||||
|
const vreme = new (require('vreme')) |
||||||
|
const explorerLink = require('../../lib/explorer-link') |
||||||
|
const extension = require('../../../app/scripts/lib/extension') |
||||||
|
const actions = require('../actions') |
||||||
|
const addressSummary = require('../util').addressSummary |
||||||
|
|
||||||
|
const CopyButton = require('./copyButton') |
||||||
|
const EtherBalance = require('./eth-balance') |
||||||
|
const Tooltip = require('./tooltip') |
||||||
|
|
||||||
|
|
||||||
|
module.exports = connect(mapStateToProps)(ShiftListItem) |
||||||
|
|
||||||
|
function mapStateToProps (state) { |
||||||
|
return {} |
||||||
|
} |
||||||
|
|
||||||
|
inherits(ShiftListItem, Component) |
||||||
|
|
||||||
|
function ShiftListItem () { |
||||||
|
Component.call(this) |
||||||
|
} |
||||||
|
|
||||||
|
ShiftListItem.prototype.render = function () { |
||||||
|
return ( |
||||||
|
h('.transaction-list-item.flex-row', { |
||||||
|
style: { |
||||||
|
paddingTop: '20px', |
||||||
|
paddingBottom: '20px', |
||||||
|
justifyContent: 'space-around', |
||||||
|
alignItems: 'center', |
||||||
|
}, |
||||||
|
}, [ |
||||||
|
h('div', { |
||||||
|
style: { |
||||||
|
width: '0px', |
||||||
|
position: 'relative', |
||||||
|
bottom: '19px', |
||||||
|
}, |
||||||
|
}, [ |
||||||
|
h('img', { |
||||||
|
src: 'https://info.shapeshift.io/sites/default/files/logo.png', |
||||||
|
style: { |
||||||
|
height: '35px', |
||||||
|
width: '132px', |
||||||
|
position: 'absolute', |
||||||
|
clip: 'rect(0px,23px,34px,0px)', |
||||||
|
}, |
||||||
|
}), |
||||||
|
]), |
||||||
|
|
||||||
|
this.renderInfo(), |
||||||
|
this.renderUtilComponents(), |
||||||
|
]) |
||||||
|
) |
||||||
|
} |
||||||
|
|
||||||
|
function formatDate (date) { |
||||||
|
return vreme.format(new Date(date), 'March 16 2014 14:30') |
||||||
|
} |
||||||
|
|
||||||
|
ShiftListItem.prototype.renderUtilComponents = function () { |
||||||
|
var props = this.props |
||||||
|
|
||||||
|
switch (props.response.status) { |
||||||
|
case 'no_deposits': |
||||||
|
return h('.flex-row', [ |
||||||
|
h(CopyButton, { |
||||||
|
value: this.props.depositAddress, |
||||||
|
}), |
||||||
|
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': |
||||||
|
return h('.flex-row') |
||||||
|
|
||||||
|
case 'complete': |
||||||
|
return h('.flex-row', [ |
||||||
|
h(CopyButton, { |
||||||
|
value: this.props.response.transaction, |
||||||
|
}), |
||||||
|
h(EtherBalance, { |
||||||
|
value: `${props.response.outgoingCoin}`, |
||||||
|
width: '55px', |
||||||
|
shorten: true, |
||||||
|
style: { |
||||||
|
fontSize: '15px', |
||||||
|
color: '#01888C', |
||||||
|
}, |
||||||
|
}), |
||||||
|
]) |
||||||
|
|
||||||
|
case 'failed': |
||||||
|
return '' |
||||||
|
default: |
||||||
|
return '' |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
ShiftListItem.prototype.renderInfo = function () { |
||||||
|
var props = this.props |
||||||
|
switch (props.response.status) { |
||||||
|
case 'no_deposits': |
||||||
|
return h('.flex-column', { |
||||||
|
style: { |
||||||
|
width: '200px', |
||||||
|
overflow: 'hidden', |
||||||
|
}, |
||||||
|
}, [ |
||||||
|
h('div', { |
||||||
|
style: { |
||||||
|
fontSize: 'x-small', |
||||||
|
color: '#ABA9AA', |
||||||
|
width: '100%', |
||||||
|
}, |
||||||
|
}, `${props.depositType} to ETH via ShapeShift`), |
||||||
|
h('div', 'No deposits received'), |
||||||
|
h('div', { |
||||||
|
style: { |
||||||
|
fontSize: 'x-small', |
||||||
|
color: '#ABA9AA', |
||||||
|
width: '100%', |
||||||
|
}, |
||||||
|
}, formatDate(props.time)), |
||||||
|
]) |
||||||
|
case 'received': |
||||||
|
return h('.flex-column', { |
||||||
|
style: { |
||||||
|
width: '200px', |
||||||
|
overflow: 'hidden', |
||||||
|
}, |
||||||
|
}, [ |
||||||
|
h('div', { |
||||||
|
style: { |
||||||
|
fontSize: 'x-small', |
||||||
|
color: '#ABA9AA', |
||||||
|
width: '100%', |
||||||
|
}, |
||||||
|
}, `${props.depositType} to ETH via ShapeShift`), |
||||||
|
h('div', 'Conversion in progress'), |
||||||
|
h('div', { |
||||||
|
style: { |
||||||
|
fontSize: 'x-small', |
||||||
|
color: '#ABA9AA', |
||||||
|
width: '100%', |
||||||
|
}, |
||||||
|
}, formatDate(props.time)), |
||||||
|
]) |
||||||
|
case 'complete': |
||||||
|
var url = explorerLink(props.response.transaction, parseInt('1')) |
||||||
|
|
||||||
|
return h('.flex-column.pointer', { |
||||||
|
style: { |
||||||
|
width: '200px', |
||||||
|
overflow: 'hidden', |
||||||
|
}, |
||||||
|
onClick: () => extension.tabs.create({ |
||||||
|
url, |
||||||
|
}), |
||||||
|
}, [ |
||||||
|
h('div', { |
||||||
|
style: { |
||||||
|
fontSize: 'x-small', |
||||||
|
color: '#ABA9AA', |
||||||
|
width: '100%', |
||||||
|
}, |
||||||
|
}, 'From ShapeShift'), |
||||||
|
h('div', formatDate(props.time)), |
||||||
|
h('div', { |
||||||
|
style: { |
||||||
|
fontSize: 'x-small', |
||||||
|
color: '#ABA9AA', |
||||||
|
width: '100%', |
||||||
|
}, |
||||||
|
}, addressSummary(props.response.transaction)), |
||||||
|
]) |
||||||
|
|
||||||
|
case 'failed': |
||||||
|
return h('span.error', '(Failed)') |
||||||
|
default: |
||||||
|
return '' |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue