aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/send/send-footer/send-footer.container.js
diff options
context:
space:
mode:
authorbrunobar79 <brunobar79@gmail.com>2018-07-17 00:55:13 +0800
committerbrunobar79 <brunobar79@gmail.com>2018-07-17 00:55:13 +0800
commitd05814a5ad375f21a0b3d72de1815764eb1da5a4 (patch)
tree50315015995fac6ab84f00e479d61710859ddb42 /ui/app/components/send/send-footer/send-footer.container.js
parent7f29b46d32b590ebc34c6f86360ef34e8bbb75fe (diff)
parentdb4469794e3e843f3cb08222d0a9b568c7816a85 (diff)
downloadtangerine-wallet-browser-d05814a5ad375f21a0b3d72de1815764eb1da5a4.tar.gz
tangerine-wallet-browser-d05814a5ad375f21a0b3d72de1815764eb1da5a4.tar.zst
tangerine-wallet-browser-d05814a5ad375f21a0b3d72de1815764eb1da5a4.zip
Merge branch 'develop' into initial-trezor-support
Diffstat (limited to 'ui/app/components/send/send-footer/send-footer.container.js')
-rw-r--r--ui/app/components/send/send-footer/send-footer.container.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/ui/app/components/send/send-footer/send-footer.container.js b/ui/app/components/send/send-footer/send-footer.container.js
new file mode 100644
index 000000000..0af6fcfa1
--- /dev/null
+++ b/ui/app/components/send/send-footer/send-footer.container.js
@@ -0,0 +1,100 @@
+import { connect } from 'react-redux'
+import ethUtil from 'ethereumjs-util'
+import {
+ addToAddressBook,
+ clearSend,
+ signTokenTx,
+ signTx,
+ updateTransaction,
+} from '../../../actions'
+import SendFooter from './send-footer.component'
+import {
+ getGasLimit,
+ getGasPrice,
+ getGasTotal,
+ getSelectedToken,
+ getSendAmount,
+ getSendEditingTransactionId,
+ getSendFromObject,
+ getSendTo,
+ getSendToAccounts,
+ getTokenBalance,
+ getUnapprovedTxs,
+} from '../send.selectors'
+import {
+ isSendFormInError,
+} from './send-footer.selectors'
+import {
+ addressIsNew,
+ constructTxParams,
+ constructUpdatedTx,
+} from './send-footer.utils'
+
+export default connect(mapStateToProps, mapDispatchToProps)(SendFooter)
+
+function mapStateToProps (state) {
+ return {
+ amount: getSendAmount(state),
+ editingTransactionId: getSendEditingTransactionId(state),
+ from: getSendFromObject(state),
+ gasLimit: getGasLimit(state),
+ gasPrice: getGasPrice(state),
+ gasTotal: getGasTotal(state),
+ inError: isSendFormInError(state),
+ selectedToken: getSelectedToken(state),
+ to: getSendTo(state),
+ toAccounts: getSendToAccounts(state),
+ tokenBalance: getTokenBalance(state),
+ unapprovedTxs: getUnapprovedTxs(state),
+ }
+}
+
+function mapDispatchToProps (dispatch) {
+ return {
+ clearSend: () => dispatch(clearSend()),
+ sign: ({ selectedToken, to, amount, from, gas, gasPrice }) => {
+ const txParams = constructTxParams({
+ amount,
+ from,
+ gas,
+ gasPrice,
+ selectedToken,
+ to,
+ })
+
+ selectedToken
+ ? dispatch(signTokenTx(selectedToken.address, to, amount, txParams))
+ : dispatch(signTx(txParams))
+ },
+ update: ({
+ amount,
+ editingTransactionId,
+ from,
+ gas,
+ gasPrice,
+ selectedToken,
+ to,
+ unapprovedTxs,
+ }) => {
+ const editingTx = constructUpdatedTx({
+ amount,
+ editingTransactionId,
+ from,
+ gas,
+ gasPrice,
+ selectedToken,
+ to,
+ unapprovedTxs,
+ })
+
+ return dispatch(updateTransaction(editingTx))
+ },
+ addToAddressBookIfNew: (newAddress, toAccounts, nickname = '') => {
+ const hexPrefixedAddress = ethUtil.addHexPrefix(newAddress)
+ if (addressIsNew(toAccounts)) {
+ // TODO: nickname, i.e. addToAddressBook(recipient, nickname)
+ dispatch(addToAddressBook(hexPrefixedAddress, nickname))
+ }
+ },
+ }
+}