diff --git a/package.json b/package.json index c405680349..dbb553621a 100644 --- a/package.json +++ b/package.json @@ -12,10 +12,10 @@ "packages/*" ], "resolutions": { - "@polkadot/api": "^1.22.0-beta.3", - "@polkadot/api-contract": "^1.22.0-beta.3", + "@polkadot/api": "^1.22.0-beta.4", + "@polkadot/api-contract": "^1.22.0-beta.4", "@polkadot/keyring": "^2.16.0-beta.0", - "@polkadot/types": "^1.22.0-beta.3", + "@polkadot/types": "^1.22.0-beta.4", "@polkadot/util": "^2.16.0-beta.0", "@polkadot/util-crypto": "^2.16.0-beta.0", "babel-core": "^7.0.0-bridge.0" diff --git a/packages/page-accounts/src/Accounts/Account.tsx b/packages/page-accounts/src/Accounts/Account.tsx index 1dd8dc851f..75ee91d226 100644 --- a/packages/page-accounts/src/Accounts/Account.tsx +++ b/packages/page-accounts/src/Accounts/Account.tsx @@ -78,6 +78,7 @@ function Account ({ account: { address, meta }, className = '', filter, isFavori const proxyInfo = useProxies(address); const { flags: { isDevelopment, isExternal, isHardware, isInjected, isMultisig, isProxied }, genesisHash, name: accName, onSetGenesisHash, tags } = useAccountInfo(address); const [{ democracyUnlockTx }, setUnlockableIds] = useState({ democracyUnlockTx: null, ids: [] }); + const [vestingVestTx, setVestingTx] = useState | null>(null); const [isVisible, setIsVisible] = useState(true); const [isBackupOpen, toggleBackup] = useToggle(); const [isDeriveOpen, toggleDerive] = useToggle(); @@ -91,8 +92,15 @@ function Account ({ account: { address, meta }, className = '', filter, isFavori const [isTransferOpen, toggleTransfer] = useToggle(); useEffect((): void => { - balancesAll && setBalance(address, balancesAll.freeBalance); - }, [address, balancesAll, setBalance]); + if (balancesAll) { + setBalance(address, balancesAll.freeBalance); + setVestingTx(() => + balancesAll.vestingLocked.isZero() && api.api.tx.vesting?.vest + ? null + : api.api.tx.vesting.vest() + ); + } + }, [address, api, balancesAll, setBalance]); useEffect((): void => { setIsVisible( @@ -148,15 +156,21 @@ function Account ({ account: { address, meta }, className = '', filter, isFavori ); const _clearDemocracyLocks = useCallback( - (): void => { - democracyUnlockTx && queueExtrinsic({ - accountId: address, - extrinsic: democracyUnlockTx - }); - }, + () => democracyUnlockTx && queueExtrinsic({ + accountId: address, + extrinsic: democracyUnlockTx + }), [address, democracyUnlockTx, queueExtrinsic] ); + const _vestingVest = useCallback( + () => vestingVestTx && queueExtrinsic({ + accountId: address, + extrinsic: vestingVestTx + }), + [address, queueExtrinsic, vestingVestTx] + ); + const _showOnHardware = useCallback( (): void => { // TODO: we should check the hardwareType from metadata here as well, @@ -372,6 +386,14 @@ function Account ({ account: { address, meta }, className = '', filter, isFavori > {t('Clear expired democracy locks')} + ), + api.api.tx.vesting?.vest && vestingVestTx && ( + + {t('Unlock vested amount')} + ) ])} {createMenuGroup([ diff --git a/packages/page-contracts/package.json b/packages/page-contracts/package.json index 791660abd1..b433f57b1c 100644 --- a/packages/page-contracts/package.json +++ b/packages/page-contracts/package.json @@ -12,6 +12,6 @@ "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.10.3", - "@polkadot/api-contract": "^1.22.0-beta.3" + "@polkadot/api-contract": "^1.22.0-beta.4" } } diff --git a/packages/react-api/package.json b/packages/react-api/package.json index 12b5f70ba5..5c900633b8 100644 --- a/packages/react-api/package.json +++ b/packages/react-api/package.json @@ -31,8 +31,8 @@ "homepage": "https://github.com/polkadot-js/ui/tree/master/packages/ui-reactive#readme", "dependencies": { "@babel/runtime": "^7.10.3", - "@polkadot/api": "^1.22.0-beta.3", - "@polkadot/extension-dapp": "^0.32.0-beta.0", + "@polkadot/api": "^1.22.0-beta.4", + "@polkadot/extension-dapp": "^0.32.0-beta.1", "rxjs-compat": "^6.5.5" } } diff --git a/packages/react-components/src/AddressInfo.tsx b/packages/react-components/src/AddressInfo.tsx index 7bc63f258b..b55f1d6b07 100644 --- a/packages/react-components/src/AddressInfo.tsx +++ b/packages/react-components/src/AddressInfo.tsx @@ -256,11 +256,24 @@ function renderBalances (props: Props, allAccounts: string[], t: (k )} {balanceDisplay.vested && balancesAll?.isVesting && ( <> -