@@ -4,25 +4,37 @@ import {
4
4
getAllPublishedContracts ,
5
5
getContractPublisher ,
6
6
} from "thirdweb/extensions/thirdweb" ;
7
- import invariant from "tiny-invariant" ;
8
7
import { fetchDeployMetadata } from "./fetchDeployMetadata" ;
9
8
9
+ // TODO: clean this up, jesus
10
10
export async function fetchPublishedContracts ( address ?: string | null ) {
11
- invariant ( address , "address is not defined" ) ;
12
- const resolvedAddress = ( await resolveEns ( address ) ) . address ;
13
- invariant ( resolvedAddress , "invalid ENS" ) ;
14
- const tempResult = (
15
- ( await getAllPublishedContracts ( {
16
- contract : getContractPublisher ( getThirdwebClient ( ) ) ,
17
- publisher : resolvedAddress ,
18
- } ) ) || [ ]
19
- )
20
- . filter ( ( c ) => c . contractId )
21
- . sort ( ( a , b ) => a . contractId . localeCompare ( b . contractId ) ) ;
22
- return await Promise . all (
23
- tempResult . map ( async ( c ) => ( {
24
- ...c ,
25
- metadata : await fetchDeployMetadata ( c . publishMetadataUri ) ,
26
- } ) ) ,
27
- ) ;
11
+ try {
12
+ if ( ! address ) {
13
+ return [ ] ;
14
+ }
15
+ const resolvedAddress = ( await resolveEns ( address ) ) . address ;
16
+
17
+ if ( ! resolvedAddress ) {
18
+ return [ ] ;
19
+ }
20
+
21
+ const tempResult = (
22
+ ( await getAllPublishedContracts ( {
23
+ contract : getContractPublisher ( getThirdwebClient ( ) ) ,
24
+ publisher : resolvedAddress ,
25
+ } ) ) || [ ]
26
+ )
27
+ . filter ( ( c ) => c . contractId )
28
+ . sort ( ( a , b ) => a . contractId . localeCompare ( b . contractId ) ) ;
29
+
30
+ return await Promise . all (
31
+ tempResult . map ( async ( c ) => ( {
32
+ ...c ,
33
+ metadata : await fetchDeployMetadata ( c . publishMetadataUri ) ,
34
+ } ) ) ,
35
+ ) ;
36
+ } catch ( e ) {
37
+ console . error ( "Error fetching published contracts" , e ) ;
38
+ return [ ] ;
39
+ }
28
40
}
0 commit comments