diff --git a/package.json b/package.json
index d9354580e9c0be4e6bac4d5916f7033fcb47ac9e..9c220170a1743a0e46832ae3c6758f096eaf62d9 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,8 @@
},
"dependencies": {
"@parity/api": "^2.1.22",
- "@parity/light.js": "https://github.com/parity-js/light.js#898e90f43327fd50d0560b8e4db6d5c670bc1b20",
+ "@parity/light.js": "https://github.com/parity-js/light.js#2052c910d1ff4f4e38d4cba7fb5578ac4500f0ae",
+ "@parity/shared": "^3.0.1",
"async-retry": "^1.2.1",
"axios": "^0.18.0",
"checksum": "^0.1.1",
@@ -67,7 +68,6 @@
"rxjs": "^6.1.0"
},
"devDependencies": {
- "@parity/shared": "^2.2.28",
"babel-eslint": "^8.2.3",
"cross-env": "^5.1.4",
"node-sass": "^4.9.0",
diff --git a/src/Send/Send.js b/src/Send/Send.js
index 2a8899a0884502e14168574a22a56bff732a52af..1b20b22df3fd4790c562b50e438143b38058801a 100644
--- a/src/Send/Send.js
+++ b/src/Send/Send.js
@@ -13,7 +13,7 @@ import ethereumIcon from '../assets/img/tokens/ethereum.png';
import light from '../hoc';
@light({
- balance: () => myBalance$().pipe(map(value => +fromWei(value.toString()))),
+ balance: () => myBalance$().pipe(map(value => +fromWei(value))),
me: defaultAccount$
})
class Send extends PureComponent {
diff --git a/src/Tokens/TokensList/BalanceLayout/BalanceLayout.js b/src/Tokens/TokensList/BalanceLayout/BalanceLayout.js
index 3a49f3f682c2f8f8c6fd6ba199022b3aa8f42d90..d662b1b695d5c6f1cf74e40c79c1339840663e22 100644
--- a/src/Tokens/TokensList/BalanceLayout/BalanceLayout.js
+++ b/src/Tokens/TokensList/BalanceLayout/BalanceLayout.js
@@ -4,19 +4,23 @@
// SPDX-License-Identifier: MIT
import React from 'react';
+import PropTypes from 'prop-types';
-const BalanceLayout = ({ balance, token }) =>
+const BalanceLayout = ({ balance, token }) => (
-
- {token.name}
-
+
{token.name}
{Number.isFinite(balance) ? balance.toFixed(2) : '...'}{' '}
{token.symbol}
-
;
+
+);
+
+BalanceLayout.propTypes = {
+ balance: PropTypes.number
+};
export default BalanceLayout;
diff --git a/src/Tokens/TokensList/EthBalance/EthBalance.js b/src/Tokens/TokensList/EthBalance/EthBalance.js
index 779ec222dd09d92109179df8e3f89ac95ecc2c62..e092c908c9a9366d95aad4490bf342099cadd189 100644
--- a/src/Tokens/TokensList/EthBalance/EthBalance.js
+++ b/src/Tokens/TokensList/EthBalance/EthBalance.js
@@ -14,7 +14,7 @@ import BalanceLayout from '../BalanceLayout';
import light from '../../../hoc';
@light({
- balance: () => myBalance$().pipe(map(value => +fromWei(value.toString())))
+ balance: () => myBalance$().pipe(map(value => +fromWei(value)))
})
class EthBalance extends PureComponent {
static propTypes = {
diff --git a/src/Tokens/TokensList/TokenBalance/TokenBalance.js b/src/Tokens/TokensList/TokenBalance/TokenBalance.js
index 5bcadc1b1cd4239a9d26ed9968e689f2849e5367..2ea1ba333eed15282946fe0b7ef7fa6de6134be1 100644
--- a/src/Tokens/TokensList/TokenBalance/TokenBalance.js
+++ b/src/Tokens/TokensList/TokenBalance/TokenBalance.js
@@ -3,19 +3,36 @@
//
// SPDX-License-Identifier: MIT
-import React, { PureComponent } from 'react';
+import React, { Component } from 'react';
+import abi from '@parity/shared/lib/contracts/abi/eip20';
+import { defaultAccount$, makeContract$ } from '@parity/light.js';
+import { Link } from 'react-router-dom';
+import { map, switchMap } from 'rxjs/operators';
import PropTypes from 'prop-types';
import BalanceLayout from '../BalanceLayout';
+import light from '../../../hoc';
-class TokenBalance extends PureComponent {
+@light({
+ balance: ({ token: { address, decimals } }) =>
+ defaultAccount$().pipe(
+ switchMap(defaultAccount =>
+ makeContract$(address, abi).balanceOf$(defaultAccount)
+ ),
+ map(value => +value.div(10 ** decimals))
+ )
+})
+class TokenBalance extends Component {
static propTypes = {
token: PropTypes.object.isRequired
};
render () {
- const balance = Math.round(Math.random() * 100);
- return ;
+ return (
+
+
+
+ );
}
}
diff --git a/yarn.lock b/yarn.lock
index bee3629e01d7bba6713315e00d4938b75d930f40..792be438e77f680aa5ebbfacbc11afc71fa70a68 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -131,18 +131,18 @@
u2f-api "0.0.9"
u2f-api-polyfill "0.4.3"
-"@parity/light.js@https://github.com/parity-js/light.js#898e90f43327fd50d0560b8e4db6d5c670bc1b20":
+"@parity/light.js@https://github.com/parity-js/light.js#2052c910d1ff4f4e38d4cba7fb5578ac4500f0ae":
version "1.0.0"
- resolved "https://github.com/parity-js/light.js#898e90f43327fd50d0560b8e4db6d5c670bc1b20"
+ resolved "https://github.com/parity-js/light.js#2052c910d1ff4f4e38d4cba7fb5578ac4500f0ae"
dependencies:
"@babel/runtime" "^7.0.0-beta.46"
"@parity/api" "^2.1.22"
memoizee "^0.4.12"
rxjs "^6.1.0"
-"@parity/shared@^2.2.28":
- version "2.2.28"
- resolved "https://registry.yarnpkg.com/@parity/shared/-/shared-2.2.28.tgz#5a68188de1ce9c30f7964423ebffdece6a5963ea"
+"@parity/shared@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@parity/shared/-/shared-3.0.1.tgz#3506cc235ed9e73f88e20dca1d7300746ec050ff"
dependencies:
"@parity/ledger" "~2.1.3"
bignumber.js "4.1.0"
@@ -2939,8 +2939,8 @@ es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
next-tick "1"
es5-ext@^0.10.30, es5-ext@~0.10.2:
- version "0.10.44"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.44.tgz#7a877e994bb190aebd4718aa2d62784a12e2ca20"
+ version "0.10.45"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653"
dependencies:
es6-iterator "~2.0.3"
es6-symbol "~3.1.1"