@show-karma/karma-gap-sdk 0.3.20 → 0.3.22
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Attestation } from '../Attestation';
|
|
2
|
-
import { Grantee, MemberDetails, ProjectDetails, ProjectImpact } from '../types/attestations';
|
|
2
|
+
import { Grantee, MemberDetails, ProjectDetails, ProjectEndorsement, ProjectImpact } from '../types/attestations';
|
|
3
3
|
import { Hex, MultiAttestPayload, SignerOrProvider, TNetwork } from 'core/types';
|
|
4
4
|
import { Grant } from './Grant';
|
|
5
5
|
import { MemberOf } from './MemberOf';
|
|
@@ -14,6 +14,7 @@ export declare class Project extends Attestation<IProject> {
|
|
|
14
14
|
grants: Grant[];
|
|
15
15
|
grantee: Grantee;
|
|
16
16
|
impacts: ProjectImpact[];
|
|
17
|
+
endorsements: ProjectEndorsement[];
|
|
17
18
|
/**
|
|
18
19
|
* Creates the payload for a multi-attestation.
|
|
19
20
|
*
|
|
@@ -73,5 +74,6 @@ export declare class Project extends Attestation<IProject> {
|
|
|
73
74
|
removeAllMembers(signer: SignerOrProvider): Promise<void>;
|
|
74
75
|
static from(attestations: _Project[], network: TNetwork): Project[];
|
|
75
76
|
attestImpact(signer: SignerOrProvider, data: ProjectImpact): Promise<void>;
|
|
77
|
+
attestEndorsement(signer: SignerOrProvider, data?: ProjectEndorsement): Promise<void>;
|
|
76
78
|
}
|
|
77
79
|
export {};
|
|
@@ -16,6 +16,7 @@ class Project extends Attestation_1.Attestation {
|
|
|
16
16
|
this.members = [];
|
|
17
17
|
this.grants = [];
|
|
18
18
|
this.impacts = [];
|
|
19
|
+
this.endorsements = [];
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Creates the payload for a multi-attestation.
|
|
@@ -256,6 +257,19 @@ class Project extends Attestation_1.Attestation {
|
|
|
256
257
|
return impact;
|
|
257
258
|
});
|
|
258
259
|
}
|
|
260
|
+
if (attestation.endorsements) {
|
|
261
|
+
project.endorsements = attestation.endorsements.map((pi) => {
|
|
262
|
+
const endorsement = new attestations_1.ProjectEndorsement({
|
|
263
|
+
...pi,
|
|
264
|
+
data: {
|
|
265
|
+
...pi.data,
|
|
266
|
+
},
|
|
267
|
+
schema: new AllGapSchemas_1.AllGapSchemas().findSchema('ProjectDetails', consts_1.chainIdToNetwork[attestation.chainID]),
|
|
268
|
+
chainID: attestation.chainID,
|
|
269
|
+
});
|
|
270
|
+
return endorsement;
|
|
271
|
+
});
|
|
272
|
+
}
|
|
259
273
|
return project;
|
|
260
274
|
});
|
|
261
275
|
}
|
|
@@ -272,5 +286,18 @@ class Project extends Attestation_1.Attestation {
|
|
|
272
286
|
await projectImpact.attest(signer);
|
|
273
287
|
this.impacts.push(projectImpact);
|
|
274
288
|
}
|
|
289
|
+
async attestEndorsement(signer, data) {
|
|
290
|
+
const projectEndorsement = new attestations_1.ProjectEndorsement({
|
|
291
|
+
data: {
|
|
292
|
+
...data,
|
|
293
|
+
type: 'project-endorsement',
|
|
294
|
+
},
|
|
295
|
+
recipient: this.recipient,
|
|
296
|
+
refUID: this.uid,
|
|
297
|
+
schema: this.schema.gap.findSchema('ProjectDetails'),
|
|
298
|
+
});
|
|
299
|
+
await projectEndorsement.attest(signer);
|
|
300
|
+
this.endorsements.push(projectEndorsement);
|
|
301
|
+
}
|
|
275
302
|
}
|
|
276
303
|
exports.Project = Project;
|
|
@@ -133,3 +133,12 @@ export declare class ProjectImpact extends Attestation<IProjectImpact> implement
|
|
|
133
133
|
type?: string;
|
|
134
134
|
constructor(data: AttestationArgs<IProjectImpact, GapSchema>);
|
|
135
135
|
}
|
|
136
|
+
export interface IProjectEndorsement {
|
|
137
|
+
comment?: string;
|
|
138
|
+
type?: string;
|
|
139
|
+
}
|
|
140
|
+
export declare class ProjectEndorsement extends Attestation<IProjectEndorsement> implements IProjectEndorsement {
|
|
141
|
+
comment?: string;
|
|
142
|
+
type?: string;
|
|
143
|
+
constructor(data: AttestationArgs<IProjectEndorsement, GapSchema>);
|
|
144
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProjectImpact = exports.GrantCompleted = exports.Grantee = exports.ProjectDetails = exports.Tag = exports.MilestoneCompleted = exports.MemberDetails = exports.GrantVerified = exports.GrantRound = exports.GrantDetails = exports.CommunityDetails = void 0;
|
|
3
|
+
exports.ProjectEndorsement = exports.ProjectImpact = exports.GrantCompleted = exports.Grantee = exports.ProjectDetails = exports.Tag = exports.MilestoneCompleted = exports.MemberDetails = exports.GrantVerified = exports.GrantRound = exports.GrantDetails = exports.CommunityDetails = void 0;
|
|
4
4
|
const Attestation_1 = require("../Attestation");
|
|
5
5
|
const GrantUpdate_1 = require("../entities/GrantUpdate");
|
|
6
6
|
class CommunityDetails extends Attestation_1.Attestation {
|
|
@@ -61,3 +61,10 @@ class ProjectImpact extends Attestation_1.Attestation {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
exports.ProjectImpact = ProjectImpact;
|
|
64
|
+
class ProjectEndorsement extends Attestation_1.Attestation {
|
|
65
|
+
constructor(data) {
|
|
66
|
+
data.data.type = "project-endorsement";
|
|
67
|
+
super(data);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.ProjectEndorsement = ProjectEndorsement;
|
package/core/consts.js
CHANGED
|
@@ -234,5 +234,11 @@ const MountEntities = (network) => ({
|
|
|
234
234
|
uid: network.schemas.GrantUpdateStatus,
|
|
235
235
|
references: "GrantUpdate",
|
|
236
236
|
},
|
|
237
|
+
ProjectEndorsement: {
|
|
238
|
+
name: "ProjectEndorsement",
|
|
239
|
+
schema: DetailsSchema,
|
|
240
|
+
uid: network.schemas.Details,
|
|
241
|
+
references: "Project",
|
|
242
|
+
},
|
|
237
243
|
});
|
|
238
244
|
exports.MountEntities = MountEntities;
|
package/core/types.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export interface AttestArgs<T = unknown> {
|
|
|
21
21
|
refUID?: Hex;
|
|
22
22
|
signer: SignerOrProvider;
|
|
23
23
|
}
|
|
24
|
-
export type TSchemaName = 'Community' | 'CommunityDetails' | 'Grant' | 'GrantDetails' | 'GrantVerified' | 'MemberOf' | 'MemberDetails' | 'Milestone' | 'MilestoneCompleted' | 'MilestoneApproved' | 'Project' | 'ProjectDetails' | 'Details' | 'ProjectImpact' | 'GrantUpdate' | 'GrantUpdateStatus';
|
|
24
|
+
export type TSchemaName = 'Community' | 'CommunityDetails' | 'Grant' | 'GrantDetails' | 'GrantVerified' | 'MemberOf' | 'MemberDetails' | 'Milestone' | 'MilestoneCompleted' | 'MilestoneApproved' | 'Project' | 'ProjectDetails' | 'Details' | 'ProjectImpact' | 'GrantUpdate' | 'GrantUpdateStatus' | 'ProjectEndorsement';
|
|
25
25
|
export type TResolvedSchemaNames = 'Community' | 'Grant' | 'GrantVerified' | 'MemberOf' | 'MilestoneCompleted' | 'MilestoneApproved' | 'Project' | 'Details' | 'GrantUpdateStatus';
|
|
26
26
|
export type TExternalLink = 'twitter' | 'github' | 'website' | 'linkedin' | 'discord';
|
|
27
27
|
export type TNetwork = 'optimism' | 'optimism-sepolia' | "arbitrum" | 'sepolia';
|