Add vesting claims (#3079)

* Add vesting claims

* Bump API
This commit is contained in:
Jaco Greeff 2020-06-28 16:35:38 +02:00 committed by GitHub
parent f8f4285256
commit e34fa8f741
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 131 additions and 96 deletions

View File

@ -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"

View File

@ -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<DemocracyUnlockable>({ democracyUnlockTx: null, ids: [] });
const [vestingVestTx, setVestingTx] = useState<SubmittableExtrinsic<'promise'> | 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')}
</Menu.Item>
),
api.api.tx.vesting?.vest && vestingVestTx && (
<Menu.Item
key='vestingVest'
onClick={_vestingVest}
>
{t('Unlock vested amount')}
</Menu.Item>
)
])}
{createMenuGroup([

View File

@ -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"
}
}

View File

@ -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"
}
}

View File

@ -256,11 +256,24 @@ function renderBalances (props: Props, allAccounts: string[], t: <T = string> (k
)}
{balanceDisplay.vested && balancesAll?.isVesting && (
<>
<Label label={t<string>('vested')} />
<Label label={t<string>('vesting')} />
<FormatBalance
className='result'
label={
<Icon
icon='info-circle'
tooltip={`${address}-vested-trigger`}
/>
}
value={balancesAll.vestedBalance}
/>
>
<Tooltip
text={
<div>{formatBalance(balancesAll.vestedClaimable, { forceUnit: '-' })}<div className='faded'>{t('available to be unlocked')}</div></div>
}
trigger={`${address}-vested-trigger`}
/>
</FormatBalance>
</>
)}
{balanceDisplay.locked && balancesAll && (isAllLocked || balancesAll.lockedBalance.gtn(0)) && (

160
yarn.lock
View File

@ -2948,57 +2948,57 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/api-contract@npm:^1.22.0-beta.3":
version: 1.22.0-beta.3
resolution: "@polkadot/api-contract@npm:1.22.0-beta.3"
"@polkadot/api-contract@npm:^1.22.0-beta.4":
version: 1.22.0-beta.4
resolution: "@polkadot/api-contract@npm:1.22.0-beta.4"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/api": 1.22.0-beta.3
"@polkadot/rpc-core": 1.22.0-beta.3
"@polkadot/types": 1.22.0-beta.3
"@polkadot/util": ^2.15.1
"@polkadot/api": 1.22.0-beta.4
"@polkadot/rpc-core": 1.22.0-beta.4
"@polkadot/types": 1.22.0-beta.4
"@polkadot/util": ^2.16.0-beta.0
bn.js: ^5.1.2
rxjs: ^6.5.5
checksum: 3/32675dc2a3e5d1cdd89a6acef18e6af48dd5285e25d66dce424227e081c3ed72e95b78501b56243a1544fd63b8b3e1cf465cce3e0a785825b1a251b843b59f62
checksum: 3/6be2ca65f14835b14b82a2989fc3676e8585f935680d9a8246f4364aed3bd884f8b46591796331b5df419aa95086a29b30d440fe4a87ff90d649545a3313692d
languageName: node
linkType: hard
"@polkadot/api-derive@npm:1.22.0-beta.3":
version: 1.22.0-beta.3
resolution: "@polkadot/api-derive@npm:1.22.0-beta.3"
"@polkadot/api-derive@npm:1.22.0-beta.4":
version: 1.22.0-beta.4
resolution: "@polkadot/api-derive@npm:1.22.0-beta.4"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/api": 1.22.0-beta.3
"@polkadot/rpc-core": 1.22.0-beta.3
"@polkadot/rpc-provider": 1.22.0-beta.3
"@polkadot/types": 1.22.0-beta.3
"@polkadot/util": ^2.15.1
"@polkadot/util-crypto": ^2.15.1
"@polkadot/api": 1.22.0-beta.4
"@polkadot/rpc-core": 1.22.0-beta.4
"@polkadot/rpc-provider": 1.22.0-beta.4
"@polkadot/types": 1.22.0-beta.4
"@polkadot/util": ^2.16.0-beta.0
"@polkadot/util-crypto": ^2.16.0-beta.0
bn.js: ^5.1.2
memoizee: ^0.4.14
rxjs: ^6.5.5
checksum: 3/7bcf17204c36a6cd81d5e4a74b382cab3076096a31a085b56f3f9c9c1af617bf09c3ae1c3892c3c4191f4afddfffa265e897be129ebfa40dfc090244479ec068
checksum: 3/82b70fa93679dd0ed91ac5f53c0d0e7736adbebd7b8b4332a29dc6f793d24a5f72343b56e60f8ad7c336d7c866fb9b7c8e667f644a0faaa67447a1eb8c1c8323
languageName: node
linkType: hard
"@polkadot/api@npm:^1.22.0-beta.3":
version: 1.22.0-beta.3
resolution: "@polkadot/api@npm:1.22.0-beta.3"
"@polkadot/api@npm:^1.22.0-beta.4":
version: 1.22.0-beta.4
resolution: "@polkadot/api@npm:1.22.0-beta.4"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/api-derive": 1.22.0-beta.3
"@polkadot/keyring": ^2.15.1
"@polkadot/metadata": 1.22.0-beta.3
"@polkadot/rpc-core": 1.22.0-beta.3
"@polkadot/rpc-provider": 1.22.0-beta.3
"@polkadot/types": 1.22.0-beta.3
"@polkadot/types-known": 1.22.0-beta.3
"@polkadot/util": ^2.15.1
"@polkadot/util-crypto": ^2.15.1
"@polkadot/api-derive": 1.22.0-beta.4
"@polkadot/keyring": ^2.16.0-beta.0
"@polkadot/metadata": 1.22.0-beta.4
"@polkadot/rpc-core": 1.22.0-beta.4
"@polkadot/rpc-provider": 1.22.0-beta.4
"@polkadot/types": 1.22.0-beta.4
"@polkadot/types-known": 1.22.0-beta.4
"@polkadot/util": ^2.16.0-beta.0
"@polkadot/util-crypto": ^2.16.0-beta.0
bn.js: ^5.1.2
eventemitter3: ^4.0.4
rxjs: ^6.5.5
checksum: 3/f2dc69e943a3f10e639628ac0c669c5b8802b6a74d779a6cc20020233c61698e02fb9752c2d5ab25d74b18c45600a0398a79eb376d305ed7180e9e57a2cc345b
checksum: 3/0aca619f922788e04900d3c75159fbccc8dd10abca51a47d4a4ee8a382d332091e7f9e96117a8df3823eae6e81861cae0aab44c9959691ec4b59698cef8888f5
languageName: node
linkType: hard
@ -3038,7 +3038,7 @@ __metadata:
resolution: "@polkadot/app-contracts@workspace:packages/page-contracts"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/api-contract": ^1.22.0-beta.3
"@polkadot/api-contract": ^1.22.0-beta.4
languageName: unknown
linkType: soft
@ -3364,28 +3364,28 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/extension-dapp@npm:^0.32.0-beta.0":
version: 0.32.0-beta.0
resolution: "@polkadot/extension-dapp@npm:0.32.0-beta.0"
"@polkadot/extension-dapp@npm:^0.32.0-beta.1":
version: 0.32.0-beta.1
resolution: "@polkadot/extension-dapp@npm:0.32.0-beta.1"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/extension-inject": 0.32.0-beta.0
"@polkadot/extension-inject": 0.32.0-beta.1
"@polkadot/util": ^2.15.1
"@polkadot/util-crypto": ^2.15.1
peerDependencies:
"@polkadot/api": "*"
checksum: 3/8e5539a3e94a3e2c0b171349a7315986f6f6abd4c827a65220f95c9e42c01d59439198dcfa0d4f4aced4996260e43b0965f998d9815918d933ee19eb780d5ee8
checksum: 3/666f977517099ffa3ede207f5b0fcdece00d94555afda8a3ace0d031cddf7a28ae5a7ebbe02a0a79efc87303924ac12b8b271eb90693ad1882e55b65ca0fa4c8
languageName: node
linkType: hard
"@polkadot/extension-inject@npm:0.32.0-beta.0":
version: 0.32.0-beta.0
resolution: "@polkadot/extension-inject@npm:0.32.0-beta.0"
"@polkadot/extension-inject@npm:0.32.0-beta.1":
version: 0.32.0-beta.1
resolution: "@polkadot/extension-inject@npm:0.32.0-beta.1"
dependencies:
"@babel/runtime": ^7.10.3
peerDependencies:
"@polkadot/api": "*"
checksum: 3/ffce0c2fd0029f395a633ce8a9bc4e41e13c6700954e3eb350f55afb488a5f82aecaf3052fb277dfc1a1bba734eb2ee2983c03cb484415f2219d7dfe1427f671
checksum: 3/0cab4b4957cc777616a7916f37d946b1e0de9febaf69552c61c60d3e5cea3abcf21a239642b57d0547687e37037369085b367c2656e2944013aeeb72913b087b
languageName: node
linkType: hard
@ -3400,17 +3400,17 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/metadata@npm:1.22.0-beta.3":
version: 1.22.0-beta.3
resolution: "@polkadot/metadata@npm:1.22.0-beta.3"
"@polkadot/metadata@npm:1.22.0-beta.4":
version: 1.22.0-beta.4
resolution: "@polkadot/metadata@npm:1.22.0-beta.4"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/types": 1.22.0-beta.3
"@polkadot/types-known": 1.22.0-beta.3
"@polkadot/util": ^2.15.1
"@polkadot/util-crypto": ^2.15.1
"@polkadot/types": 1.22.0-beta.4
"@polkadot/types-known": 1.22.0-beta.4
"@polkadot/util": ^2.16.0-beta.0
"@polkadot/util-crypto": ^2.16.0-beta.0
bn.js: ^5.1.2
checksum: 3/6a6e1ed23eedd75f9256025838693108e0d6a59df81c3a6d4d85f67cb354248ee6b900103210bb64cb422073208f2ba0f8791adb2ce681dcc0e05e6305f33e54
checksum: 3/dd04e60c427a491aa7c5e81924fa0eea306baead00278fa813a8a79e5b8a145260094c41622cad080b162f1caf8fa967b4463aae3e18bb91cdff57b3954b0c97
languageName: node
linkType: hard
@ -3419,8 +3419,8 @@ __metadata:
resolution: "@polkadot/react-api@workspace:packages/react-api"
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
languageName: unknown
linkType: soft
@ -3542,35 +3542,35 @@ __metadata:
languageName: unknown
linkType: soft
"@polkadot/rpc-core@npm:1.22.0-beta.3":
version: 1.22.0-beta.3
resolution: "@polkadot/rpc-core@npm:1.22.0-beta.3"
"@polkadot/rpc-core@npm:1.22.0-beta.4":
version: 1.22.0-beta.4
resolution: "@polkadot/rpc-core@npm:1.22.0-beta.4"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/metadata": 1.22.0-beta.3
"@polkadot/rpc-provider": 1.22.0-beta.3
"@polkadot/types": 1.22.0-beta.3
"@polkadot/util": ^2.15.1
"@polkadot/metadata": 1.22.0-beta.4
"@polkadot/rpc-provider": 1.22.0-beta.4
"@polkadot/types": 1.22.0-beta.4
"@polkadot/util": ^2.16.0-beta.0
memoizee: ^0.4.14
rxjs: ^6.5.5
checksum: 3/750d889e318cb61d0b197821ffdef7b4f1b104918f4b9679e30fbd2ca048c427ab4c12d1064e96c26d939fd1eee7bffdf7c1da31ad2a2dd4498bf2ca64e37deb
checksum: 3/4cec804013b1dfe8ff7870c6732da1355fab24a13599ef4215c5edfa955a05dbd74285e2c220f0283a7ce2d67131ef1a49bca1b96346c0eeabfe7a0cf4992d4e
languageName: node
linkType: hard
"@polkadot/rpc-provider@npm:1.22.0-beta.3":
version: 1.22.0-beta.3
resolution: "@polkadot/rpc-provider@npm:1.22.0-beta.3"
"@polkadot/rpc-provider@npm:1.22.0-beta.4":
version: 1.22.0-beta.4
resolution: "@polkadot/rpc-provider@npm:1.22.0-beta.4"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/metadata": 1.22.0-beta.3
"@polkadot/types": 1.22.0-beta.3
"@polkadot/util": ^2.15.1
"@polkadot/util-crypto": ^2.15.1
"@polkadot/metadata": 1.22.0-beta.4
"@polkadot/types": 1.22.0-beta.4
"@polkadot/util": ^2.16.0-beta.0
"@polkadot/util-crypto": ^2.16.0-beta.0
bn.js: ^5.1.2
eventemitter3: ^4.0.4
isomorphic-fetch: ^2.2.1
websocket: ^1.0.31
checksum: 3/f4fac03546287eafbeeb5e15eabc86236c997e82c3ae19995a0f3a9c864a2efe90df7dfe8de39a69b9bfd0681b20a7bcac456f52cef8a2ac58ac04531e68b724
checksum: 3/e3b93c2436712f40006a1da42df8d099866fb4cb470641d0fdc53b98afad441704eadd4199142a1d034b4fceb7633a98b07384c44235443576338f4d67873e35
languageName: node
linkType: hard
@ -3583,31 +3583,31 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/types-known@npm:1.22.0-beta.3":
version: 1.22.0-beta.3
resolution: "@polkadot/types-known@npm:1.22.0-beta.3"
"@polkadot/types-known@npm:1.22.0-beta.4":
version: 1.22.0-beta.4
resolution: "@polkadot/types-known@npm:1.22.0-beta.4"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/types": 1.22.0-beta.3
"@polkadot/util": ^2.15.1
"@polkadot/types": 1.22.0-beta.4
"@polkadot/util": ^2.16.0-beta.0
bn.js: ^5.1.2
checksum: 3/6b9e3054e7f491ef1f847aff31eed1abc2cd7d560d0bc45ea509c72ffad7baf9303e70e12ede25c6d3afbdd7359a809a107e57a881b04c7aaa5dfe943b4ed591
checksum: 3/e2c6dc091c946fb3402c74314d5a3d5ad64408cbe8c1b85fa0c55b53b324128adf693ae8eb8b425087df9d5b2a0229558978f1257103a3bcf9533ecba9ffd515
languageName: node
linkType: hard
"@polkadot/types@npm:^1.22.0-beta.3":
version: 1.22.0-beta.3
resolution: "@polkadot/types@npm:1.22.0-beta.3"
"@polkadot/types@npm:^1.22.0-beta.4":
version: 1.22.0-beta.4
resolution: "@polkadot/types@npm:1.22.0-beta.4"
dependencies:
"@babel/runtime": ^7.10.3
"@polkadot/metadata": 1.22.0-beta.3
"@polkadot/util": ^2.15.1
"@polkadot/util-crypto": ^2.15.1
"@polkadot/metadata": 1.22.0-beta.4
"@polkadot/util": ^2.16.0-beta.0
"@polkadot/util-crypto": ^2.16.0-beta.0
"@types/bn.js": ^4.11.6
bn.js: ^5.1.2
memoizee: ^0.4.14
rxjs: ^6.5.5
checksum: 3/78fbb7173d1808b7445af498b9ddb0d678300fa034362aa777ff1da085a5f7831a9a423f0e5151b2347fb215e04edeb09770521635e6436905070910a64b7d80
checksum: 3/0b01085d329ef98151dafcdc3d0e1ac8339b67771bc9620923bbb4650530c424c8cd552dc80952e9bef3a5e91b7a14ad9dbc72f30e6b1c9dfe5200f784cfe97d
languageName: node
linkType: hard