Society voting on defender (#2216)
* Society voting on defender * Bump deps * Bump API (correct types)
This commit is contained in:
parent
7cd65b0298
commit
566335c2cc
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()}
|
||||
|
||||
@ -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}`}>
|
||||
|
||||
57
packages/app-society/src/Overview/Defender.tsx
Normal file
57
packages/app-society/src/Overview/Defender.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
66
packages/app-society/src/Overview/DefenderVoting.tsx
Normal file
66
packages/app-society/src/Overview/DefenderVoting.tsx
Normal 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}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@ -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}
|
||||
|
||||
@ -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, []);
|
||||
|
||||
|
||||
79
packages/app-society/src/Overview/VoteDisplay.tsx
Normal file
79
packages/app-society/src/Overview/VoteDisplay.tsx
Normal 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>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@ -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>
|
||||
);
|
||||
|
||||
19
packages/app-society/src/types.ts
Normal file
19
packages/app-society/src/types.ts
Normal 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];
|
||||
@ -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();
|
||||
|
||||
@ -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"
|
||||
|
||||
92
yarn.lock
92
yarn.lock
@ -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"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user