Skip to content

Commit

Permalink
added rudimentary generic sbt support
Browse files Browse the repository at this point in the history
  • Loading branch information
H34D committed Mar 28, 2023
1 parent d370a86 commit 9a26b51
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 5 deletions.
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -33,7 +33,7 @@
"author": "hide-on-bush",
"dependencies": {
"@babel/preset-typescript": "^7.21.0",
"@masa-finance/masa-sdk": "^1.11.4",
"@masa-finance/masa-sdk": "^1.11.5",
"@metamask/providers": "^10.2.1",
"babel-loader": "^9.1.2",
"babel-plugin-import": "^1.13.6",
Expand Down
1 change: 1 addition & 0 deletions src/provider/modules/index.ts
Expand Up @@ -6,3 +6,4 @@ export * from './session';
export * from './soulnames';
export * from './wallet';
export * from './modal';
export * from './sbt';
1 change: 1 addition & 0 deletions src/provider/modules/sbt/index.ts
@@ -0,0 +1 @@
export * from './sbt';
70 changes: 70 additions & 0 deletions src/provider/modules/sbt/sbt.ts
@@ -0,0 +1,70 @@
import { useMemo } from 'react';
import { useQuery } from 'react-query';
import { Masa, NetworkName } from '@masa-finance/masa-sdk';
import { BigNumber } from 'ethers';

export const useSBT = ({
tokenAddress,
masa,
walletAddress,
}: {
tokenAddress: string;
masa?: Masa;
walletAddress?: string;
}): {
SBTs?: {
tokenId: BigNumber;
tokenUri: string;
}[];
status: string;
isSBTLoading: boolean;
reloadSBTs: () => void;
error: unknown;
} => {
const queryKey: (string | NetworkName | undefined)[] = useMemo(() => {
return ['sbt', tokenAddress, walletAddress, masa?.config.networkName];
}, [masa, tokenAddress, walletAddress]);

const {
data: SBTs,
status,
isLoading,
isFetching,
refetch: reloadSBTs,
error,
} = useQuery<
| {
tokenId: BigNumber;
tokenUri: string;
}[]
| undefined
>(
queryKey,
async () => {
const { list } = (await masa?.sbt.connect(tokenAddress)) || {};
return list?.(walletAddress);
},
{
enabled: !!masa,
retry: false,
onSuccess: (
sbts?: {
tokenId: BigNumber;
tokenUri: string;
}[]
) => {
if (masa?.config.verbose) {
console.info({ sbts, network: masa?.config.networkName });
}
},
}
);

return {
SBTs,
isSBTLoading: isLoading || isFetching,
reloadSBTs,
status,
error,
};
};
8 changes: 4 additions & 4 deletions yarn.lock
Expand Up @@ -2015,10 +2015,10 @@
dependencies:
ethers "~5.7.2"

"@masa-finance/masa-sdk@^1.11.4":
version "1.11.4"
resolved "https://registry.yarnpkg.com/@masa-finance/masa-sdk/-/masa-sdk-1.11.4.tgz#accac2a4ffa884953353dfa35f77322a7abfac84"
integrity sha512-XADubU18F/VB11j9NT8dHoaR0xxJlPooBQAQqK8Yac0ZuSRn/L9sOZCkK6pBZ8ObczswO4ChQ0AjXjs7v5O24Q==
"@masa-finance/masa-sdk@^1.11.5":
version "1.11.5"
resolved "https://registry.yarnpkg.com/@masa-finance/masa-sdk/-/masa-sdk-1.11.5.tgz#834eae78ef887f336db8323f0e3c5f716d23beb8"
integrity sha512-oPAPQhP/5cR1vwaF8Strrjt8fY+8SkH1xxNdqVz5Ig3BjMqefrul7DyTowvnuQiB6pC8wuXipPNuAO3WmSVOGQ==
dependencies:
"@masa-finance/masa-contracts-identity" "^1.4.1"
"@masa-finance/masa-token" "^1.0.0"
Expand Down

0 comments on commit 9a26b51

Please sign in to comment.