Merge remote-tracking branch 'origin/feature/m-jordan' into feature/m

This commit is contained in:
bartosz-lipinski 2021-04-26 22:09:52 -05:00
commit 5dfc8d6f7f
1 changed files with 23 additions and 3 deletions

View File

@ -366,7 +366,15 @@ export function MetaProvider({ children = null as any }) {
await processMetaData(accounts[i]);
}
await queryExtendedMetadata(connection, setMetadata, metadataByMint);
setMetadataByMint(latest => {
queryExtendedMetadata(
connection,
setMetadata,
setMetadataByMint,
latest,
);
return latest;
});
let subId = connection.onProgramAccountChange(
programIds().metadata,
@ -379,8 +387,15 @@ export function MetaProvider({ children = null as any }) {
pubkey,
account: info.accountInfo,
});
queryExtendedMetadata(connection, setMetadata, metadataByMint);
setMetadataByMint(latest => {
queryExtendedMetadata(
connection,
setMetadata,
setMetadataByMint,
latest,
);
return latest;
});
},
);
dispose = () => {
@ -422,6 +437,9 @@ export function MetaProvider({ children = null as any }) {
const queryExtendedMetadata = async (
connection: Connection,
setMetadata: (metadata: ParsedAccount<Metadata>[]) => void,
setMetadataByMint: (
metadata: Record<string, ParsedAccount<Metadata>>,
) => void,
mintToMeta: Record<string, ParsedAccount<Metadata>>,
) => {
const mintToMetadata = { ...mintToMeta };
@ -444,6 +462,7 @@ const queryExtendedMetadata = async (
delete mintToMetadata[key];
} else {
const metadata = mintToMetadata[key];
if (metadata && metadata.info.uri) {
extendedMetadataFetch.set(
key,
@ -478,6 +497,7 @@ const queryExtendedMetadata = async (
await Promise.all([...extendedMetadataFetch.values()]);
setMetadata([...Object.values(mintToMetadata)]);
setMetadataByMint(mintToMetadata);
};
export const useMeta = () => {