@johnqh/indexer_client 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +576 -0
- package/dist/business/index.d.ts +2 -0
- package/dist/business/index.d.ts.map +1 -0
- package/dist/business/index.js +2 -0
- package/dist/business/index.js.map +1 -0
- package/dist/business/indexer-service.d.ts +27 -0
- package/dist/business/indexer-service.d.ts.map +1 -0
- package/dist/business/indexer-service.js +74 -0
- package/dist/business/indexer-service.js.map +1 -0
- package/dist/hooks/index.d.ts +9 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +9 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/mocks.d.ts +15 -0
- package/dist/hooks/mocks.d.ts.map +1 -0
- package/dist/hooks/mocks.js +163 -0
- package/dist/hooks/mocks.js.map +1 -0
- package/dist/hooks/useIndexerMail.d.ts +20 -0
- package/dist/hooks/useIndexerMail.d.ts.map +1 -0
- package/dist/hooks/useIndexerMail.js +160 -0
- package/dist/hooks/useIndexerMail.js.map +1 -0
- package/dist/hooks/useIndexerNameService.d.ts +5 -0
- package/dist/hooks/useIndexerNameService.d.ts.map +1 -0
- package/dist/hooks/useIndexerNameService.js +30 -0
- package/dist/hooks/useIndexerNameService.js.map +1 -0
- package/dist/hooks/useIndexerPoints.d.ts +10 -0
- package/dist/hooks/useIndexerPoints.d.ts.map +1 -0
- package/dist/hooks/useIndexerPoints.js +100 -0
- package/dist/hooks/useIndexerPoints.js.map +1 -0
- package/dist/hooks/useReferralCode.d.ts +11 -0
- package/dist/hooks/useReferralCode.d.ts.map +1 -0
- package/dist/hooks/useReferralCode.js +42 -0
- package/dist/hooks/useReferralCode.js.map +1 -0
- package/dist/hooks/useReferralConsumption.d.ts +9 -0
- package/dist/hooks/useReferralConsumption.d.ts.map +1 -0
- package/dist/hooks/useReferralConsumption.js +49 -0
- package/dist/hooks/useReferralConsumption.js.map +1 -0
- package/dist/hooks/useReferralShare.d.ts +7 -0
- package/dist/hooks/useReferralShare.d.ts.map +1 -0
- package/dist/hooks/useReferralShare.js +18 -0
- package/dist/hooks/useReferralShare.js.map +1 -0
- package/dist/hooks/useReferralStats.d.ts +11 -0
- package/dist/hooks/useReferralStats.d.ts.map +1 -0
- package/dist/hooks/useReferralStats.js +42 -0
- package/dist/hooks/useReferralStats.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/network/IndexerClient.d.ts +77 -0
- package/dist/network/IndexerClient.d.ts.map +1 -0
- package/dist/network/IndexerClient.js +258 -0
- package/dist/network/IndexerClient.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/indexer-admin.d.ts +106 -0
- package/dist/utils/indexer-admin.d.ts.map +1 -0
- package/dist/utils/indexer-admin.js +112 -0
- package/dist/utils/indexer-admin.js.map +1 -0
- package/dist/utils/indexer-factory.d.ts +13 -0
- package/dist/utils/indexer-factory.d.ts.map +1 -0
- package/dist/utils/indexer-factory.js +24 -0
- package/dist/utils/indexer-factory.js.map +1 -0
- package/dist/utils/indexer-graphql.d.ts +152 -0
- package/dist/utils/indexer-graphql.d.ts.map +1 -0
- package/dist/utils/indexer-graphql.js +210 -0
- package/dist/utils/indexer-graphql.js.map +1 -0
- package/dist/utils/indexer-webhooks.d.ts +60 -0
- package/dist/utils/indexer-webhooks.d.ts.map +1 -0
- package/dist/utils/indexer-webhooks.js +68 -0
- package/dist/utils/indexer-webhooks.js.map +1 -0
- package/package.json +72 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
export * from './useIndexerPoints';
|
2
|
+
export * from './useIndexerMail';
|
3
|
+
export { useWalletNames, useResolveNameToAddress, } from './useIndexerNameService';
|
4
|
+
export * from './useReferralCode';
|
5
|
+
export * from './useReferralShare';
|
6
|
+
export * from './useReferralConsumption';
|
7
|
+
export * from './useReferralStats';
|
8
|
+
export { IndexerMockData } from './mocks';
|
9
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type { AddressValidationResponse, DelegatedFromResponse, DelegatedToResponse, EmailAccountsResponse, EntitlementResponse, LeaderboardResponse, NonceResponse, PointsResponse, SignInMessageResponse, SiteStatsResponse } from '@johnqh/types';
|
2
|
+
export declare class IndexerMockData {
|
3
|
+
static getLeaderboard(count?: number): LeaderboardResponse;
|
4
|
+
static getSiteStats(): SiteStatsResponse;
|
5
|
+
static getValidation(username: string): AddressValidationResponse;
|
6
|
+
static getSigningMessage(walletAddress: string, chainId: number, domain: string): SignInMessageResponse;
|
7
|
+
static getWalletAccounts(walletAddress: string): EmailAccountsResponse;
|
8
|
+
static getDelegatedTo(walletAddress: string): DelegatedToResponse;
|
9
|
+
static getDelegatedFrom(_walletAddress: string): DelegatedFromResponse;
|
10
|
+
static createNonce(_username: string): NonceResponse;
|
11
|
+
static getNonce(_username: string): NonceResponse;
|
12
|
+
static getEntitlement(walletAddress: string): EntitlementResponse;
|
13
|
+
static getPointsBalance(walletAddress: string): PointsResponse;
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=mocks.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/hooks/mocks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,yBAAyB,EAEzB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB,qBAAa,eAAe;IAC1B,MAAM,CAAC,cAAc,CAAC,KAAK,GAAE,MAAW,GAAG,mBAAmB;IA8B9D,MAAM,CAAC,YAAY,IAAI,iBAAiB;IAaxC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,yBAAyB;IAajE,MAAM,CAAC,iBAAiB,CACtB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,qBAAqB;IAcxB,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,qBAAqB;IAiBtE,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB;IAcjE,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,qBAAqB;IAWtE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAWpD,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAWjD,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB;IAqBjE,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;CAe/D"}
|
@@ -0,0 +1,163 @@
|
|
1
|
+
export class IndexerMockData {
|
2
|
+
static getLeaderboard(count = 10) {
|
3
|
+
return {
|
4
|
+
success: true,
|
5
|
+
data: {
|
6
|
+
leaderboard: [
|
7
|
+
{
|
8
|
+
walletAddress: '0x1234...5678',
|
9
|
+
chainType: 'ethereum',
|
10
|
+
pointsEarned: '5000',
|
11
|
+
lastActivityDate: new Date().toISOString(),
|
12
|
+
},
|
13
|
+
{
|
14
|
+
walletAddress: '0x2345...6789',
|
15
|
+
chainType: 'ethereum',
|
16
|
+
pointsEarned: '4500',
|
17
|
+
lastActivityDate: new Date().toISOString(),
|
18
|
+
},
|
19
|
+
{
|
20
|
+
walletAddress: '0x3456...7890',
|
21
|
+
chainType: 'ethereum',
|
22
|
+
pointsEarned: '4000',
|
23
|
+
lastActivityDate: new Date().toISOString(),
|
24
|
+
},
|
25
|
+
].slice(0, count),
|
26
|
+
},
|
27
|
+
error: null,
|
28
|
+
timestamp: new Date().toISOString(),
|
29
|
+
};
|
30
|
+
}
|
31
|
+
static getSiteStats() {
|
32
|
+
return {
|
33
|
+
success: true,
|
34
|
+
data: {
|
35
|
+
totalUsers: 150,
|
36
|
+
totalPoints: '250000',
|
37
|
+
lastUpdated: new Date().toISOString(),
|
38
|
+
},
|
39
|
+
error: null,
|
40
|
+
timestamp: new Date().toISOString(),
|
41
|
+
};
|
42
|
+
}
|
43
|
+
static getValidation(username) {
|
44
|
+
return {
|
45
|
+
success: true,
|
46
|
+
data: {
|
47
|
+
walletAddress: username.toLowerCase(),
|
48
|
+
chainType: 'ethereum',
|
49
|
+
name: null,
|
50
|
+
},
|
51
|
+
error: null,
|
52
|
+
timestamp: new Date().toISOString(),
|
53
|
+
};
|
54
|
+
}
|
55
|
+
static getSigningMessage(walletAddress, chainId, domain) {
|
56
|
+
return {
|
57
|
+
success: true,
|
58
|
+
data: {
|
59
|
+
walletAddress,
|
60
|
+
chainType: 'ethereum',
|
61
|
+
message: `Sign this message to authenticate with ${domain}`,
|
62
|
+
chainId: chainId || undefined,
|
63
|
+
},
|
64
|
+
error: null,
|
65
|
+
timestamp: new Date().toISOString(),
|
66
|
+
};
|
67
|
+
}
|
68
|
+
static getWalletAccounts(walletAddress) {
|
69
|
+
return {
|
70
|
+
success: true,
|
71
|
+
data: {
|
72
|
+
accounts: [
|
73
|
+
{
|
74
|
+
walletAddress,
|
75
|
+
chainType: 'ethereum',
|
76
|
+
names: [{ name: 'user@0xmail.box', entitled: true }],
|
77
|
+
},
|
78
|
+
],
|
79
|
+
},
|
80
|
+
error: null,
|
81
|
+
timestamp: new Date().toISOString(),
|
82
|
+
};
|
83
|
+
}
|
84
|
+
static getDelegatedTo(walletAddress) {
|
85
|
+
return {
|
86
|
+
success: true,
|
87
|
+
data: {
|
88
|
+
walletAddress,
|
89
|
+
chainType: 'ethereum',
|
90
|
+
chainId: null,
|
91
|
+
txHash: null,
|
92
|
+
},
|
93
|
+
error: null,
|
94
|
+
timestamp: new Date().toISOString(),
|
95
|
+
};
|
96
|
+
}
|
97
|
+
static getDelegatedFrom(_walletAddress) {
|
98
|
+
return {
|
99
|
+
success: true,
|
100
|
+
data: {
|
101
|
+
from: [],
|
102
|
+
},
|
103
|
+
error: null,
|
104
|
+
timestamp: new Date().toISOString(),
|
105
|
+
};
|
106
|
+
}
|
107
|
+
static createNonce(_username) {
|
108
|
+
return {
|
109
|
+
success: true,
|
110
|
+
data: {
|
111
|
+
nonce: Math.random().toString(36).substring(2, 15),
|
112
|
+
},
|
113
|
+
error: null,
|
114
|
+
timestamp: new Date().toISOString(),
|
115
|
+
};
|
116
|
+
}
|
117
|
+
static getNonce(_username) {
|
118
|
+
return {
|
119
|
+
success: true,
|
120
|
+
data: {
|
121
|
+
nonce: 'mock-nonce-12345',
|
122
|
+
},
|
123
|
+
error: null,
|
124
|
+
timestamp: new Date().toISOString(),
|
125
|
+
};
|
126
|
+
}
|
127
|
+
static getEntitlement(walletAddress) {
|
128
|
+
return {
|
129
|
+
success: true,
|
130
|
+
data: {
|
131
|
+
walletAddress,
|
132
|
+
chainType: 'ethereum',
|
133
|
+
entitlement: {
|
134
|
+
type: 'nameservice',
|
135
|
+
hasEntitlement: true,
|
136
|
+
isActive: true,
|
137
|
+
productIdentifier: null,
|
138
|
+
store: null,
|
139
|
+
},
|
140
|
+
message: 'User has premium entitlement',
|
141
|
+
verified: true,
|
142
|
+
},
|
143
|
+
error: null,
|
144
|
+
timestamp: new Date().toISOString(),
|
145
|
+
};
|
146
|
+
}
|
147
|
+
static getPointsBalance(walletAddress) {
|
148
|
+
return {
|
149
|
+
success: true,
|
150
|
+
data: {
|
151
|
+
walletAddress,
|
152
|
+
chainType: 'ethereum',
|
153
|
+
pointsEarned: '1000',
|
154
|
+
lastActivityDate: new Date().toISOString(),
|
155
|
+
createdAt: null,
|
156
|
+
updatedAt: null,
|
157
|
+
},
|
158
|
+
error: null,
|
159
|
+
timestamp: new Date().toISOString(),
|
160
|
+
};
|
161
|
+
}
|
162
|
+
}
|
163
|
+
//# sourceMappingURL=mocks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../src/hooks/mocks.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { type AddressValidationResponse, type DelegatedFromResponse, type DelegatedToResponse, type EmailAccountsResponse, type EntitlementResponse, type LeaderboardResponse, type NonceResponse, type Optional, type PointsResponse, type SignInMessageResponse, type SiteStatsResponse } from '@johnqh/types';
|
2
|
+
interface UseIndexerMailReturn {
|
3
|
+
isLoading: boolean;
|
4
|
+
error: Optional<string>;
|
5
|
+
validateUsername: (username: string) => Promise<Optional<AddressValidationResponse>>;
|
6
|
+
getSigningMessage: (walletAddress: string, chainId: number, domain: string, url: string) => Promise<Optional<SignInMessageResponse>>;
|
7
|
+
getPointsLeaderboard: (count?: number) => Promise<Optional<LeaderboardResponse>>;
|
8
|
+
getPointsSiteStats: () => Promise<Optional<SiteStatsResponse>>;
|
9
|
+
getWalletAccounts: (walletAddress: string, signature: string, message: string, referralCode?: string) => Promise<Optional<EmailAccountsResponse>>;
|
10
|
+
getDelegatedTo: (walletAddress: string, signature: string, message: string) => Promise<Optional<DelegatedToResponse>>;
|
11
|
+
getDelegatedFrom: (walletAddress: string, signature: string, message: string) => Promise<Optional<DelegatedFromResponse>>;
|
12
|
+
createNonce: (username: string, signature: string, message: string) => Promise<Optional<NonceResponse>>;
|
13
|
+
getNonce: (username: string, signature: string, message: string) => Promise<Optional<NonceResponse>>;
|
14
|
+
getEntitlement: (walletAddress: string, signature: string, message: string) => Promise<Optional<EntitlementResponse>>;
|
15
|
+
getPointsBalance: (walletAddress: string, signature: string, message: string) => Promise<Optional<PointsResponse>>;
|
16
|
+
clearError: () => void;
|
17
|
+
}
|
18
|
+
declare const useIndexerMail: (endpointUrl: string, dev?: boolean, devMode?: boolean) => UseIndexerMailReturn;
|
19
|
+
export { useIndexerMail, type UseIndexerMailReturn };
|
20
|
+
//# sourceMappingURL=useIndexerMail.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useIndexerMail.d.ts","sourceRoot":"","sources":["../../src/hooks/useIndexerMail.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AAGvB,UAAU,oBAAoB;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAExB,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAClD,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,oBAAoB,EAAE,CACpB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,kBAAkB,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE/D,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,CACX,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtC,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtC,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5C,gBAAgB,EAAE,CAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAOD,QAAA,MAAM,cAAc,GAClB,aAAa,MAAM,EACnB,MAAK,OAAe,EACpB,UAAS,OAAe,KACvB,oBAgRF,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
|
@@ -0,0 +1,160 @@
|
|
1
|
+
import { useCallback } from 'react';
|
2
|
+
import { IndexerClient } from '../network/IndexerClient';
|
3
|
+
import { useApiCall, } from '@johnqh/types';
|
4
|
+
import { IndexerMockData } from './mocks';
|
5
|
+
const useIndexerMail = (endpointUrl, dev = false, devMode = false) => {
|
6
|
+
const indexerClient = new IndexerClient(endpointUrl, dev);
|
7
|
+
const { isLoading, error, clearError, execute } = useApiCall({
|
8
|
+
context: 'IndexerMail',
|
9
|
+
});
|
10
|
+
const validateUsername = useCallback(execute(async (username) => {
|
11
|
+
try {
|
12
|
+
return await indexerClient.validateUsername(username);
|
13
|
+
}
|
14
|
+
catch (err) {
|
15
|
+
if (devMode) {
|
16
|
+
console.warn('[DevMode] validateUsername failed, returning mock data:', err);
|
17
|
+
return IndexerMockData.getValidation(username);
|
18
|
+
}
|
19
|
+
throw err;
|
20
|
+
}
|
21
|
+
}), [execute, indexerClient, devMode]);
|
22
|
+
const getSigningMessage = useCallback(execute(async (walletAddress, chainId, domain, url) => {
|
23
|
+
try {
|
24
|
+
return await indexerClient.getMessage(chainId, walletAddress, domain, url);
|
25
|
+
}
|
26
|
+
catch (err) {
|
27
|
+
if (devMode) {
|
28
|
+
console.warn('[DevMode] getSigningMessage failed, returning mock data:', err);
|
29
|
+
return IndexerMockData.getSigningMessage(walletAddress, chainId, domain);
|
30
|
+
}
|
31
|
+
throw err;
|
32
|
+
}
|
33
|
+
}), [execute, indexerClient, devMode]);
|
34
|
+
const getPointsLeaderboard = useCallback(execute(async (count = 10) => {
|
35
|
+
try {
|
36
|
+
return await indexerClient.getPointsLeaderboard(count);
|
37
|
+
}
|
38
|
+
catch (err) {
|
39
|
+
if (devMode) {
|
40
|
+
console.warn('[DevMode] getPointsLeaderboard failed, returning mock data:', err);
|
41
|
+
return IndexerMockData.getLeaderboard();
|
42
|
+
}
|
43
|
+
throw err;
|
44
|
+
}
|
45
|
+
}), [execute, indexerClient, devMode]);
|
46
|
+
const getPointsSiteStats = useCallback(execute(async () => {
|
47
|
+
try {
|
48
|
+
return await indexerClient.getPointsSiteStats();
|
49
|
+
}
|
50
|
+
catch (err) {
|
51
|
+
if (devMode) {
|
52
|
+
console.warn('[DevMode] getPointsSiteStats failed, returning mock data:', err);
|
53
|
+
return IndexerMockData.getSiteStats();
|
54
|
+
}
|
55
|
+
throw err;
|
56
|
+
}
|
57
|
+
}), [execute, indexerClient, devMode]);
|
58
|
+
const getWalletAccounts = useCallback(execute(async (walletAddress, signature, message, referralCode) => {
|
59
|
+
try {
|
60
|
+
return await indexerClient.getWalletAccounts(walletAddress, signature, message, referralCode);
|
61
|
+
}
|
62
|
+
catch (err) {
|
63
|
+
if (devMode) {
|
64
|
+
console.warn('[DevMode] getWalletAccounts failed, returning mock data:', err);
|
65
|
+
return IndexerMockData.getWalletAccounts(walletAddress);
|
66
|
+
}
|
67
|
+
throw err;
|
68
|
+
}
|
69
|
+
}), [execute, indexerClient, devMode]);
|
70
|
+
const getDelegatedTo = useCallback(execute(async (walletAddress, signature, message) => {
|
71
|
+
try {
|
72
|
+
return await indexerClient.getDelegatedTo(walletAddress, signature, message);
|
73
|
+
}
|
74
|
+
catch (err) {
|
75
|
+
if (devMode) {
|
76
|
+
console.warn('[DevMode] getDelegatedTo failed, returning mock data:', err);
|
77
|
+
return IndexerMockData.getDelegatedTo(walletAddress);
|
78
|
+
}
|
79
|
+
throw err;
|
80
|
+
}
|
81
|
+
}), [execute, indexerClient, devMode]);
|
82
|
+
const getDelegatedFrom = useCallback(execute(async (walletAddress, signature, message) => {
|
83
|
+
try {
|
84
|
+
return await indexerClient.getDelegatedFrom(walletAddress, signature, message);
|
85
|
+
}
|
86
|
+
catch (err) {
|
87
|
+
if (devMode) {
|
88
|
+
console.warn('[DevMode] getDelegatedFrom failed, returning mock data:', err);
|
89
|
+
return IndexerMockData.getDelegatedFrom(walletAddress);
|
90
|
+
}
|
91
|
+
throw err;
|
92
|
+
}
|
93
|
+
}), [execute, indexerClient, devMode]);
|
94
|
+
const createNonce = useCallback(execute(async (username, signature, message) => {
|
95
|
+
try {
|
96
|
+
return await indexerClient.createNonce(username, signature, message);
|
97
|
+
}
|
98
|
+
catch (err) {
|
99
|
+
if (devMode) {
|
100
|
+
console.warn('[DevMode] createNonce failed, returning mock data:', err);
|
101
|
+
return IndexerMockData.createNonce(username);
|
102
|
+
}
|
103
|
+
throw err;
|
104
|
+
}
|
105
|
+
}), [execute, indexerClient, devMode]);
|
106
|
+
const getNonce = useCallback(execute(async (username, signature, message) => {
|
107
|
+
try {
|
108
|
+
return await indexerClient.getNonce(username, signature, message);
|
109
|
+
}
|
110
|
+
catch (err) {
|
111
|
+
if (devMode) {
|
112
|
+
console.warn('[DevMode] getNonce failed, returning mock data:', err);
|
113
|
+
return IndexerMockData.getNonce(username);
|
114
|
+
}
|
115
|
+
throw err;
|
116
|
+
}
|
117
|
+
}), [execute, indexerClient, devMode]);
|
118
|
+
const getEntitlement = useCallback(execute(async (walletAddress, signature, message) => {
|
119
|
+
try {
|
120
|
+
return await indexerClient.getEntitlement(walletAddress, signature, message);
|
121
|
+
}
|
122
|
+
catch (err) {
|
123
|
+
if (devMode) {
|
124
|
+
console.warn('[DevMode] getEntitlement failed, returning mock data:', err);
|
125
|
+
return IndexerMockData.getEntitlement(walletAddress);
|
126
|
+
}
|
127
|
+
throw err;
|
128
|
+
}
|
129
|
+
}), [execute, indexerClient, devMode]);
|
130
|
+
const getPointsBalance = useCallback(execute(async (walletAddress, signature, message) => {
|
131
|
+
try {
|
132
|
+
return await indexerClient.getPointsBalance(walletAddress, signature, message);
|
133
|
+
}
|
134
|
+
catch (err) {
|
135
|
+
if (devMode) {
|
136
|
+
console.warn('[DevMode] getPointsBalance failed, returning mock data:', err);
|
137
|
+
return IndexerMockData.getPointsBalance(walletAddress);
|
138
|
+
}
|
139
|
+
throw err;
|
140
|
+
}
|
141
|
+
}), [execute, indexerClient, devMode]);
|
142
|
+
return {
|
143
|
+
isLoading,
|
144
|
+
error,
|
145
|
+
validateUsername,
|
146
|
+
getSigningMessage,
|
147
|
+
getPointsLeaderboard,
|
148
|
+
getPointsSiteStats,
|
149
|
+
getWalletAccounts,
|
150
|
+
getDelegatedTo,
|
151
|
+
getDelegatedFrom,
|
152
|
+
createNonce,
|
153
|
+
getNonce,
|
154
|
+
getEntitlement,
|
155
|
+
getPointsBalance,
|
156
|
+
clearError,
|
157
|
+
};
|
158
|
+
};
|
159
|
+
export { useIndexerMail };
|
160
|
+
//# sourceMappingURL=useIndexerMail.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useIndexerMail.js","sourceRoot":"","sources":["../../src/hooks/useIndexerMail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAYL,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAgE1C,MAAM,cAAc,GAAG,CACrB,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK,EACF,EAAE;IACxB,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAC3D,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,WAAW,CAClC,OAAO,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,yDAAyD,EACzD,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,EACF,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,OAAO,CACL,KAAK,EACH,aAAqB,EACrB,OAAe,EACf,MAAc,EACd,GAAW,EACX,EAAE;QACF,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,UAAU,CACnC,OAAO,EACP,aAAa,EACb,MAAM,EACN,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,0DAA0D,EAC1D,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,iBAAiB,CACtC,aAAa,EACb,OAAO,EACP,MAAM,CACP,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,EACD,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CACtC,OAAO,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,6DAA6D,EAC7D,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,cAAc,EAAE,CAAC;YAC1C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,EACF,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,kBAAkB,EAAE,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,2DAA2D,EAC3D,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,YAAY,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,EACF,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAGF,MAAM,iBAAiB,GAAG,WAAW,CACnC,OAAO,CACL,KAAK,EACH,aAAqB,EACrB,SAAiB,EACjB,OAAe,EACf,YAAqB,EACrB,EAAE;QACF,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,iBAAiB,CAC1C,aAAa,EACb,SAAS,EACT,OAAO,EACP,YAAY,CACb,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,0DAA0D,EAC1D,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,EACD,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAChC,OAAO,CACL,KAAK,EAAE,aAAqB,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,cAAc,CACvC,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,EACD,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAClC,OAAO,CACL,KAAK,EAAE,aAAqB,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,gBAAgB,CACzC,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,yDAAyD,EACzD,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,EACD,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,OAAO,CAAC,KAAK,EAAE,QAAgB,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;QACrE,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,oDAAoD,EACpD,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,EACF,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAC1B,OAAO,CAAC,KAAK,EAAE,QAAgB,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;QACrE,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;gBACrE,OAAO,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,EACF,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAChC,OAAO,CACL,KAAK,EAAE,aAAqB,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,cAAc,CACvC,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,EACD,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAClC,OAAO,CACL,KAAK,EAAE,aAAqB,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,gBAAgB,CACzC,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,yDAAyD,EACzD,GAAG,CACJ,CAAC;gBACF,OAAO,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CACF,EACD,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,OAAO;QACL,SAAS;QACT,KAAK;QAEL,gBAAgB;QAChB,iBAAiB;QACjB,oBAAoB;QACpB,kBAAkB;QAElB,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,WAAW;QACX,QAAQ;QACR,cAAc;QACd,gBAAgB;QAChB,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,cAAc,EAA6B,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
2
|
+
import type { NameResolutionResponse, NameServiceResponse } from '@johnqh/types';
|
3
|
+
export declare const useWalletNames: (endpointUrl: string, dev: boolean, walletAddress: string, signature: string, message: string, options?: UseQueryOptions<NameServiceResponse>) => UseQueryResult<NameServiceResponse>;
|
4
|
+
export declare const useResolveNameToAddress: (endpointUrl: string, dev: boolean, name: string, options?: UseQueryOptions<NameResolutionResponse>) => UseQueryResult<NameResolutionResponse>;
|
5
|
+
//# sourceMappingURL=useIndexerNameService.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useIndexerNameService.d.ts","sourceRoot":"","sources":["../../src/hooks/useIndexerNameService.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAmCvB,eAAO,MAAM,cAAc,GACzB,aAAa,MAAM,EACnB,KAAK,OAAO,EACZ,eAAe,MAAM,EACrB,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,UAAU,eAAe,CAAC,mBAAmB,CAAC,KAC7C,cAAc,CAAC,mBAAmB,CAYpC,CAAC;AA0BF,eAAO,MAAM,uBAAuB,GAClC,aAAa,MAAM,EACnB,KAAK,OAAO,EACZ,MAAM,MAAM,EACZ,UAAU,eAAe,CAAC,sBAAsB,CAAC,KAChD,cAAc,CAAC,sBAAsB,CAYvC,CAAC"}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { useQuery, } from '@tanstack/react-query';
|
2
|
+
import { IndexerClient } from '../network/IndexerClient';
|
3
|
+
const STALE_TIMES = {
|
4
|
+
NAME_SERVICE_RESOLUTION: 5 * 60 * 1000,
|
5
|
+
};
|
6
|
+
export const useWalletNames = (endpointUrl, dev, walletAddress, signature, message, options) => {
|
7
|
+
const client = new IndexerClient(endpointUrl, dev);
|
8
|
+
return useQuery({
|
9
|
+
queryKey: ['indexer', 'wallet-names', walletAddress],
|
10
|
+
queryFn: async () => {
|
11
|
+
return await client.getWalletNames(walletAddress, signature, message);
|
12
|
+
},
|
13
|
+
staleTime: STALE_TIMES.NAME_SERVICE_RESOLUTION,
|
14
|
+
enabled: !!walletAddress && !!signature && !!message,
|
15
|
+
...options,
|
16
|
+
});
|
17
|
+
};
|
18
|
+
export const useResolveNameToAddress = (endpointUrl, dev, name, options) => {
|
19
|
+
const client = new IndexerClient(endpointUrl, dev);
|
20
|
+
return useQuery({
|
21
|
+
queryKey: ['indexer', 'resolve-name', name],
|
22
|
+
queryFn: async () => {
|
23
|
+
return await client.resolveNameToAddress(name);
|
24
|
+
},
|
25
|
+
staleTime: STALE_TIMES.NAME_SERVICE_RESOLUTION,
|
26
|
+
enabled: !!name,
|
27
|
+
...options,
|
28
|
+
});
|
29
|
+
};
|
30
|
+
//# sourceMappingURL=useIndexerNameService.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useIndexerNameService.js","sourceRoot":"","sources":["../../src/hooks/useIndexerNameService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAGT,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,MAAM,WAAW,GAAG;IAClB,uBAAuB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;CACvC,CAAC;AA6BF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAAmB,EACnB,GAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,OAAe,EACf,OAA8C,EACT,EAAE;IACvC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEnD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,CAAC;QACpD,OAAO,EAAE,KAAK,IAAkC,EAAE;YAChD,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QACD,SAAS,EAAE,WAAW,CAAC,uBAAuB;QAC9C,OAAO,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO;QACpD,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC,CAAC;AA0BF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,WAAmB,EACnB,GAAY,EACZ,IAAY,EACZ,OAAiD,EACT,EAAE;IAC1C,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEnD,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC;QAC3C,OAAO,EAAE,KAAK,IAAqC,EAAE;YACnD,OAAO,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,SAAS,EAAE,WAAW,CAAC,uBAAuB;QAC9C,OAAO,EAAE,CAAC,CAAC,IAAI;QACf,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC,CAAC"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import type { LeaderboardResponse, SiteStatsResponse } from '@johnqh/types';
|
2
|
+
declare function useIndexerPoints(endpointUrl: string, dev?: boolean, devMode?: boolean): {
|
3
|
+
getPointsLeaderboard: (count?: number) => Promise<LeaderboardResponse>;
|
4
|
+
getPointsSiteStats: () => Promise<SiteStatsResponse>;
|
5
|
+
isLoading: boolean;
|
6
|
+
error: string | null;
|
7
|
+
clearError: () => void;
|
8
|
+
};
|
9
|
+
export { useIndexerPoints };
|
10
|
+
//# sourceMappingURL=useIndexerPoints.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useIndexerPoints.d.ts","sourceRoot":"","sources":["../../src/hooks/useIndexerPoints.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAe5E,iBAAS,gBAAgB,CACvB,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,OAAe,EACpB,OAAO,GAAE,OAAe;mCAeR,MAAM,KAAQ,OAAO,CAAC,mBAAmB,CAAC;8BAmDlC,OAAO,CAAC,iBAAiB,CAAC;;;;EA4DnD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
@@ -0,0 +1,100 @@
|
|
1
|
+
import { useCallback, useMemo, useState } from 'react';
|
2
|
+
import { IndexerClient } from '../network/IndexerClient';
|
3
|
+
import { IndexerMockData } from './mocks';
|
4
|
+
function useIndexerPoints(endpointUrl, dev = false, devMode = false) {
|
5
|
+
const [isLoading, setIsLoading] = useState(false);
|
6
|
+
const [error, setError] = useState(null);
|
7
|
+
const indexerClient = useMemo(() => {
|
8
|
+
return new IndexerClient(endpointUrl, dev);
|
9
|
+
}, [endpointUrl, dev]);
|
10
|
+
const clearError = useCallback(() => {
|
11
|
+
setError(null);
|
12
|
+
}, []);
|
13
|
+
const getPointsLeaderboard = useCallback(async (count = 10) => {
|
14
|
+
setIsLoading(true);
|
15
|
+
setError(null);
|
16
|
+
if (devMode) {
|
17
|
+
try {
|
18
|
+
const controller = new AbortController();
|
19
|
+
const timeoutId = setTimeout(() => controller.abort(), 2000);
|
20
|
+
const result = await Promise.race([
|
21
|
+
indexerClient.getPointsLeaderboard(count),
|
22
|
+
new Promise((_, reject) => {
|
23
|
+
setTimeout(() => reject(new Error('DevMode timeout')), 2000);
|
24
|
+
}),
|
25
|
+
]);
|
26
|
+
clearTimeout(timeoutId);
|
27
|
+
return result;
|
28
|
+
}
|
29
|
+
catch (err) {
|
30
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get leaderboard';
|
31
|
+
console.warn('[DevMode] getPointsLeaderboard failed quickly, returning mock data:', errorMessage);
|
32
|
+
setError(null);
|
33
|
+
return IndexerMockData.getLeaderboard(count);
|
34
|
+
}
|
35
|
+
finally {
|
36
|
+
setIsLoading(false);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
try {
|
40
|
+
const result = await indexerClient.getPointsLeaderboard(count);
|
41
|
+
return result;
|
42
|
+
}
|
43
|
+
catch (err) {
|
44
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get leaderboard';
|
45
|
+
setError(errorMessage);
|
46
|
+
throw err;
|
47
|
+
}
|
48
|
+
finally {
|
49
|
+
setIsLoading(false);
|
50
|
+
}
|
51
|
+
}, [indexerClient, devMode]);
|
52
|
+
const getPointsSiteStats = useCallback(async () => {
|
53
|
+
setIsLoading(true);
|
54
|
+
setError(null);
|
55
|
+
if (devMode) {
|
56
|
+
try {
|
57
|
+
const controller = new AbortController();
|
58
|
+
const timeoutId = setTimeout(() => controller.abort(), 2000);
|
59
|
+
const result = await Promise.race([
|
60
|
+
indexerClient.getPointsSiteStats(),
|
61
|
+
new Promise((_, reject) => {
|
62
|
+
setTimeout(() => reject(new Error('DevMode timeout')), 2000);
|
63
|
+
}),
|
64
|
+
]);
|
65
|
+
clearTimeout(timeoutId);
|
66
|
+
return result;
|
67
|
+
}
|
68
|
+
catch (err) {
|
69
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get site stats';
|
70
|
+
console.warn('[DevMode] getPointsSiteStats failed quickly, returning mock data:', errorMessage);
|
71
|
+
setError(null);
|
72
|
+
return IndexerMockData.getSiteStats();
|
73
|
+
}
|
74
|
+
finally {
|
75
|
+
setIsLoading(false);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
try {
|
79
|
+
const result = await indexerClient.getPointsSiteStats();
|
80
|
+
return result;
|
81
|
+
}
|
82
|
+
catch (err) {
|
83
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get site stats';
|
84
|
+
setError(errorMessage);
|
85
|
+
throw err;
|
86
|
+
}
|
87
|
+
finally {
|
88
|
+
setIsLoading(false);
|
89
|
+
}
|
90
|
+
}, [indexerClient, devMode]);
|
91
|
+
return {
|
92
|
+
getPointsLeaderboard,
|
93
|
+
getPointsSiteStats,
|
94
|
+
isLoading,
|
95
|
+
error,
|
96
|
+
clearError,
|
97
|
+
};
|
98
|
+
}
|
99
|
+
export { useIndexerPoints };
|
100
|
+
//# sourceMappingURL=useIndexerPoints.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useIndexerPoints.js","sourceRoot":"","sources":["../../src/hooks/useIndexerPoints.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import type { Optional } from '@johnqh/types';
|
2
|
+
import { type ReferralCodeResponse } from '../network/IndexerClient';
|
3
|
+
export declare const useReferralCode: (endpointUrl: string, dev: boolean) => {
|
4
|
+
referralCode: Optional<ReferralCodeResponse>;
|
5
|
+
isLoading: boolean;
|
6
|
+
error: Optional<string>;
|
7
|
+
fetchReferralCode: (walletAddress: string, signature: string, message: string) => Promise<ReferralCodeResponse>;
|
8
|
+
clearError: () => void;
|
9
|
+
reset: () => void;
|
10
|
+
};
|
11
|
+
//# sourceMappingURL=useReferralCode.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useReferralCode.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferralCode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAsBlC,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,EAAE,KAAK,OAAO;;;;uCASvC,MAAM,aAAa,MAAM,WAAW,MAAM;;;CA0CnE,CAAC"}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { useCallback, useState } from 'react';
|
2
|
+
import { IndexerClient, } from '../network/IndexerClient';
|
3
|
+
export const useReferralCode = (endpointUrl, dev) => {
|
4
|
+
const [referralCode, setReferralCode] = useState(null);
|
5
|
+
const [isLoading, setIsLoading] = useState(false);
|
6
|
+
const [error, setError] = useState(null);
|
7
|
+
const client = new IndexerClient(endpointUrl, dev);
|
8
|
+
const fetchReferralCode = useCallback(async (walletAddress, signature, message) => {
|
9
|
+
setIsLoading(true);
|
10
|
+
setError(null);
|
11
|
+
try {
|
12
|
+
const response = await client.getReferralCode(walletAddress, signature, message);
|
13
|
+
setReferralCode(response);
|
14
|
+
return response;
|
15
|
+
}
|
16
|
+
catch (err) {
|
17
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get referral code';
|
18
|
+
setError(errorMessage);
|
19
|
+
throw err;
|
20
|
+
}
|
21
|
+
finally {
|
22
|
+
setIsLoading(false);
|
23
|
+
}
|
24
|
+
}, [client]);
|
25
|
+
const clearError = useCallback(() => {
|
26
|
+
setError(null);
|
27
|
+
}, []);
|
28
|
+
const reset = useCallback(() => {
|
29
|
+
setReferralCode(null);
|
30
|
+
setError(null);
|
31
|
+
setIsLoading(false);
|
32
|
+
}, []);
|
33
|
+
return {
|
34
|
+
referralCode,
|
35
|
+
isLoading,
|
36
|
+
error,
|
37
|
+
fetchReferralCode,
|
38
|
+
clearError,
|
39
|
+
reset,
|
40
|
+
};
|
41
|
+
};
|
42
|
+
//# sourceMappingURL=useReferralCode.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useReferralCode.js","sourceRoot":"","sources":["../../src/hooks/useReferralCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EACL,aAAa,GAEd,MAAM,0BAA0B,CAAC;AAsBlC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,GAAY,EAAE,EAAE;IACnE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GACnC,QAAQ,CAAiC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEnD,MAAM,iBAAiB,GAAG,WAAW,CACnC,KAAK,EAAE,aAAqB,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;QAClE,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAC3C,aAAa,EACb,SAAS,EACT,OAAO,CACR,CAAC;YACF,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;YACrE,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,YAAY;QACZ,SAAS;QACT,KAAK;QACL,iBAAiB;QACjB,UAAU;QACV,KAAK;KACN,CAAC;AACJ,CAAC,CAAC"}
|