Skip to content

Commit

Permalink
feat: add extrinsic index in approve status
Browse files Browse the repository at this point in the history
  • Loading branch information
vzxh committed Apr 7, 2022
1 parent c5b599d commit ee4ca40
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 24 deletions.
38 changes: 28 additions & 10 deletions src/components/Entries.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { AddressPair, Entry, TxActionType, Network } from '../model';
import { toShortString } from '../utils';
import { ArgObj, Args } from './Args';
import { genExpandIcon } from './expandIcon';
import { ApproveRecord } from './ExtrinsicRecords';
import { MemberList } from './Members';
import { SubscanLink } from './SubscanLink';
import { TxApprove } from './TxApprove';
Expand All @@ -36,23 +37,35 @@ const renderMethod = (data: any | undefined | null) => {
}
};

const renderMemberStatus = (entry: Entry, pair: KeyringJson, _network: Network) => {
const renderMemberStatus = (entry: Entry, pair: KeyringJson, _network: Network, isInProgress: boolean) => {
const { address } = pair;
const { approvals, when } = entry;
const approved = approvals.includes(address);

if (!isInProgress && entry.approveRecords) {
const approveRecords = entry.approveRecords as ApproveRecord[];
const matchedApproveRecord = approveRecords.find((record) => record.account === address);
if (!matchedApproveRecord) {
return <div>-</div>;
}
const approveTimepoint = {
height: matchedApproveRecord.approveTimepoint.split('-')[0],
index: matchedApproveRecord.approveTimepoint.split('-')[1],
};
return (
<div className="flex items-center">
<Trans>status.approved</Trans> (
<SubscanLink extrinsic={approveTimepoint}>{matchedApproveRecord.approveTimepoint}</SubscanLink>)
</div>
);
}

return approved ? (
<SubscanLink extrinsic={when}>
<Trans>status.approved</Trans>
</SubscanLink>
) : (
// <CheckCircleFilled
// style={{
// fontSize: '20px',
// color: getMainColor(network),
// }}
// />
<Trans>status.pending</Trans>
<div>-</div>
);
};

Expand All @@ -61,6 +74,7 @@ export function Entries({ source, isConfirmed, isCancelled, account, loading }:
const { t } = useTranslation();
const isInjected = useIsInjected();
const { network } = useApi();

const renderAction = useCallback(
// eslint-disable-next-line complexity
(row: Entry) => {
Expand Down Expand Up @@ -167,6 +181,7 @@ export function Entries({ source, isConfirmed, isCancelled, account, loading }:
render: (_, row) => renderAction(row),
},
];

const expandedRowRender = (entry: Entry) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const progressColumnsNested: ColumnsType<any> = [
Expand All @@ -182,7 +197,7 @@ export function Entries({ source, isConfirmed, isCancelled, account, loading }:
},
{
key: 'status',
render: (_, pair) => renderMemberStatus(entry, pair, network),
render: (_, pair) => renderMemberStatus(entry, pair, network, !isCancelled && !isConfirmed),
},
];
// const callDataJson = entry.callData?.toJSON() ?? {};
Expand Down Expand Up @@ -263,7 +278,10 @@ export function Entries({ source, isConfirmed, isCancelled, account, loading }:
extra={renderAction(data)}
className="overflow-hidden mb-4"
>
<MemberList data={account} statusRender={(pair) => renderMemberStatus(data, pair, network)} />
<MemberList
data={account}
statusRender={(pair) => renderMemberStatus(data, pair, network, !isCancelled && !isConfirmed)}
/>
</Panel>
</Collapse>
);
Expand Down
16 changes: 13 additions & 3 deletions src/components/ExtrinsicRecords.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ interface MultisigRecord {
createExtrinsicIdx: string;
confirmExtrinsicIdx: string;
cancelExtrinsicIdx: string;
approvals: string[];
approveRecords: {
nodes: ApproveRecord[];
};
block: {
id: string;
extrinsics: {
Expand All @@ -37,6 +39,11 @@ interface MultisigRecord {
};
}

export interface ApproveRecord {
account: string;
approveTimepoint: string;
}

const { TabPane } = Tabs;

/* -----------------------------------Confirmed extrinsic------------------------------------ */
Expand Down Expand Up @@ -65,7 +72,7 @@ function ConfirmedOrCancelled({ nodes, account, loading, isConfirmed }: Confirme
createExtrinsicIdx,
confirmExtrinsicIdx,
cancelExtrinsicIdx,
approvals,
approveRecords,
block: {
id: createBlockHash,
extrinsics: { nodes: createExNodes },
Expand Down Expand Up @@ -104,6 +111,8 @@ function ConfirmedOrCancelled({ nodes, account, loading, isConfirmed }: Confirme
// const { height, index } = maybeTimepointArg || {};
const [height, index] = createExtrinsicIdx.split('-');

const approvalAccounts = approveRecords.nodes.map((record) => record.account);

return {
callDataJson,
blockHash: createBlockHash,
Expand All @@ -112,7 +121,7 @@ function ConfirmedOrCancelled({ nodes, account, loading, isConfirmed }: Confirme
callHash: null,
address: multisigAccountId,
extrinsicIdx: isConfirmed ? confirmExtrinsicIdx : cancelExtrinsicIdx,
approvals,
approvals: approvalAccounts,
// approvals: [
// ...multisigArgs
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
Expand All @@ -123,6 +132,7 @@ function ConfirmedOrCancelled({ nodes, account, loading, isConfirmed }: Confirme
created_at: timestamp,
when: { height: isNumber(height) ? height : +height.replace(/,/g, ''), index: +index },
depositor: '',
approveRecords: approveRecords.nodes,
};
});
}, [api, nodes, isConfirmed]);
Expand Down
20 changes: 10 additions & 10 deletions src/config/network.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ export const NETWORK_CONFIG: NetworkConfig = {
// rpc: 'wss://pub.elara.patract.io/polkadot',
rpc: 'wss://rpc.polkadot.io',
api: {
subql: 'https://api.subquery.network/sq/itering/multisig_polkadot',
// subql: 'https://api.subquery.network/sq/itering/multisig_polkadot__aXRlc',
// subql: 'https://api.subquery.network/sq/itering/multisig_polkadot',
subql: 'https://api.subquery.network/sq/itering/multisig_polkadot__aXRlc',
},
donate: {
address: '14RYaXRSqb9rPqMaAVp1UZW2czQ6dMNGMbvukwfifi6m8ZgZ',
Expand All @@ -40,8 +40,8 @@ export const NETWORK_CONFIG: NetworkConfig = {
// rpc: 'wss://kusama.elara.patract.io',
// rpc: 'wss://kusama-rpc.polkadot.io',
api: {
subql: 'https://api.subquery.network/sq/itering/multisig_ksm',
// subql: 'https://api.subquery.network/sq/itering/multisig_ksm__aXRlc',
// subql: 'https://api.subquery.network/sq/itering/multisig_ksm',
subql: 'https://api.subquery.network/sq/itering/multisig_ksm__aXRlc',
},
donate: {
address: 'Fzs6WWFcAuJhxAVyZa4EN2suxggjidJjV3AzJxKbRHjh2Jc',
Expand All @@ -62,8 +62,8 @@ export const NETWORK_CONFIG: NetworkConfig = {
},
rpc: 'wss://rpc.darwinia.network',
api: {
subql: 'https://api.subquery.network/sq/itering/multisig_darwinia',
// subql: 'https://api.subquery.network/sq/itering/multisig_darwinia__aXRlc',
// subql: 'https://api.subquery.network/sq/itering/multisig_darwinia',
subql: 'https://api.subquery.network/sq/itering/multisig_darwinia__aXRlc',
},
donate: {
address: '2rbREPAhkptwCtdvU5eSGnHgFiyPcehdkXuGqFF916oYCJ7s',
Expand All @@ -84,8 +84,8 @@ export const NETWORK_CONFIG: NetworkConfig = {
},
rpc: 'wss://pangolin-rpc.darwinia.network/',
api: {
subql: 'https://api.subquery.network/sq/itering/multisig_pangolin',
// subql: 'https://api.subquery.network/sq/itering/multisig_pangolin__aXRlc',
// subql: 'https://api.subquery.network/sq/itering/multisig_pangolin',
subql: 'https://api.subquery.network/sq/itering/multisig_pangolin__aXRlc',
},
donate: {
address: '2rbREPAhkptwCtdvU5eSGnHgFiyPcehdkXuGqFF916oYCJ7s',
Expand All @@ -105,8 +105,8 @@ export const NETWORK_CONFIG: NetworkConfig = {
},
rpc: 'wss://crab-rpc.darwinia.network',
api: {
subql: 'https://api.subquery.network/sq/itering/multisig_crab',
// subql: 'https://api.subquery.network/sq/itering/multisig_crab__aXRlc',
// subql: 'https://api.subquery.network/sq/itering/multisig_crab',
subql: 'https://api.subquery.network/sq/itering/multisig_crab__aXRlc',
},
donate: {
address: '5FVFSCANyotNxJM4Crm1LQfsmNQSw3p8H7CRbegN7d5Ex91y',
Expand Down
7 changes: 6 additions & 1 deletion src/config/query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,12 @@ export const MULTISIG_RECORD_QUERY = `
createExtrinsicIdx
cancelExtrinsicIdx
confirmExtrinsicIdx
approvals
approveRecords {
nodes {
account
approveTimepoint
}
}
block {
id
Expand Down

0 comments on commit ee4ca40

Please sign in to comment.