/
main.go
57 lines (44 loc) · 1.2 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package main
import (
"go-nft-helper/database/model"
"go-nft-helper/pkg/get_nft_owner_of"
"go-nft-helper/pkg/get_nft_token_uri"
"go-nft-helper/pkg/get_nft_total_supply"
"log"
"strconv"
"sync"
"time"
)
var wg sync.WaitGroup
func main() {
ticker := time.NewTicker(1 * time.Hour)
defer ticker.Stop()
for range ticker.C {
contracts := model.GetAllContracts()
for _, contract := range contracts {
wg.Add(1)
go getItemsOwnerOfByContract(contract)
}
wg.Wait()
}
}
func getItemsOwnerOfByContract(contract string) {
defer wg.Done()
totalSupply, err := get_nft_total_supply.GetTotalSupply(contract)
if err != nil {
log.Printf("Get NFT total supply failed, err: %v\n", err)
}
log.Printf("Contract: %s total supply: %s", contract, totalSupply)
totalAmount, _ := strconv.Atoi(totalSupply.String())
for i := 1; i <= totalAmount; i++ {
owner, err := get_nft_owner_of.GetOwnerOf(contract, i)
if err != nil {
log.Printf("Get NFT owner of failed, err: %v\n", err)
}
tokenURI, err := get_nft_token_uri.GetNftTokenUri(contract, i)
if err != nil {
log.Printf("Get NFT tokenURI failed, err: %v\n", err)
}
log.Printf("Token Id: %v owner: %s tokenURI: %s", i, owner, *tokenURI)
}
}