1
- import type { TorchHolder } from "@/lib/torch"
1
+ import { resolveEnsName , type TorchHolder } from "@/lib/torch"
2
2
3
3
export async function fetchTorchHolders ( ) : Promise < TorchHolder [ ] > {
4
4
const googleApiKey = process . env . GOOGLE_API_KEY
@@ -15,7 +15,7 @@ export async function fetchTorchHolders(): Promise<TorchHolder[]> {
15
15
}
16
16
17
17
try {
18
- const url = `https://sheets.googleapis.com/v4/spreadsheets/${ sheetId } /values/Sheet1 !A:E?majorDimension=ROWS&key=${ googleApiKey } `
18
+ const url = `https://sheets.googleapis.com/v4/spreadsheets/${ sheetId } /values/Website%20Info !A:E?majorDimension=ROWS&key=${ googleApiKey } `
19
19
const response = await fetch ( url )
20
20
21
21
if ( ! response . ok ) {
@@ -34,15 +34,26 @@ export async function fetchTorchHolders(): Promise<TorchHolder[]> {
34
34
// data.values[0] is the header row
35
35
const rows = data . values . slice ( 1 ) || [ ]
36
36
37
- // Map rows to TorchHolder objects
38
- const holders : TorchHolder [ ] = rows
39
- . filter ( ( row : string [ ] ) => row [ 0 ] ) // must have address
40
- . map ( ( row : string [ ] ) => ( {
41
- address : row [ 0 ] ,
42
- name : row [ 1 ] || "" ,
43
- twitter : row [ 2 ] || "" ,
44
- role : row [ 3 ] || "" ,
45
- } ) )
37
+ // Map rows to TorchHolder objects with ENS resolution
38
+ const holders : TorchHolder [ ] = [ ]
39
+
40
+ for ( const row of rows ) {
41
+ if ( ! row [ 0 ] ) continue // must have address or ENS name
42
+
43
+ const addressOrEns = row [ 0 ] . trim ( )
44
+ const resolvedAddress = await resolveEnsName ( addressOrEns )
45
+
46
+ if ( resolvedAddress ) {
47
+ holders . push ( {
48
+ address : resolvedAddress ,
49
+ name : row [ 1 ] || "" ,
50
+ role : row [ 2 ] || "" ,
51
+ twitter : row [ 3 ] || "" ,
52
+ } )
53
+ } else {
54
+ console . warn ( `Could not resolve address or ENS name: ${ addressOrEns } ` )
55
+ }
56
+ }
46
57
47
58
return holders
48
59
} catch ( error ) {
0 commit comments