Society voting on defender (#2216)

* Society voting on defender

* Bump deps

* Bump API (correct types)
This commit is contained in:
Jaco Greeff 2020-01-28 23:02:29 +01:00 committed by GitHub
parent 7cd65b0298
commit 566335c2cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 318 additions and 137 deletions

View File

@ -10,10 +10,10 @@
"packages/*"
],
"resolutions": {
"@polkadot/api": "^1.0.0-beta.33",
"@polkadot/api-contract": "^1.0.0-beta.33",
"@polkadot/api": "^1.0.0-beta.35",
"@polkadot/api-contract": "^1.0.0-beta.35",
"@polkadot/keyring": "^2.0.0-beta.9",
"@polkadot/types": "^1.0.0-beta.33",
"@polkadot/types": "^1.0.0-beta.35",
"@polkadot/util": "^2.0.0-beta.9",
"@polkadot/util-crypto": "^2.0.0-beta.9",
"babel-core": "^7.0.0-bridge.0",

View File

@ -11,6 +11,6 @@
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.8.3",
"@polkadot/api-contract": "^1.0.0-beta.33"
"@polkadot/api-contract": "^1.0.0-beta.35"
}
}

View File

@ -4,15 +4,17 @@
import { DeriveSocietyCandidate } from '@polkadot/api-derive/types';
import { AccountId, SocietyVote } from '@polkadot/types/interfaces';
import { VoteType } from '../types';
import React, { useEffect, useState } from 'react';
import { AddressMini, AddressSmall } from '@polkadot/react-components';
import React from 'react';
import { AddressSmall } from '@polkadot/react-components';
import { useApi, useCall } from '@polkadot/react-hooks';
import { FormatBalance } from '@polkadot/react-query';
import { Option } from '@polkadot/types';
import { useTranslation } from '../translate';
import CandidateVoting from './CandidateVoting';
import VoteDisplay from './VoteDisplay';
interface Props {
allMembers: string[];
@ -21,18 +23,9 @@ interface Props {
value: DeriveSocietyCandidate;
}
type VoteType = [string, SocietyVote];
interface VoteSplit {
allAye: VoteType[];
allNay: VoteType[];
allSkeptic: VoteType[];
}
export default function Candidate ({ allMembers, isMember, ownMembers, value: { accountId, kind, value } }: Props): React.ReactElement<Props> {
const { t } = useTranslation();
const { api } = useApi();
const [{ allAye, allNay, allSkeptic }, setVoteSplit] = useState<VoteSplit>({ allAye: [], allNay: [], allSkeptic: [] });
const votes = useCall<VoteType[]>(api.query.society.votes.multi as any, [allMembers.map((memberId): [AccountId, string] => [accountId, memberId])] as any, {
transform: (voteOpts: Option<SocietyVote>[]): VoteType[] =>
voteOpts
@ -41,16 +34,6 @@ export default function Candidate ({ allMembers, isMember, ownMembers, value: {
.map(([accountId, voteOpt]): VoteType => [accountId, voteOpt.unwrap()])
});
useEffect((): void => {
if (votes) {
setVoteSplit({
allAye: votes.filter(([, vote]): boolean => vote.isApprove),
allNay: votes.filter(([, vote]): boolean => vote.isReject),
allSkeptic: votes.filter(([, vote]): boolean => vote.isSkeptic)
});
}
}, [votes]);
return (
<tr>
<td className='top'>
@ -66,51 +49,7 @@ export default function Candidate ({ allMembers, isMember, ownMembers, value: {
value={value}
/>
</td>
<td className='top padtop'>
{allSkeptic.length !== 0 && (
<details>
<summary>
{t('Skeptics ({{count}})', { replace: { count: allSkeptic.length } })}
</summary>
{allSkeptic.map(([who]): React.ReactNode =>
<AddressMini
key={who.toString()}
value={who}
/>
)}
</details>
)}
</td>
<td className='top padtop'>
{allAye.length !== 0 && (
<details>
<summary>
{t('Approvals ({{count}})', { replace: { count: allAye.length } })}
</summary>
{allAye.map(([who]): React.ReactNode =>
<AddressMini
key={who.toString()}
value={who}
/>
)}
</details>
)}
</td>
<td className='top padtop'>
{allNay.length !== 0 && (
<details>
<summary>
{t('Rejections ({{count}})', { replace: { count: allNay.length } })}
</summary>
{allNay.map(([who]): React.ReactNode =>
<AddressMini
key={who.toString()}
value={who}
/>
)}
</details>
)}
</td>
<VoteDisplay votes={votes} />
<td className='number together top'>
<CandidateVoting
candidateId={accountId.toString()}

View File

@ -3,24 +3,23 @@
// of the Apache-2.0 license. See the LICENSE file for details.
import { DeriveSocietyCandidate } from '@polkadot/api-derive/types';
import { OwnMembers } from '../types';
import React from 'react';
import { Table } from '@polkadot/react-components';
import { useApi, useCall } from '@polkadot/react-hooks';
import { useTranslation } from '../translate';
import useMembers from '../useMembers';
import Candidate from './Candidate';
interface Props {
interface Props extends OwnMembers {
className?: string;
}
export default function Candidates ({ className }: Props): React.ReactElement<Props> {
export default function Candidates ({ allMembers, className, isMember, ownMembers }: Props): React.ReactElement<Props> {
const { t } = useTranslation();
const { api } = useApi();
const candidates = useCall<DeriveSocietyCandidate[]>(api.derive.society.candidates, []);
const { allMembers, isMember, ownMembers } = useMembers();
return (
<div className={`overviewSection ${className}`}>

View File

@ -0,0 +1,57 @@
// Copyright 2017-2020 @polkadot/app-society authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { DeriveSociety, DeriveSocietyMember } from '@polkadot/api-derive/types';
import { SocietyVote } from '@polkadot/types/interfaces';
import { OwnMembers, VoteType } from '../types';
import React from 'react';
import { AddressSmall, Table } from '@polkadot/react-components';
import { useApi, useCall } from '@polkadot/react-hooks';
import { useTranslation } from '../translate';
import DefenderVoting from './DefenderVoting';
import VoteDisplay from './VoteDisplay';
interface Props extends OwnMembers {
className?: string;
info?: DeriveSociety;
}
export default function Defender ({ className, info, isMember, ownMembers }: Props): React.ReactElement<Props> | null {
const { t } = useTranslation();
const { api } = useApi();
const votes = useCall<VoteType[]>(api.derive.society.members, [], {
transform: (members: DeriveSocietyMember[]): VoteType[] =>
members
.filter(({ vote }): boolean => !!vote)
.map(({ accountId, vote }): VoteType => [accountId.toString(), vote as SocietyVote])
});
if (!info || !info.hasDefender || !info.defender) {
return null;
}
return (
<div className={`overviewSection ${className}`}>
<h1>{t('defender')}</h1>
<Table>
<Table.Body>
<tr>
<td className='top'>
<AddressSmall value={info.defender} />
</td>
<VoteDisplay votes={votes} />
<td className='top together number'>
<DefenderVoting
isMember={isMember}
ownMembers={ownMembers}
/>
</td>
</tr>
</Table.Body>
</Table>
</div>
);
}

View File

@ -0,0 +1,66 @@
// Copyright 2017-2020 @polkadot/app-society authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import React, { useMemo, useState } from 'react';
import { useToggle } from '@polkadot/react-hooks';
import { useTranslation } from '../translate';
import { Button, Dropdown, InputAddress, Modal, TxButton } from '@polkadot/react-components';
interface Props {
isMember: boolean;
ownMembers: string[];
}
export default function DefenderVoting ({ isMember, ownMembers }: Props): React.ReactElement<Props> {
const { t } = useTranslation();
const [isVisible, toggleVisible] = useToggle();
const [vote, setVote] = useState(true);
const [accountId, setAccountId] = useState<string | null>(null);
const voteOpts = useMemo(() => [
{ text: t('Aye, I approve'), value: true },
{ text: t('Nay, I do not approve'), value: false }
], [t]);
return (
<>
{isVisible && (
<Modal header={t('Vote for defender')}>
<Modal.Content>
<InputAddress
filter={ownMembers}
help={t('The address to vote from (must be a member)')}
label={t('vote from account')}
onChange={setAccountId}
/>
<Dropdown
help={t('Approve or reject this defneder.')}
label={t('vote for defender')}
onChange={setVote}
options={voteOpts}
value={vote}
/>
</Modal.Content>
<Modal.Actions onCancel={toggleVisible}>
<TxButton
accountId={accountId}
icon='check'
label={t('Vote')}
onStart={toggleVisible}
params={[vote]}
tx='society.defenderVote'
/>
</Modal.Actions>
</Modal>
)}
<Button
icon='check'
isDisabled={!isMember}
isPrimary
label={t('Vote')}
onClick={toggleVisible}
/>
</>
);
}

View File

@ -2,9 +2,9 @@
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { DeriveSocietyMember } from '@polkadot/api-derive/types';
import { DeriveSociety, DeriveSocietyMember } from '@polkadot/api-derive/types';
import React from 'react';
import React, { useEffect, useState } from 'react';
import { Table } from '@polkadot/react-components';
import { useApi, useCall } from '@polkadot/react-hooks';
@ -13,21 +13,29 @@ import Member from './Member';
interface Props {
className?: string;
info?: DeriveSociety;
}
export default function Members ({ className }: Props): React.ReactElement<Props> {
export default function Members ({ className, info }: Props): React.ReactElement<Props> {
const { t } = useTranslation();
const { api } = useApi();
const members = useCall<DeriveSocietyMember[]>(api.derive.society.members, []);
const [filtered, setFiltered] = useState<DeriveSocietyMember[]>([]);
useEffect((): void => {
members && setFiltered(
members.filter((member): boolean => !info || !info.hasDefender || !member.accountId.eq(info.defender))
);
}, [info, members]);
return (
<div className={`overviewSection ${className}`}>
<h1>{t('members')}</h1>
{members?.length
{filtered.length
? (
<Table>
<Table.Body>
{members.map((member): React.ReactNode => (
{filtered.map((member): React.ReactNode => (
<Member
key={member.accountId.toString()}
value={member}

View File

@ -15,6 +15,7 @@ import { useTranslation } from '../translate';
interface Props {
className?: string;
info?: DeriveSociety;
}
interface NameProps {
@ -40,10 +41,9 @@ function Name ({ label, value }: NameProps): React.ReactElement<NameProps> | nul
);
}
function Summary ({ className }: Props): React.ReactElement<Props> {
function Summary ({ className, info }: Props): React.ReactElement<Props> {
const { t } = useTranslation();
const { api } = useApi();
const info = useCall<DeriveSociety>(api.derive.society.info, []);
const members = useCall<any[]>(api.derive.society.members, []);
const bestNumber = useCall<BlockNumber>(api.derive.chain.bestNumber, []);

View File

@ -0,0 +1,79 @@
// Copyright 2017-2020 @polkadot/app-society authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { VoteSplit, VoteType } from '../types';
import React, { useEffect, useState } from 'react';
import { AddressMini } from '@polkadot/react-components';
import { useTranslation } from '../translate';
interface Props {
votes?: VoteType[];
}
export default function VoteDisplay ({ votes }: Props): React.ReactElement<Props> {
const { t } = useTranslation();
const [{ allAye, allNay, allSkeptic }, setVoteSplit] = useState<VoteSplit>({ allAye: [], allNay: [], allSkeptic: [] });
useEffect((): void => {
if (votes) {
setVoteSplit({
allAye: votes.filter(([, vote]): boolean => vote.isApprove),
allNay: votes.filter(([, vote]): boolean => vote.isReject),
allSkeptic: votes.filter(([, vote]): boolean => vote.isSkeptic)
});
}
}, [votes]);
return (
<>
<td className='top padtop'>
{allSkeptic.length !== 0 && (
<details>
<summary>
{t('Skeptics ({{count}})', { replace: { count: allSkeptic.length } })}
</summary>
{allSkeptic.map(([who]): React.ReactNode =>
<AddressMini
key={who.toString()}
value={who}
/>
)}
</details>
)}
</td>
<td className='top padtop'>
{allAye.length !== 0 && (
<details>
<summary>
{t('Approvals ({{count}})', { replace: { count: allAye.length } })}
</summary>
{allAye.map(([who]): React.ReactNode =>
<AddressMini
key={who.toString()}
value={who}
/>
)}
</details>
)}
</td>
<td className='top padtop'>
{allNay.length !== 0 && (
<details>
<summary>
{t('Rejections ({{count}})', { replace: { count: allNay.length } })}
</summary>
{allNay.map(([who]): React.ReactNode =>
<AddressMini
key={who.toString()}
value={who}
/>
)}
</details>
)}
</td>
</>
);
}

View File

@ -2,11 +2,16 @@
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { DeriveSociety } from '@polkadot/api-derive/types';
import React from 'react';
import styled from 'styled-components';
import { useApi, useCall } from '@polkadot/react-hooks';
import useMembers from '../useMembers';
import Bids from './Bids';
import Candidates from './Candidates';
import Defender from './Defender';
import Members from './Members';
import Summary from './Summary';
@ -15,11 +20,25 @@ interface Props {
}
function Overview ({ className }: Props): React.ReactElement<Props> {
const { api } = useApi();
const info = useCall<DeriveSociety>(api.derive.society.info, []);
const { allMembers, isMember, ownMembers } = useMembers();
return (
<div className={className}>
<Summary />
<Members />
<Candidates />
<Summary info={info} />
<Defender
allMembers={allMembers}
info={info}
isMember={isMember}
ownMembers={ownMembers}
/>
<Members info={info} />
<Candidates
allMembers={allMembers}
isMember={isMember}
ownMembers={ownMembers}
/>
<Bids />
</div>
);

View File

@ -0,0 +1,19 @@
// Copyright 2017-2020 @polkadot/app-society authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { SocietyVote } from '@polkadot/types/interfaces';
export interface OwnMembers {
allMembers: string[];
isMember: boolean;
ownMembers: string[];
}
export interface VoteSplit {
allAye: VoteType[];
allNay: VoteType[];
allSkeptic: VoteType[];
}
export type VoteType = [string, SocietyVote];

View File

@ -3,16 +3,11 @@
// of the Apache-2.0 license. See the LICENSE file for details.
import { DeriveSocietyMember } from '@polkadot/api-derive/types';
import { OwnMembers } from './types';
import { useEffect, useState } from 'react';
import { useAccounts, useApi, useCall } from '@polkadot/react-hooks';
interface OwnMembers {
allMembers: string[];
isMember: boolean;
ownMembers: string[];
}
export default function useMembers (): OwnMembers {
const { api } = useApi();
const { allAccounts } = useAccounts();

View File

@ -31,7 +31,7 @@
"homepage": "https://github.com/polkadot-js/ui/tree/master/packages/ui-reactive#readme",
"dependencies": {
"@babel/runtime": "^7.8.3",
"@polkadot/api": "^1.0.0-beta.33",
"@polkadot/api": "^1.0.0-beta.35",
"@polkadot/extension-dapp": "^0.21.0-beta.0",
"edgeware-node-types": "^1.1.0",
"rxjs-compat": "^6.5.3"

View File

@ -2196,35 +2196,35 @@
dependencies:
"@types/node" ">= 8"
"@polkadot/api-contract@^1.0.0-beta.33":
version "1.0.0-beta.33"
resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-1.0.0-beta.33.tgz#47d2f4a1b0bfe034fe42ad02bbb8a684b471e384"
integrity sha512-gOGoGZjTnfXVUwMWBWPLnJB/MXDMkivrtOQUQTQEfDgOXRxS7LDv7RFUBggmCHKyfYxFRI54zkI+If54rPu1+w==
"@polkadot/api-contract@^1.0.0-beta.35":
version "1.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-1.0.0-beta.35.tgz#0ae421b8cb729949da792d2f2121fc38c8222b08"
integrity sha512-ORBr8BHnPljFlQi5ltid09CLUMaVJZTOL4VD/SKYfUHeY14CjnmO83xAZJ8D2WHSC9eUG7IicWZbYi9yGTagHA==
dependencies:
"@babel/runtime" "^7.8.3"
"@polkadot/types" "^1.0.0-beta.33"
"@polkadot/types" "^1.0.0-beta.35"
"@polkadot/api-derive@^1.0.0-beta.33":
version "1.0.0-beta.33"
resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-1.0.0-beta.33.tgz#70214d26fb6abc25ab71d9ec525aeebbf9564cc5"
integrity sha512-iaD6/vH0oqe/mTzumjrh9iVBCHIAGhc6qbxHH2u1ktHx44C6rMU6acKIbeaF+1sxePDVgfUVEuNFnBjdyYYWqg==
"@polkadot/api-derive@^1.0.0-beta.35":
version "1.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-1.0.0-beta.35.tgz#6642f6e7640a16eecc7fbf6b3fd403d3a1f04b29"
integrity sha512-Z6885frRxchgfOs5MgBYRRr4ohfuuP3tY3r+sOZC3OkMB1fwlVtchsBLiY8n6qYyNnuNMRGehUsfkfQvpksh0g==
dependencies:
"@babel/runtime" "^7.8.3"
"@polkadot/api" "^1.0.0-beta.33"
"@polkadot/types" "^1.0.0-beta.33"
"@polkadot/api" "^1.0.0-beta.35"
"@polkadot/types" "^1.0.0-beta.35"
"@polkadot/api@^1.0.0-beta.33":
version "1.0.0-beta.33"
resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-1.0.0-beta.33.tgz#15986bea4881240769cecb27114cb8ffdfd51a3f"
integrity sha512-zx6XzQ/EEmY/bes23+QMvUI/vVvvqWOwWATf8dyXmiCDq6mMcifBig1frhHDAAU/2Y3ILIDWl9wlMm7pPKLVaQ==
"@polkadot/api@^1.0.0-beta.35":
version "1.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-1.0.0-beta.35.tgz#9c430991582ae0fc63125bfd11e2989f542b43ca"
integrity sha512-ZshatYg+IKtRqDf4fUEWiM0czVyg342nnXKCvxssrXkpMAXUdcjUsCaI4m3F2LrbEsZ0H8GSUh2im+OVItfEhw==
dependencies:
"@babel/runtime" "^7.8.3"
"@polkadot/api-derive" "^1.0.0-beta.33"
"@polkadot/api-derive" "^1.0.0-beta.35"
"@polkadot/keyring" "^2.0.0-beta.9"
"@polkadot/metadata" "^1.0.0-beta.33"
"@polkadot/rpc-core" "^1.0.0-beta.33"
"@polkadot/rpc-provider" "^1.0.0-beta.33"
"@polkadot/types" "^1.0.0-beta.33"
"@polkadot/metadata" "^1.0.0-beta.35"
"@polkadot/rpc-core" "^1.0.0-beta.35"
"@polkadot/rpc-provider" "^1.0.0-beta.35"
"@polkadot/types" "^1.0.0-beta.35"
"@polkadot/util-crypto" "^2.0.0-beta.9"
"@polkadot/dev-react@^0.32.17":
@ -2329,10 +2329,10 @@
dependencies:
"@babel/runtime" "^7.8.3"
"@polkadot/jsonrpc@^1.0.0-beta.33":
version "1.0.0-beta.33"
resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-1.0.0-beta.33.tgz#6d067e557442b1c7039546945ba50867ca717e00"
integrity sha512-MNsXBgWjtffrQDr05h2yQlj+yYJPq6yaO7unMjyCfqjYMVEDynn9CNJeMTPGNk+iyaqZjpMauZ57+0WOSJ5Wsw==
"@polkadot/jsonrpc@^1.0.0-beta.35":
version "1.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-1.0.0-beta.35.tgz#22684bf27c7c7f7f2d12ac9fa131bd5232b299df"
integrity sha512-A4ia6gtyMMeCD6LEATZq1bVc5oDn05YLs8APEiZfY3jA0sLeeTJXA+N+5kg15AizNu6PYWWEtJGb3mEPwkYzOA==
dependencies:
"@babel/runtime" "^7.8.3"
@ -2345,13 +2345,13 @@
"@polkadot/util" "^2.0.0-beta.9"
"@polkadot/util-crypto" "^2.0.0-beta.9"
"@polkadot/metadata@^1.0.0-beta.33":
version "1.0.0-beta.33"
resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-1.0.0-beta.33.tgz#5e6009c91d7a049548db349056a27abadc0febd6"
integrity sha512-qCwkbSSYUefxgundNi94JIxK1xV1Z/YGtSfNO8RcUGjcIFsTDOxGgEZyuNMiP0XtER372cRC0iQdsstUXq7YtQ==
"@polkadot/metadata@^1.0.0-beta.35":
version "1.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@polkadot/metadata/-/metadata-1.0.0-beta.35.tgz#601125f711c11f26292eb35b61c347e2ffbcc61c"
integrity sha512-Vzgh7tH79Ez0H9A/ZmNtCV3jspP21Eqs0F06sPXoXRU/OJer7UUuslAJ4Soyr169GgmgQ5wGg4VCBFC0yCCxEw==
dependencies:
"@babel/runtime" "^7.8.3"
"@polkadot/types" "^1.0.0-beta.33"
"@polkadot/types" "^1.0.0-beta.35"
"@polkadot/util" "^2.0.0-beta.9"
"@polkadot/util-crypto" "^2.0.0-beta.9"
@ -2379,25 +2379,25 @@
qrcode-generator "^1.4.4"
react-qr-reader "^2.2.1"
"@polkadot/rpc-core@^1.0.0-beta.33":
version "1.0.0-beta.33"
resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-1.0.0-beta.33.tgz#14f0820af070a2700c073d45dd0d03e54ea94083"
integrity sha512-Whb5kKyaUU/WhrNI15bwvqtSCbNhsoIil2rDb+7BXcmm4hLIVjbo3YxiL832WGbATmiiAoN+lR/UgTnZIXptew==
"@polkadot/rpc-core@^1.0.0-beta.35":
version "1.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-1.0.0-beta.35.tgz#dc3b1d72cd26744e435f8b674e9daae114dfa5a4"
integrity sha512-+L8Hf+Hrfr3QRrzrrUe4cnubEQ/hVL8n44yLhXG7C0NfMmHznRZ+sDcdlxCMFAEYe6nbsNRA1cBlX8Ld+6ovyg==
dependencies:
"@babel/runtime" "^7.8.3"
"@polkadot/jsonrpc" "^1.0.0-beta.33"
"@polkadot/rpc-provider" "^1.0.0-beta.33"
"@polkadot/types" "^1.0.0-beta.33"
"@polkadot/jsonrpc" "^1.0.0-beta.35"
"@polkadot/rpc-provider" "^1.0.0-beta.35"
"@polkadot/types" "^1.0.0-beta.35"
"@polkadot/util" "^2.0.0-beta.9"
rxjs "^6.5.4"
"@polkadot/rpc-provider@^1.0.0-beta.33":
version "1.0.0-beta.33"
resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-1.0.0-beta.33.tgz#efeb9f49a63460fc1b403d36fa0b542f8ebc0a35"
integrity sha512-lmhLDOCWf9emHXaKOv2b2xsRZlXQQwbVoiEGZkjsOWtRROJW541CbG3ksP9ABDMxrTlavhKH89Koq1qxmdrong==
"@polkadot/rpc-provider@^1.0.0-beta.35":
version "1.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-1.0.0-beta.35.tgz#acffaba1d3bb8fb6aa4600f146df0340dd9f0f38"
integrity sha512-QF4L4Zt7pFikXAqU9IJll1Ujq4dsjDqrkeCltuVGv6LPOzQh69n6v5Cxyp+gX8Q74C6IlCU8RLJDn/YBIAv64w==
dependencies:
"@babel/runtime" "^7.8.3"
"@polkadot/metadata" "^1.0.0-beta.33"
"@polkadot/metadata" "^1.0.0-beta.35"
"@polkadot/util" "^2.0.0-beta.9"
"@polkadot/util-crypto" "^2.0.0-beta.9"
eventemitter3 "^4.0.0"
@ -2411,13 +2411,13 @@
dependencies:
"@types/chrome" "^0.0.92"
"@polkadot/types@^1.0.0-beta.33":
version "1.0.0-beta.33"
resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-1.0.0-beta.33.tgz#85076e2c93766d6a0e595fd36039b48d7c438b00"
integrity sha512-wboy6g8uSLMgcmtihdTp4kQBIFZQbxUj/70Wph/y2STjF3IbFJC8JtEfNTNMWXKUXEerK1fN7nDnmyPkWisbUA==
"@polkadot/types@^1.0.0-beta.35":
version "1.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-1.0.0-beta.35.tgz#eb73fa11ff6c3c4ff1e59c39ce742a5e0eac1276"
integrity sha512-s4CHrjvhpaMJq0ISKjnQ1kiiRgO+/HNQtDzidIHsrQuRF44RrD3NwYSTjBqKODM+Rf1JQ7I37FQZF/IZpqCq0g==
dependencies:
"@babel/runtime" "^7.8.3"
"@polkadot/metadata" "^1.0.0-beta.33"
"@polkadot/metadata" "^1.0.0-beta.35"
"@polkadot/util" "^2.0.0-beta.9"
"@polkadot/util-crypto" "^2.0.0-beta.9"
"@types/memoizee" "^0.4.3"