@show-karma/karma-gap-sdk 0.4.8 → 0.4.11
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/core/class/entities/ContributorProfile.d.ts +2 -0
- package/core/class/entities/Grant.d.ts +2 -7
- package/core/class/entities/GrantUpdate.d.ts +3 -5
- package/core/class/entities/GrantUpdate.js +2 -2
- package/core/class/entities/ProjectUpdate.d.ts +12 -0
- package/core/class/entities/Track.d.ts +16 -0
- package/core/class/entities/Track.js +21 -0
- package/core/class/entities/index.d.ts +1 -0
- package/core/class/entities/index.js +1 -0
- package/core/class/karma-indexer/GapIndexerClient.d.ts +24 -1
- package/core/class/karma-indexer/GapIndexerClient.js +51 -0
- package/core/class/karma-indexer/api/GapIndexerApi.d.ts +24 -1
- package/core/class/karma-indexer/api/GapIndexerApi.js +73 -1
- package/core/class/karma-indexer/api/types.d.ts +47 -6
- package/core/class/types/attestations.d.ts +2 -0
- package/core/shared/types.d.ts +6 -0
- package/core/shared/types.js +2 -0
- package/core/types.d.ts +1 -1
- package/package.json +1 -1
- package/core/abi/AlloCaller.json +0 -117
|
@@ -8,6 +8,7 @@ export interface IContributorProfile {
|
|
|
8
8
|
github?: string;
|
|
9
9
|
twitter?: string;
|
|
10
10
|
linkedin?: string;
|
|
11
|
+
farcaster?: string;
|
|
11
12
|
}
|
|
12
13
|
export declare class ContributorProfile extends Attestation<IContributorProfile> implements IContributorProfile {
|
|
13
14
|
name: string;
|
|
@@ -15,6 +16,7 @@ export declare class ContributorProfile extends Attestation<IContributorProfile>
|
|
|
15
16
|
github?: string;
|
|
16
17
|
twitter?: string;
|
|
17
18
|
linkedin?: string;
|
|
19
|
+
farcaster?: string;
|
|
18
20
|
constructor(data: AttestationArgs<IContributorProfile, GapSchema>);
|
|
19
21
|
/**
|
|
20
22
|
* Creates the payload for a multi-attestation.
|
|
@@ -4,16 +4,11 @@ import { IMilestone, Milestone } from "./Milestone";
|
|
|
4
4
|
import { GapSchema } from "../GapSchema";
|
|
5
5
|
import { Hex, MultiAttestPayload, SignerOrProvider, TNetwork } from "core/types";
|
|
6
6
|
import { Community } from "./Community";
|
|
7
|
-
import { IGrantResponse } from "../karma-indexer/api/types";
|
|
7
|
+
import { IGrantResponse, IProjectResponse, ISummaryProject } from "../karma-indexer/api/types";
|
|
8
8
|
import { GrantUpdate, IGrantUpdate } from "./GrantUpdate";
|
|
9
9
|
export interface IGrant {
|
|
10
10
|
communityUID: Hex;
|
|
11
11
|
}
|
|
12
|
-
export interface ISummaryProject {
|
|
13
|
-
title: string;
|
|
14
|
-
slug?: string;
|
|
15
|
-
uid: Hex;
|
|
16
|
-
}
|
|
17
12
|
export declare class Grant extends Attestation<IGrant> {
|
|
18
13
|
details?: GrantDetails;
|
|
19
14
|
communityUID: Hex;
|
|
@@ -24,7 +19,7 @@ export declare class Grant extends Attestation<IGrant> {
|
|
|
24
19
|
updates: GrantUpdate[];
|
|
25
20
|
members: string[];
|
|
26
21
|
completed?: GrantCompleted;
|
|
27
|
-
project?: ISummaryProject;
|
|
22
|
+
project?: IProjectResponse | ISummaryProject;
|
|
28
23
|
categories?: string[];
|
|
29
24
|
verify(signer: SignerOrProvider): Promise<void>;
|
|
30
25
|
/**
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
+
import { IGrantUpdateBase } from "core/shared/types";
|
|
2
|
+
import { Transaction } from "ethers";
|
|
1
3
|
import { SignerOrProvider, TNetwork } from "../../../core/types";
|
|
2
4
|
import { Attestation } from "../Attestation";
|
|
3
|
-
import { Transaction } from "ethers";
|
|
4
5
|
export interface _IGrantUpdate extends GrantUpdate {
|
|
5
6
|
}
|
|
6
|
-
export interface IGrantUpdate {
|
|
7
|
-
title: string;
|
|
8
|
-
text: string;
|
|
7
|
+
export interface IGrantUpdate extends IGrantUpdateBase {
|
|
9
8
|
type?: string;
|
|
10
|
-
proofOfWork?: string;
|
|
11
9
|
}
|
|
12
10
|
type IStatus = "verified";
|
|
13
11
|
export interface IGrantUpdateStatus {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GrantUpdate = exports.GrantUpdateStatus = void 0;
|
|
4
|
+
const consts_1 = require("../../../core/consts");
|
|
5
|
+
const AllGapSchemas_1 = require("../AllGapSchemas");
|
|
4
6
|
const Attestation_1 = require("../Attestation");
|
|
5
7
|
const SchemaError_1 = require("../SchemaError");
|
|
6
|
-
const AllGapSchemas_1 = require("../AllGapSchemas");
|
|
7
|
-
const consts_1 = require("../../../core/consts");
|
|
8
8
|
class GrantUpdateStatus extends Attestation_1.Attestation {
|
|
9
9
|
}
|
|
10
10
|
exports.GrantUpdateStatus = GrantUpdateStatus;
|
|
@@ -5,7 +5,19 @@ export interface _IProjectUpdate extends ProjectUpdate {
|
|
|
5
5
|
export interface IProjectUpdate {
|
|
6
6
|
title: string;
|
|
7
7
|
text: string;
|
|
8
|
+
startDate?: Date;
|
|
9
|
+
endDate?: Date;
|
|
8
10
|
type?: string;
|
|
11
|
+
grants?: string[];
|
|
12
|
+
indicators?: {
|
|
13
|
+
name: string;
|
|
14
|
+
indicatorId: string;
|
|
15
|
+
}[];
|
|
16
|
+
deliverables?: {
|
|
17
|
+
name: string;
|
|
18
|
+
proof: string;
|
|
19
|
+
description: string;
|
|
20
|
+
}[];
|
|
9
21
|
}
|
|
10
22
|
type IStatus = "verified";
|
|
11
23
|
export interface IProjectUpdateStatus {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TNetwork } from "core/types";
|
|
2
|
+
import { ITrackResponse } from "../karma-indexer/api/types";
|
|
3
|
+
export declare class Track {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
communityUID: string;
|
|
8
|
+
isArchived: boolean;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
updatedAt: Date;
|
|
11
|
+
programId?: string;
|
|
12
|
+
isActive?: boolean;
|
|
13
|
+
network: TNetwork;
|
|
14
|
+
constructor(data: any, network: TNetwork);
|
|
15
|
+
static from(data: ITrackResponse[], network: TNetwork): Track[];
|
|
16
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Track = void 0;
|
|
4
|
+
class Track {
|
|
5
|
+
constructor(data, network) {
|
|
6
|
+
this.id = data.id;
|
|
7
|
+
this.name = data.name;
|
|
8
|
+
this.description = data.description;
|
|
9
|
+
this.communityUID = data.communityUID;
|
|
10
|
+
this.isArchived = data.isArchived ?? false;
|
|
11
|
+
this.createdAt = new Date(data.createdAt);
|
|
12
|
+
this.updatedAt = new Date(data.updatedAt);
|
|
13
|
+
this.programId = data.programId;
|
|
14
|
+
this.isActive = data.isActive;
|
|
15
|
+
this.network = network;
|
|
16
|
+
}
|
|
17
|
+
static from(data, network) {
|
|
18
|
+
return data.map((item) => new Track(item, network));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.Track = Track;
|
|
@@ -2,7 +2,7 @@ import { TSchemaName, IAttestation, Hex } from "core/types";
|
|
|
2
2
|
import { Attestation } from "../Attestation";
|
|
3
3
|
import { GapSchema } from "../GapSchema";
|
|
4
4
|
import { Fetcher } from "../Fetcher";
|
|
5
|
-
import { Community, Project, Grant, Milestone, MemberOf } from "../entities";
|
|
5
|
+
import { Community, Project, Grant, Milestone, MemberOf, Track } from "../entities";
|
|
6
6
|
import { Grantee } from "../types/attestations";
|
|
7
7
|
import { ICommunityAdminsResponse } from "./api/types";
|
|
8
8
|
import { ProjectMilestone } from "../entities/ProjectMilestone";
|
|
@@ -40,4 +40,27 @@ export declare class GapIndexerClient extends Fetcher {
|
|
|
40
40
|
milestonesOf(grants: Grant[]): Promise<Milestone[]>;
|
|
41
41
|
membersOf(projects: Project[]): Promise<MemberOf[]>;
|
|
42
42
|
slugExists(slug: string): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Track related methods
|
|
45
|
+
*/
|
|
46
|
+
getTracks(communityUID: string, includeArchived?: boolean): Promise<Track[]>;
|
|
47
|
+
getTrackById(id: string): Promise<Track>;
|
|
48
|
+
createTrack(trackData: {
|
|
49
|
+
name: string;
|
|
50
|
+
description?: string;
|
|
51
|
+
communityUID: string;
|
|
52
|
+
}): Promise<Track>;
|
|
53
|
+
updateTrack(id: string, trackData: {
|
|
54
|
+
name?: string;
|
|
55
|
+
description?: string;
|
|
56
|
+
communityUID?: string;
|
|
57
|
+
}): Promise<Track>;
|
|
58
|
+
archiveTrack(id: string): Promise<Track>;
|
|
59
|
+
assignTracksToProgram(programId: string, trackIds: string[]): Promise<any[]>;
|
|
60
|
+
unassignTrackFromProgram(programId: string, trackId: string): Promise<any>;
|
|
61
|
+
getTracksForProgram(programId: string): Promise<Track[]>;
|
|
62
|
+
getTracksForProject(projectId: string, programId: string, activeOnly?: boolean): Promise<Track[]>;
|
|
63
|
+
assignTracksToProject(projectId: string, programId: string, trackIds: string[]): Promise<any[]>;
|
|
64
|
+
unassignTracksFromProject(projectId: string, programId: string, trackIds: string[]): Promise<any[]>;
|
|
65
|
+
getProjectsByTrack(communityId: string, programId: string, trackId?: string): Promise<any[]>;
|
|
43
66
|
}
|
|
@@ -152,5 +152,56 @@ class GapIndexerClient extends Fetcher_1.Fetcher {
|
|
|
152
152
|
async slugExists(slug) {
|
|
153
153
|
return await this.apiClient.slugExists(slug);
|
|
154
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Track related methods
|
|
157
|
+
*/
|
|
158
|
+
async getTracks(communityUID, includeArchived = false) {
|
|
159
|
+
const { data } = await this.apiClient.getTracks(communityUID, includeArchived);
|
|
160
|
+
return entities_1.Track.from(data, this.gap.network);
|
|
161
|
+
}
|
|
162
|
+
async getTrackById(id) {
|
|
163
|
+
const { data } = await this.apiClient.getTrackById(id);
|
|
164
|
+
return entities_1.Track.from([data], this.gap.network)[0];
|
|
165
|
+
}
|
|
166
|
+
async createTrack(trackData) {
|
|
167
|
+
const { data } = await this.apiClient.createTrack(trackData);
|
|
168
|
+
return entities_1.Track.from([data], this.gap.network)[0];
|
|
169
|
+
}
|
|
170
|
+
async updateTrack(id, trackData) {
|
|
171
|
+
const { data } = await this.apiClient.updateTrack(id, trackData);
|
|
172
|
+
return entities_1.Track.from([data], this.gap.network)[0];
|
|
173
|
+
}
|
|
174
|
+
async archiveTrack(id) {
|
|
175
|
+
const { data } = await this.apiClient.archiveTrack(id);
|
|
176
|
+
return entities_1.Track.from([data], this.gap.network)[0];
|
|
177
|
+
}
|
|
178
|
+
async assignTracksToProgram(programId, trackIds) {
|
|
179
|
+
const { data } = await this.apiClient.assignTracksToProgram(programId, trackIds);
|
|
180
|
+
return data;
|
|
181
|
+
}
|
|
182
|
+
async unassignTrackFromProgram(programId, trackId) {
|
|
183
|
+
const { data } = await this.apiClient.unassignTrackFromProgram(programId, trackId);
|
|
184
|
+
return data;
|
|
185
|
+
}
|
|
186
|
+
async getTracksForProgram(programId) {
|
|
187
|
+
const { data } = await this.apiClient.getTracksForProgram(programId);
|
|
188
|
+
return entities_1.Track.from(data, this.gap.network);
|
|
189
|
+
}
|
|
190
|
+
async getTracksForProject(projectId, programId, activeOnly = true) {
|
|
191
|
+
const { data } = await this.apiClient.getTracksForProject(projectId, programId, activeOnly);
|
|
192
|
+
return entities_1.Track.from(data, this.gap.network);
|
|
193
|
+
}
|
|
194
|
+
async assignTracksToProject(projectId, programId, trackIds) {
|
|
195
|
+
const { data } = await this.apiClient.assignTracksToProject(projectId, programId, trackIds);
|
|
196
|
+
return data;
|
|
197
|
+
}
|
|
198
|
+
async unassignTracksFromProject(projectId, programId, trackIds) {
|
|
199
|
+
const { data } = await this.apiClient.unassignTracksFromProject(projectId, programId, trackIds);
|
|
200
|
+
return data;
|
|
201
|
+
}
|
|
202
|
+
async getProjectsByTrack(communityId, programId, trackId) {
|
|
203
|
+
const { data } = await this.apiClient.getProjectsByTrack(communityId, programId, trackId);
|
|
204
|
+
return data;
|
|
205
|
+
}
|
|
155
206
|
}
|
|
156
207
|
exports.GapIndexerClient = GapIndexerClient;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AxiosGQL } from "../../GraphQL/AxiosGQL";
|
|
2
|
-
import { Hex, IAttestationResponse, ICommunityResponse, ICommunityAdminsResponse, IGrantResponse, IProjectResponse, ISearchResponse, IProjectMilestoneResponse } from "./types";
|
|
2
|
+
import { Hex, IAttestationResponse, ICommunityResponse, ICommunityAdminsResponse, IGrantResponse, IProjectResponse, ISearchResponse, IProjectMilestoneResponse, ITrackResponse, ITrackAssignmentResponse, IProjectTrackResponse } from "./types";
|
|
3
3
|
export declare class GapIndexerApi extends AxiosGQL {
|
|
4
4
|
constructor(url: string);
|
|
5
5
|
attestation(uid: Hex): Promise<import("axios").AxiosResponse<IAttestationResponse, any>>;
|
|
@@ -47,4 +47,27 @@ export declare class GapIndexerApi extends AxiosGQL {
|
|
|
47
47
|
*/
|
|
48
48
|
milestonesOf(uid: Hex): Promise<import("axios").AxiosResponse<any, any>>;
|
|
49
49
|
slugExists(slug: string): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Tracks
|
|
52
|
+
*/
|
|
53
|
+
getTracks(communityUID: string, includeArchived?: boolean): Promise<import("axios").AxiosResponse<ITrackResponse[], any>>;
|
|
54
|
+
getTrackById(id: string): Promise<import("axios").AxiosResponse<ITrackResponse, any>>;
|
|
55
|
+
createTrack(data: {
|
|
56
|
+
name: string;
|
|
57
|
+
description?: string;
|
|
58
|
+
communityUID: string;
|
|
59
|
+
}): Promise<import("axios").AxiosResponse<ITrackResponse, any>>;
|
|
60
|
+
updateTrack(id: string, data: {
|
|
61
|
+
name?: string;
|
|
62
|
+
description?: string;
|
|
63
|
+
communityUID?: string;
|
|
64
|
+
}): Promise<import("axios").AxiosResponse<ITrackResponse, any>>;
|
|
65
|
+
archiveTrack(id: string): Promise<import("axios").AxiosResponse<ITrackResponse, any>>;
|
|
66
|
+
assignTracksToProgram(programId: string, trackIds: string[]): Promise<import("axios").AxiosResponse<ITrackAssignmentResponse[], any>>;
|
|
67
|
+
unassignTrackFromProgram(programId: string, trackId: string): Promise<import("axios").AxiosResponse<ITrackAssignmentResponse, any>>;
|
|
68
|
+
getTracksForProgram(programId: string): Promise<import("axios").AxiosResponse<ITrackResponse[], any>>;
|
|
69
|
+
getTracksForProject(projectId: string, programId: string, activeOnly?: boolean): Promise<import("axios").AxiosResponse<ITrackResponse[], any>>;
|
|
70
|
+
assignTracksToProject(projectId: string, programId: string, trackIds: string[]): Promise<import("axios").AxiosResponse<any[], any>>;
|
|
71
|
+
unassignTracksFromProject(projectId: string, programId: string, trackIds: string[]): Promise<import("axios").AxiosResponse<any[], any>>;
|
|
72
|
+
getProjectsByTrack(communityId: string, programId: string, trackId?: string): Promise<import("axios").AxiosResponse<IProjectTrackResponse[], any>>;
|
|
50
73
|
}
|
|
@@ -28,6 +28,7 @@ const Endpoints = {
|
|
|
28
28
|
},
|
|
29
29
|
project: {
|
|
30
30
|
all: () => "/projects",
|
|
31
|
+
checkSlug: (slug) => `/projects/check-slug/${slug}`,
|
|
31
32
|
byUidOrSlug: (uidOrSlug) => `/projects/${uidOrSlug}`,
|
|
32
33
|
grants: (uidOrSlug) => `/projects/${uidOrSlug}/grants`,
|
|
33
34
|
milestones: (uidOrSlug) => `/projects/${uidOrSlug}/milestones`,
|
|
@@ -36,6 +37,26 @@ const Endpoints = {
|
|
|
36
37
|
search: {
|
|
37
38
|
all: () => "/search",
|
|
38
39
|
},
|
|
40
|
+
tracks: {
|
|
41
|
+
all: () => "/tracks",
|
|
42
|
+
byId: (id) => `/tracks/${id}`,
|
|
43
|
+
byCommunity: (communityUID, includeArchived = false) => `/tracks?communityUID=${communityUID}${includeArchived ? "&includeArchived=true" : ""}`,
|
|
44
|
+
},
|
|
45
|
+
programs: {
|
|
46
|
+
tracks: {
|
|
47
|
+
all: (programId) => `/programs/${programId}/tracks`,
|
|
48
|
+
assign: (programId) => `/programs/${programId}/tracks`,
|
|
49
|
+
remove: (programId, trackId) => `/programs/${programId}/tracks/${trackId}`,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
projectTracks: {
|
|
53
|
+
all: (projectId, programId, activeOnly = true) => `/programs/${programId}/projects/${projectId}/tracks${activeOnly ? "" : "?activeOnly=false"}`,
|
|
54
|
+
assign: (projectId) => `/projects/${projectId}/tracks`,
|
|
55
|
+
remove: (programId, projectId) => `/programs/${programId}/project/${projectId}/tracks`,
|
|
56
|
+
},
|
|
57
|
+
community: {
|
|
58
|
+
programProjects: (communityId, programId, trackId) => `/community/${communityId}/program/${programId}/projects${trackId ? `?trackId=${trackId}` : ""}`,
|
|
59
|
+
},
|
|
39
60
|
};
|
|
40
61
|
class GapIndexerApi extends AxiosGQL_1.AxiosGQL {
|
|
41
62
|
constructor(url) {
|
|
@@ -173,12 +194,63 @@ class GapIndexerApi extends AxiosGQL_1.AxiosGQL {
|
|
|
173
194
|
}
|
|
174
195
|
async slugExists(slug) {
|
|
175
196
|
try {
|
|
176
|
-
await this.client.get(Endpoints.project.
|
|
197
|
+
await this.client.get(Endpoints.project.checkSlug(slug));
|
|
177
198
|
return true;
|
|
178
199
|
}
|
|
179
200
|
catch (err) {
|
|
180
201
|
return false;
|
|
181
202
|
}
|
|
182
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Tracks
|
|
206
|
+
*/
|
|
207
|
+
async getTracks(communityUID, includeArchived = false) {
|
|
208
|
+
const response = await this.client.get(Endpoints.tracks.byCommunity(communityUID, includeArchived));
|
|
209
|
+
return response;
|
|
210
|
+
}
|
|
211
|
+
async getTrackById(id) {
|
|
212
|
+
const response = await this.client.get(Endpoints.tracks.byId(id));
|
|
213
|
+
return response;
|
|
214
|
+
}
|
|
215
|
+
async createTrack(data) {
|
|
216
|
+
const response = await this.client.post(Endpoints.tracks.all(), data);
|
|
217
|
+
return response;
|
|
218
|
+
}
|
|
219
|
+
async updateTrack(id, data) {
|
|
220
|
+
const response = await this.client.put(Endpoints.tracks.byId(id), data);
|
|
221
|
+
return response;
|
|
222
|
+
}
|
|
223
|
+
async archiveTrack(id) {
|
|
224
|
+
const response = await this.client.delete(Endpoints.tracks.byId(id));
|
|
225
|
+
return response;
|
|
226
|
+
}
|
|
227
|
+
async assignTracksToProgram(programId, trackIds) {
|
|
228
|
+
const response = await this.client.post(Endpoints.programs.tracks.assign(programId), { trackIds });
|
|
229
|
+
return response;
|
|
230
|
+
}
|
|
231
|
+
async unassignTrackFromProgram(programId, trackId) {
|
|
232
|
+
const response = await this.client.delete(Endpoints.programs.tracks.remove(programId, trackId));
|
|
233
|
+
return response;
|
|
234
|
+
}
|
|
235
|
+
async getTracksForProgram(programId) {
|
|
236
|
+
const response = await this.client.get(Endpoints.programs.tracks.all(programId));
|
|
237
|
+
return response;
|
|
238
|
+
}
|
|
239
|
+
async getTracksForProject(projectId, programId, activeOnly = true) {
|
|
240
|
+
const response = await this.client.get(Endpoints.projectTracks.all(projectId, programId, activeOnly));
|
|
241
|
+
return response;
|
|
242
|
+
}
|
|
243
|
+
async assignTracksToProject(projectId, programId, trackIds) {
|
|
244
|
+
const response = await this.client.post(Endpoints.projectTracks.assign(projectId), { trackIds, programId });
|
|
245
|
+
return response;
|
|
246
|
+
}
|
|
247
|
+
async unassignTracksFromProject(projectId, programId, trackIds) {
|
|
248
|
+
const response = await this.client.delete(Endpoints.projectTracks.remove(programId, projectId), { data: { trackIds } });
|
|
249
|
+
return response;
|
|
250
|
+
}
|
|
251
|
+
async getProjectsByTrack(communityId, programId, trackId) {
|
|
252
|
+
const response = await this.client.get(Endpoints.community.programProjects(communityId, programId, trackId));
|
|
253
|
+
return response;
|
|
254
|
+
}
|
|
183
255
|
}
|
|
184
256
|
exports.GapIndexerApi = GapIndexerApi;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IGrantUpdateBase } from "core/shared/types";
|
|
1
2
|
export type Hex = `0x${string}`;
|
|
2
3
|
export type JSONStr = string;
|
|
3
4
|
export type ExternalLink = {
|
|
@@ -63,11 +64,8 @@ export interface IGrantUpdateStatus extends IAttestationResponse {
|
|
|
63
64
|
};
|
|
64
65
|
}
|
|
65
66
|
export interface IGrantUpdate extends IAttestationResponse {
|
|
66
|
-
data: {
|
|
67
|
-
text: string;
|
|
68
|
-
title: string;
|
|
67
|
+
data: IGrantUpdateBase & {
|
|
69
68
|
type: "grant-update";
|
|
70
|
-
proofOfWork?: string;
|
|
71
69
|
};
|
|
72
70
|
verified?: IGrantUpdateStatus[];
|
|
73
71
|
}
|
|
@@ -81,8 +79,20 @@ export interface IProjectUpdateStatus extends IAttestationResponse {
|
|
|
81
79
|
}
|
|
82
80
|
export interface IProjectUpdate extends IAttestationResponse {
|
|
83
81
|
data: {
|
|
84
|
-
text: string;
|
|
85
82
|
title: string;
|
|
83
|
+
text: string;
|
|
84
|
+
startDate?: Date;
|
|
85
|
+
endDate?: Date;
|
|
86
|
+
grants?: string[];
|
|
87
|
+
indicators?: {
|
|
88
|
+
name: string;
|
|
89
|
+
indicatorId: string;
|
|
90
|
+
}[];
|
|
91
|
+
deliverables?: {
|
|
92
|
+
name: string;
|
|
93
|
+
proof: string;
|
|
94
|
+
description: string;
|
|
95
|
+
}[];
|
|
86
96
|
type: "project-update";
|
|
87
97
|
};
|
|
88
98
|
verified?: IProjectUpdateStatus[];
|
|
@@ -128,6 +138,7 @@ export interface IGrantDetails extends IAttestationResponse {
|
|
|
128
138
|
programId?: string;
|
|
129
139
|
type: "grant-details";
|
|
130
140
|
fundUsage?: string;
|
|
141
|
+
selectedTrackIds?: string[];
|
|
131
142
|
};
|
|
132
143
|
}
|
|
133
144
|
export interface IGrantResponse extends IAttestationResponse {
|
|
@@ -138,7 +149,7 @@ export interface IGrantResponse extends IAttestationResponse {
|
|
|
138
149
|
details?: IGrantDetails;
|
|
139
150
|
milestones: IMilestoneResponse[];
|
|
140
151
|
completed?: IGrantUpdate;
|
|
141
|
-
project:
|
|
152
|
+
project: IProjectResponse;
|
|
142
153
|
updates: IGrantUpdate[];
|
|
143
154
|
community: ICommunityResponse;
|
|
144
155
|
members: Hex[];
|
|
@@ -251,4 +262,34 @@ export interface ISearchResponse {
|
|
|
251
262
|
projects: IProjectResponse[];
|
|
252
263
|
communities: ICommunityResponse[];
|
|
253
264
|
}
|
|
265
|
+
export interface ITrackResponse {
|
|
266
|
+
id: string;
|
|
267
|
+
name: string;
|
|
268
|
+
description?: string;
|
|
269
|
+
communityUID: string;
|
|
270
|
+
isArchived: boolean;
|
|
271
|
+
createdAt: string;
|
|
272
|
+
updatedAt: string;
|
|
273
|
+
programId?: string;
|
|
274
|
+
isActive?: boolean;
|
|
275
|
+
chainID?: number;
|
|
276
|
+
}
|
|
277
|
+
export interface ITrackAssignmentResponse {
|
|
278
|
+
id: string;
|
|
279
|
+
programId: string;
|
|
280
|
+
chainID: number;
|
|
281
|
+
trackId: string;
|
|
282
|
+
track: ITrackResponse;
|
|
283
|
+
}
|
|
284
|
+
export interface IProjectTrackResponse {
|
|
285
|
+
projectUID: string;
|
|
286
|
+
chainID: number;
|
|
287
|
+
programId: string;
|
|
288
|
+
track: ITrackResponse;
|
|
289
|
+
project: {
|
|
290
|
+
uid: string;
|
|
291
|
+
chainID: number;
|
|
292
|
+
details: any;
|
|
293
|
+
};
|
|
294
|
+
}
|
|
254
295
|
export {};
|
|
@@ -45,6 +45,7 @@ export interface IGrantDetails {
|
|
|
45
45
|
startDate?: number;
|
|
46
46
|
programId?: string;
|
|
47
47
|
fundUsage?: string;
|
|
48
|
+
selectedTrackIds?: string[];
|
|
48
49
|
}
|
|
49
50
|
export declare class GrantDetails extends Attestation<IGrantDetails> implements IGrantDetails {
|
|
50
51
|
title: string;
|
|
@@ -60,6 +61,7 @@ export declare class GrantDetails extends Attestation<IGrantDetails> implements
|
|
|
60
61
|
type: string;
|
|
61
62
|
startDate?: number;
|
|
62
63
|
fundUsage?: string;
|
|
64
|
+
selectedTrackIds?: string[];
|
|
63
65
|
}
|
|
64
66
|
export interface IGrantRound {
|
|
65
67
|
name: string;
|
package/core/types.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface AttestArgs<T = unknown> {
|
|
|
29
29
|
}
|
|
30
30
|
export type TSchemaName = "Community" | "CommunityDetails" | "Grant" | "GrantDetails" | "GrantVerified" | "MemberOf" | "MemberDetails" | "Milestone" | "MilestoneCompleted" | "MilestoneApproved" | "Project" | "ProjectDetails" | "Details" | "ProjectImpact" | "ProjectUpdate" | "ProjectUpdateStatus" | "ProjectPointer" | "GrantUpdate" | "GrantUpdateStatus" | "ProjectEndorsement" | "ProjectMilestone" | "ProjectMilestoneStatus" | "ContributorProfile";
|
|
31
31
|
export type TResolvedSchemaNames = "Community" | "Grant" | "GrantVerified" | "MemberOf" | "MilestoneCompleted" | "MilestoneApproved" | "Project" | "Details" | "ProjectUpdateStatus" | "GrantUpdateStatus" | "ProjectUpdateStatus" | "ProjectMilestoneStatus" | "ContributorProfile";
|
|
32
|
-
export type TExternalLink = "twitter" | "github" | "website" | "linkedin" | "discord";
|
|
32
|
+
export type TExternalLink = "twitter" | "github" | "website" | "linkedin" | "discord" | "pitchDeck" | "demoVideo" | "farcaster";
|
|
33
33
|
export type TNetwork = "optimism" | "celo" | "optimism-sepolia" | "arbitrum" | "sepolia" | "sei" | "sei-testnet" | "base-sepolia";
|
|
34
34
|
/**
|
|
35
35
|
* Generic GAP Facade interface.
|
package/package.json
CHANGED
package/core/abi/AlloCaller.json
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"inputs": [
|
|
4
|
-
{
|
|
5
|
-
"internalType": "bytes32",
|
|
6
|
-
"name": "_profileId",
|
|
7
|
-
"type": "bytes32"
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
"internalType": "address",
|
|
11
|
-
"name": "_strategy",
|
|
12
|
-
"type": "address"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"internalType": "bytes",
|
|
16
|
-
"name": "_initStrategyData",
|
|
17
|
-
"type": "bytes"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"internalType": "address",
|
|
21
|
-
"name": "_token",
|
|
22
|
-
"type": "address"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"internalType": "uint256",
|
|
26
|
-
"name": "_amount",
|
|
27
|
-
"type": "uint256"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"components": [
|
|
31
|
-
{
|
|
32
|
-
"internalType": "uint256",
|
|
33
|
-
"name": "protocol",
|
|
34
|
-
"type": "uint256"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"internalType": "string",
|
|
38
|
-
"name": "pointer",
|
|
39
|
-
"type": "string"
|
|
40
|
-
}
|
|
41
|
-
],
|
|
42
|
-
"internalType": "struct IAllo.Metadata",
|
|
43
|
-
"name": "_metadata",
|
|
44
|
-
"type": "tuple"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"internalType": "address[]",
|
|
48
|
-
"name": "_managers",
|
|
49
|
-
"type": "address[]"
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
"name": "createPool",
|
|
53
|
-
"outputs": [
|
|
54
|
-
{
|
|
55
|
-
"internalType": "uint256",
|
|
56
|
-
"name": "poolId",
|
|
57
|
-
"type": "uint256"
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
"stateMutability": "payable",
|
|
61
|
-
"type": "function"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"inputs": [
|
|
65
|
-
{
|
|
66
|
-
"internalType": "uint256",
|
|
67
|
-
"name": "_poolId",
|
|
68
|
-
"type": "uint256"
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
"components": [
|
|
72
|
-
{
|
|
73
|
-
"internalType": "uint256",
|
|
74
|
-
"name": "protocol",
|
|
75
|
-
"type": "uint256"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"internalType": "string",
|
|
79
|
-
"name": "pointer",
|
|
80
|
-
"type": "string"
|
|
81
|
-
}
|
|
82
|
-
],
|
|
83
|
-
"internalType": "struct IAllo.Metadata",
|
|
84
|
-
"name": "_metadata",
|
|
85
|
-
"type": "tuple"
|
|
86
|
-
}
|
|
87
|
-
],
|
|
88
|
-
"name": "updatePoolMetadata",
|
|
89
|
-
"outputs": [],
|
|
90
|
-
"stateMutability": "nonpayable",
|
|
91
|
-
"type": "function"
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"inputs": [
|
|
95
|
-
{
|
|
96
|
-
"internalType": "address",
|
|
97
|
-
"name": "_alloAddress",
|
|
98
|
-
"type": "address"
|
|
99
|
-
}
|
|
100
|
-
],
|
|
101
|
-
"stateMutability": "nonpayable",
|
|
102
|
-
"type": "constructor"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"inputs": [],
|
|
106
|
-
"name": "allo",
|
|
107
|
-
"outputs": [
|
|
108
|
-
{
|
|
109
|
-
"internalType": "contract IAllo",
|
|
110
|
-
"name": "",
|
|
111
|
-
"type": "address"
|
|
112
|
-
}
|
|
113
|
-
],
|
|
114
|
-
"stateMutability": "view",
|
|
115
|
-
"type": "function"
|
|
116
|
-
}
|
|
117
|
-
]
|