mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
|
const connect = require('react-redux').connect
|
||
|
const actions = require('../../actions')
|
||
|
const abi = require('ethereumjs-abi')
|
||
|
const SendEther = require('../../send-v2')
|
||
|
|
||
|
const { multiplyCurrencies } = require('../../conversion-util')
|
||
|
|
||
|
const {
|
||
|
accountsWithSendEtherInfoSelector,
|
||
|
getCurrentAccountWithSendEtherInfo,
|
||
|
conversionRateSelector,
|
||
|
getSelectedToken,
|
||
|
getSelectedTokenExchangeRate,
|
||
|
getSelectedAddress,
|
||
|
} = require('../../selectors')
|
||
|
|
||
|
module.exports = connect(mapStateToProps, mapDispatchToProps)(SendEther)
|
||
|
|
||
|
function mapStateToProps (state) {
|
||
|
const selectedAddress = getSelectedAddress(state);
|
||
|
const selectedToken = getSelectedToken(state);
|
||
|
const tokenExchangeRates = state.metamask.tokenExchangeRates
|
||
|
const selectedTokenExchangeRate = getSelectedTokenExchangeRate(state)
|
||
|
const conversionRate = conversionRateSelector(state)
|
||
|
|
||
|
let data;
|
||
|
let primaryCurrency;
|
||
|
let tokenToUSDRate;
|
||
|
if (selectedToken) {
|
||
|
data = Array.prototype.map.call(
|
||
|
abi.rawEncode(['address', 'uint256'], [selectedAddress, '0x0']),
|
||
|
x => ('00' + x.toString(16)).slice(-2)
|
||
|
).join('')
|
||
|
|
||
|
primaryCurrency = selectedToken.symbol
|
||
|
|
||
|
tokenToUSDRate = multiplyCurrencies(
|
||
|
conversionRate,
|
||
|
selectedTokenExchangeRate,
|
||
|
{ toNumericBase: 'dec' }
|
||
|
)
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
selectedAccount: getCurrentAccountWithSendEtherInfo(state),
|
||
|
accounts: accountsWithSendEtherInfoSelector(state),
|
||
|
conversionRate,
|
||
|
selectedToken,
|
||
|
primaryCurrency,
|
||
|
data,
|
||
|
tokenToUSDRate,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function mapDispatchToProps (dispatch) {
|
||
|
return {
|
||
|
showCustomizeGasModal: () => dispatch(actions.showModal({ name: 'CUSTOMIZE_GAS' })),
|
||
|
estimateGas: params => dispatch(actions.estimateGas(params)),
|
||
|
getGasPrice: () => dispatch(actions.getGasPrice()),
|
||
|
updateTokenExchangeRate: token => dispatch(actions.updateTokenExchangeRate(token)),
|
||
|
}
|
||
|
}
|