@show-karma/karma-gap-sdk 0.4.16 → 0.4.18

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.
Files changed (188) hide show
  1. package/core/abi/AirdropNFT.json +1 -1
  2. package/core/abi/Allo.json +860 -860
  3. package/core/abi/AlloRegistry.json +578 -578
  4. package/core/abi/CommunityResolverABI.json +506 -506
  5. package/core/abi/Donations.json +251 -251
  6. package/core/abi/EAS.json +1 -1
  7. package/core/abi/MultiAttester.json +746 -746
  8. package/core/abi/ProjectResolver.json +574 -574
  9. package/core/abi/SchemaRegistry.json +1 -1
  10. package/core/abi/index.d.ts +1114 -0
  11. package/core/abi/index.js +26 -0
  12. package/core/class/AllGapSchemas.d.ts +9 -0
  13. package/core/class/AllGapSchemas.js +19 -0
  14. package/core/class/Attestation.d.ts +173 -0
  15. package/core/class/Attestation.js +333 -0
  16. package/core/class/Fetcher.d.ts +175 -0
  17. package/core/class/Fetcher.js +13 -0
  18. package/core/class/GAP.d.ts +254 -0
  19. package/core/class/GAP.js +289 -0
  20. package/core/class/GapSchema.d.ts +34 -0
  21. package/core/class/GapSchema.js +62 -0
  22. package/core/class/Gelato/{Gelato.ts → Gelato.js} +0 -23
  23. package/core/class/GrantProgramRegistry/Allo.d.ts +17 -0
  24. package/core/class/GrantProgramRegistry/Allo.js +137 -0
  25. package/core/class/GrantProgramRegistry/AlloRegistry.d.ts +15 -0
  26. package/core/class/GrantProgramRegistry/AlloRegistry.js +70 -0
  27. package/core/class/GraphQL/AxiosGQL.d.ts +6 -0
  28. package/core/class/GraphQL/AxiosGQL.js +25 -0
  29. package/core/class/GraphQL/EASClient.d.ts +16 -0
  30. package/core/class/GraphQL/EASClient.js +26 -0
  31. package/core/class/GraphQL/GapEasClient.d.ts +71 -0
  32. package/core/class/GraphQL/GapEasClient.js +451 -0
  33. package/core/class/GraphQL/index.js +19 -0
  34. package/core/class/Schema.d.ts +233 -0
  35. package/core/class/Schema.js +490 -0
  36. package/core/class/SchemaError.d.ts +30 -0
  37. package/core/class/SchemaError.js +39 -0
  38. package/core/class/contract/GapContract.d.ts +102 -0
  39. package/core/class/contract/GapContract.js +285 -0
  40. package/core/class/entities/Community.d.ts +34 -0
  41. package/core/class/entities/Community.js +109 -0
  42. package/core/class/entities/ContributorProfile.d.ts +41 -0
  43. package/core/class/entities/ContributorProfile.js +69 -0
  44. package/core/class/entities/Grant.d.ts +54 -0
  45. package/core/class/entities/Grant.js +223 -0
  46. package/core/class/entities/GrantUpdate.d.ts +62 -0
  47. package/core/class/entities/GrantUpdate.js +114 -0
  48. package/core/class/entities/MemberOf.d.ts +11 -0
  49. package/core/class/entities/MemberOf.js +33 -0
  50. package/core/class/entities/Milestone.d.ts +168 -0
  51. package/core/class/entities/Milestone.js +657 -0
  52. package/core/class/entities/Project.d.ts +92 -0
  53. package/core/class/entities/Project.js +418 -0
  54. package/core/class/entities/ProjectImpact.d.ts +50 -0
  55. package/core/class/entities/ProjectImpact.js +112 -0
  56. package/core/class/entities/ProjectMilestone.d.ts +60 -0
  57. package/core/class/entities/ProjectMilestone.js +174 -0
  58. package/core/class/entities/ProjectPointer.d.ts +12 -0
  59. package/core/class/entities/ProjectPointer.js +22 -0
  60. package/core/class/entities/ProjectUpdate.d.ts +50 -0
  61. package/core/class/entities/ProjectUpdate.js +110 -0
  62. package/core/class/entities/Track.d.ts +16 -0
  63. package/core/class/entities/Track.js +21 -0
  64. package/core/class/entities/index.js +26 -0
  65. package/core/class/index.js +26 -0
  66. package/core/class/karma-indexer/GapIndexerClient.d.ts +66 -0
  67. package/core/class/karma-indexer/GapIndexerClient.js +207 -0
  68. package/core/class/karma-indexer/api/GapIndexerApi.d.ts +73 -0
  69. package/core/class/karma-indexer/api/GapIndexerApi.js +256 -0
  70. package/core/class/karma-indexer/api/types.d.ts +309 -0
  71. package/core/class/karma-indexer/api/types.js +2 -0
  72. package/core/class/remote-storage/IpfsStorage.d.ts +23 -0
  73. package/core/class/remote-storage/IpfsStorage.js +56 -0
  74. package/core/class/remote-storage/RemoteStorage.d.ts +41 -0
  75. package/core/class/remote-storage/RemoteStorage.js +38 -0
  76. package/core/class/types/allo.d.ts +78 -0
  77. package/core/class/types/allo.js +2 -0
  78. package/core/class/types/attestations.d.ts +173 -0
  79. package/core/class/types/attestations.js +66 -0
  80. package/core/consts.d.ts +50 -0
  81. package/core/consts.js +699 -0
  82. package/core/index.js +24 -0
  83. package/core/shared/types.d.ts +13 -0
  84. package/core/shared/types.js +2 -0
  85. package/core/types.d.ts +131 -0
  86. package/core/types.js +13 -0
  87. package/core/utils/gelato/index.js +19 -0
  88. package/core/utils/gelato/send-gelato-txn.d.ts +55 -0
  89. package/core/utils/gelato/send-gelato-txn.js +100 -0
  90. package/core/utils/gelato/sponsor-handler.d.ts +9 -0
  91. package/core/utils/gelato/sponsor-handler.js +60 -0
  92. package/core/utils/gelato/watch-gelato-txn.d.ts +7 -0
  93. package/core/utils/gelato/watch-gelato-txn.js +63 -0
  94. package/core/utils/get-date.d.ts +1 -0
  95. package/core/utils/get-date.js +7 -0
  96. package/core/utils/get-ipfs-data.d.ts +1 -0
  97. package/core/utils/get-ipfs-data.js +20 -0
  98. package/core/utils/get-web3-provider.d.ts +2 -0
  99. package/core/utils/get-web3-provider.js +18 -0
  100. package/core/utils/gql-queries.d.ts +12 -0
  101. package/core/utils/gql-queries.js +90 -0
  102. package/core/utils/index.js +23 -0
  103. package/core/utils/map-filter.d.ts +8 -0
  104. package/core/utils/map-filter.js +20 -0
  105. package/core/utils/serialize-bigint.d.ts +1 -0
  106. package/core/utils/serialize-bigint.js +8 -0
  107. package/core/utils/to-unix.d.ts +1 -0
  108. package/core/utils/to-unix.js +25 -0
  109. package/index.js +17 -0
  110. package/package.json +45 -45
  111. package/.cursorrules +0 -43
  112. package/core/abi/index.ts +0 -21
  113. package/core/class/AllGapSchemas.ts +0 -21
  114. package/core/class/Attestation.ts +0 -429
  115. package/core/class/Fetcher.ts +0 -224
  116. package/core/class/GAP.ts +0 -481
  117. package/core/class/GapSchema.ts +0 -93
  118. package/core/class/GrantProgramRegistry/Allo.ts +0 -188
  119. package/core/class/GrantProgramRegistry/AlloRegistry.ts +0 -101
  120. package/core/class/GraphQL/AxiosGQL.ts +0 -29
  121. package/core/class/GraphQL/EASClient.ts +0 -34
  122. package/core/class/GraphQL/GapEasClient.ts +0 -869
  123. package/core/class/Schema.ts +0 -659
  124. package/core/class/SchemaError.ts +0 -42
  125. package/core/class/contract/GapContract.ts +0 -457
  126. package/core/class/entities/Community.ts +0 -148
  127. package/core/class/entities/ContributorProfile.ts +0 -108
  128. package/core/class/entities/Grant.ts +0 -321
  129. package/core/class/entities/GrantUpdate.ts +0 -187
  130. package/core/class/entities/MemberOf.ts +0 -52
  131. package/core/class/entities/Milestone.ts +0 -898
  132. package/core/class/entities/Project.ts +0 -672
  133. package/core/class/entities/ProjectImpact.ts +0 -170
  134. package/core/class/entities/ProjectMilestone.ts +0 -254
  135. package/core/class/entities/ProjectPointer.ts +0 -39
  136. package/core/class/entities/ProjectUpdate.ts +0 -176
  137. package/core/class/entities/Track.ts +0 -32
  138. package/core/class/karma-indexer/GapIndexerClient.ts +0 -383
  139. package/core/class/karma-indexer/api/GapIndexerApi.ts +0 -446
  140. package/core/class/karma-indexer/api/types.ts +0 -313
  141. package/core/class/remote-storage/IpfsStorage.ts +0 -76
  142. package/core/class/remote-storage/RemoteStorage.ts +0 -65
  143. package/core/class/types/allo.ts +0 -93
  144. package/core/class/types/attestations.ts +0 -223
  145. package/core/consts.ts +0 -775
  146. package/core/scripts/create-grant.ts +0 -102
  147. package/core/scripts/create-program.ts +0 -43
  148. package/core/scripts/create-schemas.ts +0 -65
  149. package/core/scripts/deploy.ts +0 -65
  150. package/core/scripts/index.ts +0 -1
  151. package/core/scripts/milestone-multi-grants.ts +0 -125
  152. package/core/shared/types.ts +0 -13
  153. package/core/types.ts +0 -224
  154. package/core/utils/gelato/send-gelato-txn.ts +0 -114
  155. package/core/utils/gelato/sponsor-handler.ts +0 -77
  156. package/core/utils/gelato/watch-gelato-txn.ts +0 -67
  157. package/core/utils/get-date.ts +0 -3
  158. package/core/utils/get-ipfs-data.ts +0 -13
  159. package/core/utils/get-web3-provider.ts +0 -18
  160. package/core/utils/gql-queries.ts +0 -133
  161. package/core/utils/map-filter.ts +0 -21
  162. package/core/utils/serialize-bigint.ts +0 -7
  163. package/core/utils/to-unix.ts +0 -18
  164. package/create-community-example.ts +0 -119
  165. package/csv-upload/README.md +0 -74
  166. package/csv-upload/config.ts +0 -41
  167. package/csv-upload/example.csv +0 -2
  168. package/csv-upload/keys.example.json +0 -8
  169. package/csv-upload/scripts/run.ts +0 -417
  170. package/csv-upload/types.ts +0 -39
  171. package/docs/.gitkeep +0 -0
  172. package/docs/images/attestation-architecture.png +0 -0
  173. package/docs/images/dfd-get-projects.png +0 -0
  174. package/gap-schema.yaml +0 -155
  175. package/milestone-workflow-example.ts +0 -353
  176. package/readme.md +0 -872
  177. package/schemas/.gitkeep +0 -0
  178. package/schemas/GAP-schemas-1692135812877.json +0 -33
  179. package/test-file-indexer-api.ts +0 -25
  180. package/tsconfig.json +0 -26
  181. /package/{csv-upload/.gitkeep → core/class/Gelato/Gelato.d.ts} +0 -0
  182. /package/core/class/GraphQL/{index.ts → index.d.ts} +0 -0
  183. /package/core/class/entities/{index.ts → index.d.ts} +0 -0
  184. /package/core/class/{index.ts → index.d.ts} +0 -0
  185. /package/core/{index.ts → index.d.ts} +0 -0
  186. /package/core/utils/gelato/{index.ts → index.d.ts} +0 -0
  187. /package/core/utils/{index.ts → index.d.ts} +0 -0
  188. /package/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,233 @@
1
+ import { SchemaEncoder, SchemaItem, SchemaValue } from "@ethereum-attestation-service/eas-sdk";
2
+ import { AttestArgs, Hex, MultiRevokeArgs, SchemaInterface, SignerOrProvider, TNetwork } from "../types";
3
+ import { ethers } from "ethers";
4
+ import { GAP } from "./GAP";
5
+ import { Attestation } from "./Attestation";
6
+ import { AttestationWithTx } from "./types/attestations";
7
+ /**
8
+ * Represents the EAS Schema and provides methods to encode and decode the schema,
9
+ * and validate the schema references.
10
+ *
11
+ * Also provides a set of static methods to manage the schema list.
12
+ *
13
+ * @example
14
+ * ```
15
+ * // You may or not attribute a schema to a variable.
16
+ * new Schema({
17
+ * name: "Grantee",
18
+ * schema: [{ type: "bool", name: "grantee", value: true }],
19
+ * uid: "0x000000000
20
+ * });
21
+ *
22
+ * const granteeDetails = new Schema({
23
+ * name: "GranteeDetails",
24
+ * schema: [
25
+ * { type: "bool", name: "name", value: null }
26
+ * { type: "bool", name: "description", value: null }
27
+ * { type: "bool", name: "imageURL", value: null }
28
+ * ],
29
+ * uid: "0x000000000,
30
+ * references: "Grantee"
31
+ * });
32
+ *
33
+ * // Validate if references are correct and all of them exist.
34
+ * Schema.validate();
35
+ *
36
+ * // Gets the schema by name.
37
+ * const grantee = Schema.get("Grantee");
38
+ *
39
+ * // Sets a single schema value.
40
+ * grantee.setValue("grantee", true);
41
+ *
42
+ * // Sets multiple schema values.
43
+ * granteeDetails.setValues({ name: "John Doe", description: "A description", imageURL: "https://example.com/image.png" });
44
+ *
45
+ * // Gets the schema encoded data, used to create an attestation.
46
+ * const encodedGrantee = grantee.encode();
47
+ *
48
+ * // Verify if schema exists
49
+ * Schema.exists("Grantee"); // true
50
+ * Schema.exists("GranteeDetails"); // true
51
+ * Schema.exists("GranteeDetails2"); // false
52
+ *
53
+ * // Get all schemas.
54
+ * Schema.getAll(); // [grantee, granteeDetails]
55
+ *
56
+ * // Get all schema names.
57
+ * Schema.getNames(); // ["Grantee", "GranteeDetails"]
58
+ *
59
+ * // Get many schemas by name. Throws an error if schema does not exist.
60
+ * Schema.getMany(["Grantee", "GranteeDetails"]); // [grantee, granteeDetails]
61
+ *
62
+ * // Replace all schemas. Throws an error if schema does not exist.
63
+ * Schema.replaceAll([grantee, granteeDetails]);
64
+ *
65
+ * // Replace one schema. This will replace a schema using the inbound schema name.. Throws an error if schema does not exist.
66
+ * Schema.replaceOne(grantee);
67
+ *
68
+ * // Converts a raw schema string (e.g. "uint256 id, string name") to a SchemaItem[].
69
+ * const schema = Schema.rawToObject("uint256 id, string name");
70
+ * ```
71
+ */
72
+ export declare abstract class Schema<T extends string = string> implements SchemaInterface<T> {
73
+ protected static schemas: Record<TNetwork, Schema[]>;
74
+ protected encoder: SchemaEncoder;
75
+ private _schema;
76
+ readonly uid: Hex;
77
+ readonly name: string;
78
+ readonly revocable?: boolean;
79
+ readonly references?: T;
80
+ readonly gap: GAP;
81
+ readonly oldSchemas?: {
82
+ uid: string;
83
+ raw: SchemaItem[];
84
+ }[];
85
+ /**
86
+ * Creates a new schema instance
87
+ * @param args
88
+ * @param strict If true, will throw an error if schema reference is not valid. With this option, user should add schemas
89
+ * in a strict order.
90
+ */
91
+ constructor(args: SchemaInterface<T>, gap?: GAP, strict?: boolean, ignoreSchema?: boolean);
92
+ /**
93
+ * Encode the schema to be used as payload in the attestation
94
+ * @returns
95
+ */
96
+ encode(schema?: SchemaItem[]): string;
97
+ /**
98
+ * Set a schema field value.
99
+ * @param key
100
+ * @param value
101
+ */
102
+ setValue(key: string, value: SchemaValue): void;
103
+ /**
104
+ * Tests if the current schema is a JSON Schema.
105
+ *
106
+ * @returns boolean
107
+ */
108
+ isJsonSchema(): boolean;
109
+ private assertField;
110
+ /**
111
+ * Asserts if schema is valid.
112
+ * > Does not check references if `strict = false`. To check references use `Schema.validate()`
113
+ * @param args
114
+ */
115
+ protected assert(args: SchemaInterface, strict?: boolean): void;
116
+ /**
117
+ * Attest off chain data
118
+ * @returns
119
+ */
120
+ attestOffchain({ data, signer, to, refUID }: AttestArgs): Promise<import("@ethereum-attestation-service/eas-sdk").SignedOffchainAttestation>;
121
+ /**
122
+ * Revokes one off chain attestation by its UID.
123
+ * @param uid
124
+ * @param signer
125
+ * @returns
126
+ */
127
+ revokeOffchain(uid: Hex, signer: SignerOrProvider): Promise<import("@ethereum-attestation-service/eas-sdk/dist/transaction").Transaction<bigint>>;
128
+ /**
129
+ * Revokes multiple off chain attestations by their UIDs.
130
+ * @param uids
131
+ * @param signer
132
+ * @returns
133
+ */
134
+ multiRevokeOffchain(uids: Hex[], signer: SignerOrProvider): Promise<import("@ethereum-attestation-service/eas-sdk/dist/transaction").Transaction<bigint[]>>;
135
+ /**
136
+ * Validates and attests a given schema.
137
+ *
138
+ * This function checks a schema against predefined standards or rules. If the 'ipfsKey' parameter is enabled,
139
+ * it uploads the data to the IPFS (InterPlanetary File System). Upon successful upload, the function
140
+ * returns the CID (Content Identifier) within the Attestation Body, providing a reference to the data on IPFS.
141
+ *
142
+ * Usage:
143
+ * - Ensure that the schema to be attested conforms to the required format.
144
+ * - Enable 'ipfsKey' if you wish to store the data on IPFS and retrieve its CID.
145
+ *
146
+ * @param {Object} param0 - An object containing the schema and other optional settings.
147
+ * @returns {Object} An object containing the attestation results, including the CID if 'ipfsKey' is enabled.
148
+ */
149
+ attest<T>({ data, to, signer, refUID, callback, }: AttestArgs<T>): Promise<AttestationWithTx>;
150
+ /**
151
+ * Bulk attest a set of attestations.
152
+ * @param signer
153
+ * @param entities
154
+ * @returns
155
+ */
156
+ multiAttest(signer: SignerOrProvider, entities?: Attestation[], callback?: Function): Promise<AttestationWithTx>;
157
+ /**
158
+ * Revokes a set of attestations by their UIDs.
159
+ * @param signer
160
+ * @param uids
161
+ * @returns
162
+ */
163
+ multiRevoke(signer: SignerOrProvider, toRevoke: MultiRevokeArgs[], callback?: Function): Promise<{
164
+ tx: ethers.Transaction[];
165
+ uids: `0x${string}`[];
166
+ }>;
167
+ static exists(name: string, network: TNetwork): Schema<string>;
168
+ /**
169
+ * Adds the schema signature to a shares list. Use Schema.get("SchemaName") to get the schema.
170
+ *
171
+ * __Note that this will make the schema available to all instances
172
+ * of the class AND its data can be overriden by any changes.__
173
+ * @param schemas
174
+ */
175
+ static add<T extends Schema>(network: TNetwork, ...schemas: T[]): void;
176
+ static getAll<T extends Schema>(network: TNetwork): T[];
177
+ static get<N extends string, T extends Schema>(name: N, network: TNetwork): T;
178
+ /**
179
+ * Find many schemas by name and return them as an array in the same order.
180
+ * @param names
181
+ * @returns
182
+ */
183
+ static getMany<N extends string, T extends Schema>(names: N[], network: TNetwork): T[];
184
+ static getNames(network: TNetwork): string[];
185
+ /**
186
+ * Validade references
187
+ * @throws {SchemaError} if any reference is not valid
188
+ * @returns {true} if references are valid
189
+ */
190
+ static validate(network: TNetwork): true;
191
+ /**
192
+ * Replaces the schema list with a new list.
193
+ * @param schemas
194
+ */
195
+ static replaceAll(schemas: Schema[], network: TNetwork): void;
196
+ /**
197
+ * Replaces a schema from the schema list.
198
+ * @throws {SchemaError} if desired schema name does not exist.
199
+ */
200
+ static replaceOne(schema: Schema, network: TNetwork): void;
201
+ /**
202
+ * Transforms the given raw schema to SchemaItem[]
203
+ *
204
+ * @example
205
+ * ```
206
+ * const schema = Schema.rawToObject("uint256 id, string name");
207
+ * // schema = [{ type: "uint256", name: "id", value: null }, { type: "string", name: "name", value: null }]
208
+ * ```
209
+ * @param abi
210
+ * @returns
211
+ */
212
+ static rawToObject(abi: string): SchemaItem[];
213
+ /**
214
+ * Returns the raw schema string.
215
+ * @example
216
+ * ```ts
217
+ * const schema = new Schema({ name: "Grantee", schema: [{ type: "bool", name: "grantee", value: true }], uid: "0x000000000" });
218
+ * schema.raw; // "bool grantee"
219
+ * ```
220
+ */
221
+ get raw(): string;
222
+ get schema(): SchemaItem[];
223
+ /**
224
+ * Get all schemas that references this schema. Note that this
225
+ * will return a reference to the original schema and all
226
+ * the changes made to it will reflect the original instance.
227
+ */
228
+ get children(): Schema<string>[];
229
+ /**
230
+ * Asserts and sets the schema value.
231
+ */
232
+ set schema(schema: SchemaItem[]);
233
+ }