From 92866ab8e1852df3bbf21fcea264c97a6a340b39 Mon Sep 17 00:00:00 2001 From: Antoine Estienne Date: Wed, 16 Jun 2021 17:54:40 +0200 Subject: [PATCH] Fix author mapping call (#5617) * fix author mapping call * add deprecation comment --- packages/react-query/src/BlockAuthors.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/react-query/src/BlockAuthors.tsx b/packages/react-query/src/BlockAuthors.tsx index c05581d84f..f4619e8779 100644 --- a/packages/react-query/src/BlockAuthors.tsx +++ b/packages/react-query/src/BlockAuthors.tsx @@ -46,7 +46,8 @@ function BlockAuthorsBase ({ children }: Props): React.ReactElement { let lastHeaders: HeaderExtendedWithMapping[] = []; let lastBlockAuthors: string[] = []; let lastBlockNumber = ''; - const isAuthorMapping = isFunction(api.query.authorMapping?.mapping); + const isAuthorIds = isFunction(api.query.authorMapping?.authorIds); // TODO-MOONBEAM reevaluate in a month: 07/16/21 + const isAuthorMappingWithDeposit = isFunction(api.query.authorMapping?.mappingWithDeposit); // subscribe to all validators api.query.session && api.query.session.validators((validatorIds): void => { @@ -61,9 +62,17 @@ function BlockAuthorsBase ({ children }: Props): React.ReactElement { if (lastHeader.author) { thisBlockAuthor = lastHeader.author.toString(); - } else if (isAuthorMapping && lastHeader.digest.logs && lastHeader.digest.logs[0] && lastHeader.digest.logs[0].isConsensus && lastHeader.digest.logs[0].asConsensus[1]) { + } else if (isAuthorMappingWithDeposit && lastHeader.digest.logs && lastHeader.digest.logs[0] && lastHeader.digest.logs[0].isConsensus && lastHeader.digest.logs[0].asConsensus[1]) { // Some blockchains such as Moonbeam need to fetch the author accountId from a mapping - thisBlockAuthor = (await api.query.authorMapping.mapping(lastHeader.digest.logs[0].asConsensus[1])).toString(); + thisBlockAuthor = ((await api.query.authorMapping.mappingWithDeposit(lastHeader.digest.logs[0].asConsensus[1])).toHuman() as { + account: string; + deposit: string; + }).account; + lastHeader.authorFromMapping = thisBlockAuthor; + } else if (isAuthorIds && lastHeader.digest.logs && lastHeader.digest.logs[0] && lastHeader.digest.logs[0].isConsensus && lastHeader.digest.logs[0].asConsensus[1]) { + // TODO-MOONBEAM reevaluate in a month: 07/16/21 + // Some blockchains such as Moonbeam need to fetch the author accountId from a mapping (function call may differ according to pallet version) + thisBlockAuthor = (await api.query.authorMapping.authorIds(lastHeader.digest.logs[0].asConsensus[1])).toString(); lastHeader.authorFromMapping = thisBlockAuthor; }