@settlemint/sdk-eas 2.3.14-praeeb9d7e → 2.3.14-prbb564ea5
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 +63 -1072
- package/dist/browser/eas.d.ts +39 -4327
- package/dist/browser/eas.js +167 -568
- package/dist/browser/eas.js.map +1 -1
- package/dist/eas.cjs +164 -570
- package/dist/eas.cjs.map +1 -1
- package/dist/eas.d.cts +39 -4327
- package/dist/eas.d.ts +39 -4327
- package/dist/eas.js +167 -568
- package/dist/eas.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -27,441 +27,23 @@
|
|
|
27
27
|
## Table of Contents
|
|
28
28
|
|
|
29
29
|
- [About](#about)
|
|
30
|
-
- [Examples](#examples)
|
|
31
|
-
- [Simple eas workflow](#simple-eas-workflow)
|
|
32
30
|
- [API Reference](#api-reference)
|
|
33
31
|
- [Functions](#functions)
|
|
34
32
|
- [createEASClient()](#createeasclient)
|
|
35
|
-
- [Classes](#classes)
|
|
36
|
-
- [EASClient](#easclient)
|
|
37
33
|
- [Interfaces](#interfaces)
|
|
38
|
-
- [
|
|
39
|
-
- [AttestationInfo](#attestationinfo)
|
|
40
|
-
- [AttestationRequest](#attestationrequest)
|
|
41
|
-
- [DeploymentResult](#deploymentresult)
|
|
42
|
-
- [GetAttestationsOptions](#getattestationsoptions)
|
|
43
|
-
- [GetSchemasOptions](#getschemasoptions)
|
|
44
|
-
- [SchemaData](#schemadata)
|
|
34
|
+
- [RegisterSchemaOptions](#registerschemaoptions)
|
|
45
35
|
- [SchemaField](#schemafield)
|
|
46
|
-
- [SchemaRequest](#schemarequest)
|
|
47
|
-
- [TransactionResult](#transactionresult)
|
|
48
36
|
- [Type Aliases](#type-aliases)
|
|
49
|
-
- [
|
|
37
|
+
- [ClientOptions](#clientoptions)
|
|
50
38
|
- [Variables](#variables)
|
|
39
|
+
- [ClientOptionsSchema](#clientoptionsschema)
|
|
51
40
|
- [EAS\_FIELD\_TYPES](#eas_field_types)
|
|
52
|
-
- [EASClientOptionsSchema](#easclientoptionsschema)
|
|
53
|
-
- [ZERO\_ADDRESS](#zero_address)
|
|
54
41
|
- [Contributing](#contributing)
|
|
55
42
|
- [License](#license)
|
|
56
43
|
|
|
57
44
|
## About
|
|
58
45
|
|
|
59
46
|
The SettleMint EAS SDK provides a lightweight wrapper for the Ethereum Attestation Service (EAS), enabling developers to easily create, manage, and verify attestations within their applications. It simplifies the process of working with EAS by handling contract interactions, schema management, and The Graph integration, while ensuring proper integration with the SettleMint platform. This allows developers to quickly implement document verification, identity attestation, and other EAS-based features without manual setup.
|
|
60
|
-
## Examples
|
|
61
|
-
|
|
62
|
-
### Simple eas workflow
|
|
63
|
-
|
|
64
|
-
```ts
|
|
65
|
-
/**
|
|
66
|
-
* Digital Notary EAS SDK Workflow Example
|
|
67
|
-
*
|
|
68
|
-
* Demonstrates a digital notary use case with EAS:
|
|
69
|
-
* 1. Initialize EAS client
|
|
70
|
-
* 2. Deploy EAS contracts
|
|
71
|
-
* 3. Register a digital notary schema
|
|
72
|
-
* 4. Create document attestations
|
|
73
|
-
*/
|
|
74
|
-
|
|
75
|
-
import type { Address, Hex } from "viem";
|
|
76
|
-
import { decodeAbiParameters, encodeAbiParameters, parseAbiParameters } from "viem";
|
|
77
|
-
import { ZERO_ADDRESS, ZERO_BYTES32, createEASClient } from "../eas.ts"; // Replace this path with "@settlemint/sdk-eas";
|
|
78
|
-
|
|
79
|
-
const CONFIG = {
|
|
80
|
-
instance: process.env.SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT,
|
|
81
|
-
accessToken: process.env.SETTLEMINT_ACCESS_TOKEN,
|
|
82
|
-
deployerAddress: process.env.SETTLEMINT_DEPLOYER_ADDRESS as Address | undefined,
|
|
83
|
-
debug: true,
|
|
84
|
-
|
|
85
|
-
// Configuration options for addresses and references
|
|
86
|
-
resolverAddress: ZERO_ADDRESS, // Use ZERO_ADDRESS for no resolver, or specify custom resolver
|
|
87
|
-
forwarderAddress: undefined, // Use undefined for ZERO_ADDRESS, or specify custom forwarder
|
|
88
|
-
referenceUID: ZERO_BYTES32, // Use ZERO_BYTES32 for no reference, or specify parent attestation
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
// Example addresses for demonstration
|
|
92
|
-
const EXAMPLE_DEPLOYER_ADDRESS = CONFIG.deployerAddress;
|
|
93
|
-
const EXAMPLE_FROM_ADDRESS = CONFIG.deployerAddress;
|
|
94
|
-
|
|
95
|
-
// Schema definition with proper typing
|
|
96
|
-
interface UserReputationSchema {
|
|
97
|
-
user: Address;
|
|
98
|
-
score: bigint;
|
|
99
|
-
category: string;
|
|
100
|
-
timestamp: bigint;
|
|
101
|
-
verified: boolean;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
interface DigitalNotarySchema {
|
|
105
|
-
documentHash: string;
|
|
106
|
-
notaryAddress: Address;
|
|
107
|
-
signerAddress: Address;
|
|
108
|
-
notarizationTimestamp: bigint;
|
|
109
|
-
documentType: string;
|
|
110
|
-
witnessCount: bigint;
|
|
111
|
-
isVerified: boolean;
|
|
112
|
-
ipfsHash: string;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
async function runEASWorkflow() {
|
|
116
|
-
if (!CONFIG.instance || !CONFIG.accessToken || !EXAMPLE_DEPLOYER_ADDRESS || !EXAMPLE_FROM_ADDRESS) {
|
|
117
|
-
console.error(
|
|
118
|
-
"Missing environment variables. Please set SETTLEMINT_PORTAL_GRAPHQL_ENDPOINT, SETTLEMINT_ACCESS_TOKEN, and SETTLEMINT_DEPLOYER_ADDRESS.",
|
|
119
|
-
);
|
|
120
|
-
process.exit(1);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
console.log("🚀 Simple EAS SDK Workflow");
|
|
124
|
-
console.log("===========================\n");
|
|
125
|
-
|
|
126
|
-
let deployedAddresses: { easAddress: Address; schemaRegistryAddress: Address };
|
|
127
|
-
|
|
128
|
-
// Step 1: Initialize EAS Client
|
|
129
|
-
console.log("📋 Step 1: Initialize EAS Client");
|
|
130
|
-
const client = createEASClient({
|
|
131
|
-
instance: CONFIG.instance,
|
|
132
|
-
accessToken: CONFIG.accessToken,
|
|
133
|
-
debug: CONFIG.debug,
|
|
134
|
-
});
|
|
135
|
-
console.log("✅ EAS client initialized\n");
|
|
136
|
-
|
|
137
|
-
// Step 2: Deploy EAS Contracts (if needed)
|
|
138
|
-
console.log("🏗️ Step 2: Deploy EAS Contracts");
|
|
139
|
-
try {
|
|
140
|
-
const deployment = await client.deploy(
|
|
141
|
-
EXAMPLE_DEPLOYER_ADDRESS,
|
|
142
|
-
CONFIG.forwarderAddress, // Will use ZERO_ADDRESS if undefined
|
|
143
|
-
);
|
|
144
|
-
console.log("✅ Contracts deployed:");
|
|
145
|
-
console.log(` EAS: ${deployment.easAddress}`);
|
|
146
|
-
console.log(` Schema Registry: ${deployment.schemaRegistryAddress}\n`);
|
|
147
|
-
|
|
148
|
-
deployedAddresses = {
|
|
149
|
-
easAddress: deployment.easAddress,
|
|
150
|
-
schemaRegistryAddress: deployment.schemaRegistryAddress,
|
|
151
|
-
};
|
|
152
|
-
} catch (err) {
|
|
153
|
-
const error = err as Error;
|
|
154
|
-
console.log(`❌ Deployment failed: ${error.message}`);
|
|
155
|
-
|
|
156
|
-
const addresses = client.getContractAddresses();
|
|
157
|
-
console.log("ℹ️ Using existing contracts:");
|
|
158
|
-
console.log(` EAS: ${addresses.easAddress || "Not set"}`);
|
|
159
|
-
console.log(` Schema Registry: ${addresses.schemaRegistryAddress || "Not set"}`);
|
|
160
|
-
console.log("✅ Contracts ready\n");
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Step 3: Register Schema
|
|
164
|
-
console.log("📝 Step 3: Register Schema");
|
|
165
|
-
try {
|
|
166
|
-
const schemaResult = await client.registerSchema(
|
|
167
|
-
{
|
|
168
|
-
fields: [
|
|
169
|
-
{ name: "user", type: "address", description: "User's wallet address" },
|
|
170
|
-
{ name: "score", type: "uint256", description: "Reputation score (0-100)" },
|
|
171
|
-
{ name: "category", type: "string", description: "Reputation category" },
|
|
172
|
-
{ name: "timestamp", type: "uint256", description: "When reputation was earned" },
|
|
173
|
-
{ name: "verified", type: "bool", description: "Whether reputation is verified" },
|
|
174
|
-
],
|
|
175
|
-
resolver: CONFIG.resolverAddress,
|
|
176
|
-
revocable: true,
|
|
177
|
-
},
|
|
178
|
-
EXAMPLE_FROM_ADDRESS,
|
|
179
|
-
);
|
|
180
|
-
|
|
181
|
-
console.log("✅ Schema registered successfully");
|
|
182
|
-
console.log(` Schema UID: ${schemaResult.hash}`);
|
|
183
|
-
console.log(
|
|
184
|
-
` Resolver: ${CONFIG.resolverAddress} (${CONFIG.resolverAddress === ZERO_ADDRESS ? "none" : "custom"})\n`,
|
|
185
|
-
);
|
|
186
|
-
|
|
187
|
-
// Step 4: Create Attestations
|
|
188
|
-
console.log("🎯 Step 4: Create Attestations");
|
|
189
|
-
try {
|
|
190
|
-
const attestationResult = await client.attest(
|
|
191
|
-
{
|
|
192
|
-
schema: schemaResult.hash,
|
|
193
|
-
data: {
|
|
194
|
-
recipient: EXAMPLE_FROM_ADDRESS,
|
|
195
|
-
expirationTime: BigInt(0),
|
|
196
|
-
revocable: true,
|
|
197
|
-
refUID: CONFIG.referenceUID,
|
|
198
|
-
data: "0x",
|
|
199
|
-
value: BigInt(0),
|
|
200
|
-
},
|
|
201
|
-
},
|
|
202
|
-
EXAMPLE_FROM_ADDRESS,
|
|
203
|
-
);
|
|
204
|
-
|
|
205
|
-
console.log("✅ Attestation created successfully");
|
|
206
|
-
console.log(` Attestation transaction hash: ${attestationResult.hash}`);
|
|
207
|
-
console.log(
|
|
208
|
-
` Reference: ${CONFIG.referenceUID} (${CONFIG.referenceUID === ZERO_BYTES32 ? "standalone" : "linked"})`,
|
|
209
|
-
);
|
|
210
|
-
|
|
211
|
-
const multiAttestResult = await client.multiAttest(
|
|
212
|
-
[
|
|
213
|
-
{
|
|
214
|
-
schema: schemaResult.hash,
|
|
215
|
-
data: {
|
|
216
|
-
recipient: EXAMPLE_FROM_ADDRESS,
|
|
217
|
-
expirationTime: BigInt(0),
|
|
218
|
-
revocable: true,
|
|
219
|
-
refUID: CONFIG.referenceUID,
|
|
220
|
-
data: "0x",
|
|
221
|
-
value: BigInt(0),
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
],
|
|
225
|
-
EXAMPLE_FROM_ADDRESS,
|
|
226
|
-
);
|
|
227
|
-
|
|
228
|
-
console.log("✅ Multi-attestation created successfully");
|
|
229
|
-
console.log(` Transaction hash: ${multiAttestResult.hash}\n`);
|
|
230
|
-
} catch (error) {
|
|
231
|
-
console.log("⚠️ Attestation creation failed:", error);
|
|
232
|
-
}
|
|
233
|
-
} catch (error) {
|
|
234
|
-
console.log("⚠️ Schema registration failed:", error);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/*
|
|
238
|
-
The following steps for retrieving schemas and attestations are commented out
|
|
239
|
-
because the underlying SDK functions are not yet fully implemented and depend on
|
|
240
|
-
a configured The Graph subgraph, which is not available in this example.
|
|
241
|
-
*/
|
|
242
|
-
|
|
243
|
-
// // Step 5: Retrieve Schema
|
|
244
|
-
// console.log("📖 Step 5: Retrieve Schema");
|
|
245
|
-
// try {
|
|
246
|
-
// const schema = await client.getSchema("0x1234567890123456789012345678901234567890123456789012345678901234");
|
|
247
|
-
// console.log("✅ Schema retrieved successfully");
|
|
248
|
-
// console.log(` UID: ${schema.uid}`);
|
|
249
|
-
// console.log(` Resolver: ${schema.resolver}`);
|
|
250
|
-
// console.log(` Revocable: ${schema.revocable}`);
|
|
251
|
-
// console.log(` Schema: ${schema.schema}\n`);
|
|
252
|
-
// } catch (error) {
|
|
253
|
-
// console.log("⚠️ Schema retrieval failed (Portal access required)");
|
|
254
|
-
// console.log(" Would retrieve schema: 0x1234567890123456789012345678901234567890123456789012345678901234\n");
|
|
255
|
-
// }
|
|
256
|
-
|
|
257
|
-
// // Step 6: Retrieve All Schemas
|
|
258
|
-
// console.log("📚 Step 6: Retrieve All Schemas");
|
|
259
|
-
// try {
|
|
260
|
-
// const schemas = await client.getSchemas({ limit: 10 });
|
|
261
|
-
// console.log("✅ Schemas retrieved successfully");
|
|
262
|
-
// console.log(` Found ${schemas.length} schemas`);
|
|
263
|
-
// schemas.forEach((schema, index) => {
|
|
264
|
-
// console.log(` ${index + 1}. ${schema.uid} - ${schema.schema}`);
|
|
265
|
-
// });
|
|
266
|
-
// console.log();
|
|
267
|
-
// } catch (error) {
|
|
268
|
-
// console.log("⚠️ Schemas retrieval failed (Portal access required)");
|
|
269
|
-
// console.log(" Would retrieve paginated schemas\n");
|
|
270
|
-
// }
|
|
271
|
-
|
|
272
|
-
// // Step 7: Retrieve Attestations
|
|
273
|
-
// console.log("📋 Step 7: Retrieve Attestations");
|
|
274
|
-
// try {
|
|
275
|
-
// const attestation1 = await client.getAttestation(
|
|
276
|
-
// "0xabcd567890123456789012345678901234567890123456789012345678901234",
|
|
277
|
-
// );
|
|
278
|
-
// console.log("✅ Attestation retrieved successfully");
|
|
279
|
-
// console.log(` UID: ${attestation1.uid}`);
|
|
280
|
-
// console.log(` Attester: ${attestation1.attester}`);
|
|
281
|
-
// console.log(` Recipient: ${attestation1.recipient}`);
|
|
282
|
-
// console.log(` Schema: ${attestation1.schema}\n`);
|
|
283
|
-
// } catch (error) {
|
|
284
|
-
// console.log("⚠️ Attestation retrieval failed (Portal access required)");
|
|
285
|
-
// console.log(
|
|
286
|
-
// " Would retrieve attestations: 0xabcd567890123456789012345678901234567890123456789012345678901234, 0xefgh567890123456789012345678901234567890123456789012345678901234\n",
|
|
287
|
-
// );
|
|
288
|
-
// }
|
|
289
|
-
|
|
290
|
-
// // Step 8: Retrieve All Attestations
|
|
291
|
-
// console.log("📋 Step 8: Retrieve All Attestations");
|
|
292
|
-
// try {
|
|
293
|
-
// const attestations = await client.getAttestations({
|
|
294
|
-
// limit: 10,
|
|
295
|
-
// schema: "0x1234567890123456789012345678901234567890123456789012345678901234",
|
|
296
|
-
// });
|
|
297
|
-
// console.log("✅ Attestations retrieved successfully");
|
|
298
|
-
// console.log(` Found ${attestations.length} attestations`);
|
|
299
|
-
// attestations.forEach((attestation, index) => {
|
|
300
|
-
// console.log(` ${index + 1}. ${attestation.uid} by ${attestation.attester}`);
|
|
301
|
-
// });
|
|
302
|
-
// console.log();
|
|
303
|
-
// } catch (error) {
|
|
304
|
-
// console.log("⚠️ Attestations retrieval failed (Portal access required)");
|
|
305
|
-
// console.log(" Would retrieve paginated attestations\n");
|
|
306
|
-
// }
|
|
307
|
-
|
|
308
|
-
// Final Summary
|
|
309
|
-
console.log("🎉 Workflow Complete!");
|
|
310
|
-
console.log("=====================");
|
|
311
|
-
console.log("✅ EAS client initialized");
|
|
312
|
-
console.log("✅ Contract deployment ready");
|
|
313
|
-
console.log("✅ Schema registration ready");
|
|
314
|
-
console.log("✅ Attestation creation ready");
|
|
315
|
-
console.log("✅ Schema retrieval ready");
|
|
316
|
-
console.log("✅ Attestation retrieval ready");
|
|
317
|
-
|
|
318
|
-
console.log("\n💡 Production ready!");
|
|
319
|
-
console.log("- All EAS operations implemented");
|
|
320
|
-
console.log("- Full Portal GraphQL integration");
|
|
321
|
-
console.log("- Comprehensive error handling");
|
|
322
|
-
console.log("- Type-safe TypeScript API");
|
|
323
|
-
console.log("- No hardcoded values - fully configurable");
|
|
324
|
-
|
|
325
|
-
console.log("\n🔑 To use with real Portal:");
|
|
326
|
-
console.log("- Obtain valid EAS Portal access token");
|
|
327
|
-
console.log("- Provide deployer and transaction sender addresses");
|
|
328
|
-
console.log("- Deploy or configure contract addresses");
|
|
329
|
-
console.log("- Start creating attestations!");
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
export const DigitalNotarySchemaHelpers = {
|
|
333
|
-
/**
|
|
334
|
-
* Encodes DigitalNotarySchema data using ABI encoding.
|
|
335
|
-
* @param data - The digital notary data to encode
|
|
336
|
-
* @returns The ABI-encoded data as a hex string
|
|
337
|
-
* @example
|
|
338
|
-
* ```ts
|
|
339
|
-
* import { DigitalNotarySchemaHelpers } from './simple-eas-workflow';
|
|
340
|
-
* import { getAddress } from 'viem';
|
|
341
|
-
*
|
|
342
|
-
* const encoded = DigitalNotarySchemaHelpers.encodeData({
|
|
343
|
-
* documentHash: "0xa1b2c3d4e5f67890123456789012345678901234567890123456789012345678",
|
|
344
|
-
* notaryAddress: getAddress("0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6"),
|
|
345
|
-
* signerAddress: getAddress("0x1234567890123456789012345678901234567890"),
|
|
346
|
-
* notarizationTimestamp: BigInt(Math.floor(Date.now() / 1000)),
|
|
347
|
-
* documentType: "purchase_agreement",
|
|
348
|
-
* witnessCount: BigInt(2),
|
|
349
|
-
* isVerified: true,
|
|
350
|
-
* ipfsHash: "QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG",
|
|
351
|
-
* });
|
|
352
|
-
* ```
|
|
353
|
-
*/
|
|
354
|
-
encodeData(data: DigitalNotarySchema): Hex {
|
|
355
|
-
return encodeAbiParameters(
|
|
356
|
-
parseAbiParameters(
|
|
357
|
-
"string documentHash, address notaryAddress, address signerAddress, uint256 notarizationTimestamp, string documentType, uint256 witnessCount, bool isVerified, string ipfsHash",
|
|
358
|
-
),
|
|
359
|
-
[
|
|
360
|
-
data.documentHash,
|
|
361
|
-
data.notaryAddress,
|
|
362
|
-
data.signerAddress,
|
|
363
|
-
data.notarizationTimestamp,
|
|
364
|
-
data.documentType,
|
|
365
|
-
data.witnessCount,
|
|
366
|
-
data.isVerified,
|
|
367
|
-
data.ipfsHash,
|
|
368
|
-
],
|
|
369
|
-
);
|
|
370
|
-
},
|
|
371
|
-
|
|
372
|
-
/**
|
|
373
|
-
* Decodes ABI-encoded data back to DigitalNotarySchema format.
|
|
374
|
-
* @param encodedData - The ABI-encoded hex data to decode
|
|
375
|
-
* @returns The decoded digital notary data
|
|
376
|
-
* @example
|
|
377
|
-
* ```ts
|
|
378
|
-
* import { DigitalNotarySchemaHelpers } from './simple-eas-workflow';
|
|
379
|
-
*
|
|
380
|
-
* const decoded = DigitalNotarySchemaHelpers.decodeData("0x...");
|
|
381
|
-
* console.log(decoded.documentHash, decoded.notaryAddress, decoded.documentType);
|
|
382
|
-
* ```
|
|
383
|
-
*/
|
|
384
|
-
decodeData(encodedData: Hex): DigitalNotarySchema {
|
|
385
|
-
const [
|
|
386
|
-
documentHash,
|
|
387
|
-
notaryAddress,
|
|
388
|
-
signerAddress,
|
|
389
|
-
notarizationTimestamp,
|
|
390
|
-
documentType,
|
|
391
|
-
witnessCount,
|
|
392
|
-
isVerified,
|
|
393
|
-
ipfsHash,
|
|
394
|
-
] = decodeAbiParameters(
|
|
395
|
-
parseAbiParameters(
|
|
396
|
-
"string documentHash, address notaryAddress, address signerAddress, uint256 notarizationTimestamp, string documentType, uint256 witnessCount, bool isVerified, string ipfsHash",
|
|
397
|
-
),
|
|
398
|
-
encodedData,
|
|
399
|
-
);
|
|
400
|
-
|
|
401
|
-
return {
|
|
402
|
-
documentHash: documentHash as string,
|
|
403
|
-
notaryAddress: notaryAddress as Address,
|
|
404
|
-
signerAddress: signerAddress as Address,
|
|
405
|
-
notarizationTimestamp: notarizationTimestamp as bigint,
|
|
406
|
-
documentType: documentType as string,
|
|
407
|
-
witnessCount: witnessCount as bigint,
|
|
408
|
-
isVerified: isVerified as boolean,
|
|
409
|
-
ipfsHash: ipfsHash as string,
|
|
410
|
-
};
|
|
411
|
-
},
|
|
412
|
-
|
|
413
|
-
/**
|
|
414
|
-
* Validates that a document hash follows the expected format.
|
|
415
|
-
* @param documentHash - The document hash to validate
|
|
416
|
-
* @returns Whether the hash is valid
|
|
417
|
-
*/
|
|
418
|
-
validateDocumentHash(documentHash: string): boolean {
|
|
419
|
-
return /^0x[a-fA-F0-9]{64}$/.test(documentHash);
|
|
420
|
-
},
|
|
421
|
-
|
|
422
|
-
/**
|
|
423
|
-
* Validates that witness count is within reasonable bounds.
|
|
424
|
-
* @param witnessCount - The number of witnesses
|
|
425
|
-
* @returns Whether the witness count is valid
|
|
426
|
-
*/
|
|
427
|
-
validateWitnessCount(witnessCount: bigint): boolean {
|
|
428
|
-
return witnessCount >= BigInt(0) && witnessCount <= BigInt(10);
|
|
429
|
-
},
|
|
430
|
-
|
|
431
|
-
/**
|
|
432
|
-
* Gets the supported document types for notarization.
|
|
433
|
-
* @returns Array of supported document types
|
|
434
|
-
*/
|
|
435
|
-
getDocumentTypes(): readonly string[] {
|
|
436
|
-
return [
|
|
437
|
-
"purchase_agreement",
|
|
438
|
-
"last_will_testament",
|
|
439
|
-
"power_of_attorney",
|
|
440
|
-
"real_estate_deed",
|
|
441
|
-
"business_contract",
|
|
442
|
-
"loan_agreement",
|
|
443
|
-
"affidavit",
|
|
444
|
-
"other",
|
|
445
|
-
] as const;
|
|
446
|
-
},
|
|
447
|
-
|
|
448
|
-
/**
|
|
449
|
-
* Validates that the IPFS hash follows the expected format.
|
|
450
|
-
* @param ipfsHash - The IPFS hash to validate
|
|
451
|
-
* @returns Whether the IPFS hash is valid
|
|
452
|
-
*/
|
|
453
|
-
validateIpfsHash(ipfsHash: string): boolean {
|
|
454
|
-
return /^Qm[1-9A-HJ-NP-Za-km-z]{44}$/.test(ipfsHash);
|
|
455
|
-
},
|
|
456
|
-
};
|
|
457
|
-
|
|
458
|
-
if (typeof require !== "undefined" && require.main === module) {
|
|
459
|
-
runEASWorkflow().catch(console.error);
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
export { runEASWorkflow, type UserReputationSchema };
|
|
463
|
-
|
|
464
|
-
```
|
|
465
47
|
|
|
466
48
|
## API Reference
|
|
467
49
|
|
|
@@ -469,626 +51,75 @@ export { runEASWorkflow, type UserReputationSchema };
|
|
|
469
51
|
|
|
470
52
|
#### createEASClient()
|
|
471
53
|
|
|
472
|
-
> **createEASClient**(`options`):
|
|
54
|
+
> **createEASClient**(`options`): `object`
|
|
473
55
|
|
|
474
|
-
Defined in: [sdk/eas/src/eas.ts:
|
|
56
|
+
Defined in: [sdk/eas/src/eas.ts:36](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L36)
|
|
475
57
|
|
|
476
|
-
|
|
58
|
+
Creates an EAS client for interacting with the Ethereum Attestation Service.
|
|
477
59
|
|
|
478
60
|
##### Parameters
|
|
479
61
|
|
|
480
62
|
| Parameter | Type | Description |
|
|
481
63
|
| ------ | ------ | ------ |
|
|
482
|
-
| `options` | \{ `accessToken
|
|
483
|
-
| `options.accessToken
|
|
484
|
-
| `options.
|
|
485
|
-
| `options.
|
|
486
|
-
| `options.
|
|
487
|
-
| `options.
|
|
64
|
+
| `options` | \{ `accessToken`: `string`; `attestationAddress`: `string`; `chainId`: `string`; `chainName`: `string`; `rpcUrl`: `string`; `schemaRegistryAddress`: `string`; \} | Configuration options for the client |
|
|
65
|
+
| `options.accessToken` | `string` | Access token for the RPC provider (must start with 'sm_aat_' or 'sm_pat_') |
|
|
66
|
+
| `options.attestationAddress` | `string` | The address of the EAS Attestation contract |
|
|
67
|
+
| `options.chainId` | `string` | The chain ID to connect to |
|
|
68
|
+
| `options.chainName` | `string` | The name of the chain to connect to |
|
|
69
|
+
| `options.rpcUrl` | `string` | The RPC URL to connect to (must be a valid URL) |
|
|
70
|
+
| `options.schemaRegistryAddress` | `string` | The address of the EAS Schema Registry contract |
|
|
488
71
|
|
|
489
72
|
##### Returns
|
|
490
73
|
|
|
491
|
-
[`EASClient`](#easclient)
|
|
492
|
-
|
|
493
|
-
EAS client instance
|
|
494
|
-
|
|
495
|
-
##### Example
|
|
496
|
-
|
|
497
|
-
```typescript
|
|
498
|
-
import { createEASClient } from "@settlemint/sdk-eas";
|
|
499
|
-
|
|
500
|
-
const easClient = createEASClient({
|
|
501
|
-
instance: "https://your-portal-instance.settlemint.com",
|
|
502
|
-
accessToken: "your-access-token"
|
|
503
|
-
});
|
|
504
|
-
|
|
505
|
-
// Use the client
|
|
506
|
-
const deployment = await easClient.deploy("0x1234...deployer-address");
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
### Classes
|
|
510
|
-
|
|
511
|
-
#### EASClient
|
|
512
|
-
|
|
513
|
-
Defined in: [sdk/eas/src/eas.ts:44](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L44)
|
|
514
|
-
|
|
515
|
-
Main EAS client class for interacting with Ethereum Attestation Service via Portal
|
|
516
|
-
|
|
517
|
-
##### Example
|
|
518
|
-
|
|
519
|
-
```typescript
|
|
520
|
-
import { createEASClient } from "@settlemint/sdk-eas";
|
|
521
|
-
|
|
522
|
-
const easClient = createEASClient({
|
|
523
|
-
instance: "https://your-portal-instance.settlemint.com",
|
|
524
|
-
accessToken: "your-access-token"
|
|
525
|
-
});
|
|
526
|
-
|
|
527
|
-
// Deploy EAS contracts
|
|
528
|
-
const deployment = await easClient.deploy("0x1234...deployer-address");
|
|
529
|
-
console.log("EAS deployed at:", deployment.easAddress);
|
|
530
|
-
```
|
|
531
|
-
|
|
532
|
-
##### Constructors
|
|
533
|
-
|
|
534
|
-
###### Constructor
|
|
535
|
-
|
|
536
|
-
> **new EASClient**(`options`): [`EASClient`](#easclient)
|
|
537
|
-
|
|
538
|
-
Defined in: [sdk/eas/src/eas.ts:55](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L55)
|
|
539
|
-
|
|
540
|
-
Create a new EAS client instance
|
|
541
|
-
|
|
542
|
-
###### Parameters
|
|
543
|
-
|
|
544
|
-
| Parameter | Type | Description |
|
|
545
|
-
| ------ | ------ | ------ |
|
|
546
|
-
| `options` | \{ `accessToken?`: `string`; `debug?`: `boolean`; `easContractAddress?`: `` `0x${string}` ``; `instance`: `string`; `schemaRegistryContractAddress?`: `` `0x${string}` ``; \} | Configuration options for the EAS client |
|
|
547
|
-
| `options.accessToken?` | `string` | The application access token |
|
|
548
|
-
| `options.debug?` | `boolean` | Whether to enable debug mode |
|
|
549
|
-
| `options.easContractAddress?` | `` `0x${string}` `` | The EAS contract address |
|
|
550
|
-
| `options.instance` | `string` | The EAS instance URL |
|
|
551
|
-
| `options.schemaRegistryContractAddress?` | `` `0x${string}` `` | The schema registry contract address |
|
|
552
|
-
|
|
553
|
-
###### Returns
|
|
554
|
-
|
|
555
|
-
[`EASClient`](#easclient)
|
|
556
|
-
|
|
557
|
-
##### Methods
|
|
558
|
-
|
|
559
|
-
###### attest()
|
|
560
|
-
|
|
561
|
-
> **attest**(`request`, `fromAddress`, `gasLimit?`): `Promise`\<[`TransactionResult`](#transactionresult)\>
|
|
562
|
-
|
|
563
|
-
Defined in: [sdk/eas/src/eas.ts:295](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L295)
|
|
564
|
-
|
|
565
|
-
Create an attestation
|
|
566
|
-
|
|
567
|
-
###### Parameters
|
|
568
|
-
|
|
569
|
-
| Parameter | Type | Description |
|
|
570
|
-
| ------ | ------ | ------ |
|
|
571
|
-
| `request` | [`AttestationRequest`](#attestationrequest) | Attestation request containing schema and data |
|
|
572
|
-
| `fromAddress` | `` `0x${string}` `` | Address that will create the attestation |
|
|
573
|
-
| `gasLimit?` | `string` | Optional gas limit for the transaction (defaults to "0x3d0900") |
|
|
574
|
-
|
|
575
|
-
###### Returns
|
|
576
|
-
|
|
577
|
-
`Promise`\<[`TransactionResult`](#transactionresult)\>
|
|
578
|
-
|
|
579
|
-
Promise resolving to transaction result
|
|
580
|
-
|
|
581
|
-
###### Example
|
|
582
|
-
|
|
583
|
-
```typescript
|
|
584
|
-
import { createEASClient } from "@settlemint/sdk-eas";
|
|
585
|
-
|
|
586
|
-
const easClient = createEASClient({
|
|
587
|
-
instance: "https://your-portal-instance.settlemint.com",
|
|
588
|
-
accessToken: "your-access-token"
|
|
589
|
-
});
|
|
590
|
-
|
|
591
|
-
const attestationResult = await easClient.attest(
|
|
592
|
-
{
|
|
593
|
-
schema: "0x1234567890123456789012345678901234567890123456789012345678901234",
|
|
594
|
-
data: {
|
|
595
|
-
recipient: "0x1234567890123456789012345678901234567890",
|
|
596
|
-
expirationTime: BigInt(0), // No expiration
|
|
597
|
-
revocable: true,
|
|
598
|
-
refUID: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
599
|
-
data: "0x1234", // ABI-encoded data
|
|
600
|
-
value: BigInt(0)
|
|
601
|
-
}
|
|
602
|
-
},
|
|
603
|
-
"0x1234567890123456789012345678901234567890" // from address
|
|
604
|
-
);
|
|
605
|
-
|
|
606
|
-
console.log("Attestation created:", attestationResult.hash);
|
|
607
|
-
```
|
|
608
|
-
|
|
609
|
-
###### deploy()
|
|
610
|
-
|
|
611
|
-
> **deploy**(`deployerAddress`, `forwarderAddress?`, `gasLimit?`): `Promise`\<[`DeploymentResult`](#deploymentresult)\>
|
|
612
|
-
|
|
613
|
-
Defined in: [sdk/eas/src/eas.ts:106](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L106)
|
|
614
|
-
|
|
615
|
-
Deploy EAS contracts via Portal
|
|
616
|
-
|
|
617
|
-
###### Parameters
|
|
618
|
-
|
|
619
|
-
| Parameter | Type | Description |
|
|
620
|
-
| ------ | ------ | ------ |
|
|
621
|
-
| `deployerAddress` | `` `0x${string}` `` | The address that will deploy the contracts |
|
|
622
|
-
| `forwarderAddress?` | `` `0x${string}` `` | Optional trusted forwarder address (defaults to zero address) |
|
|
623
|
-
| `gasLimit?` | `string` | Optional gas limit for deployment transactions (defaults to "0x7a1200") |
|
|
624
|
-
|
|
625
|
-
###### Returns
|
|
626
|
-
|
|
627
|
-
`Promise`\<[`DeploymentResult`](#deploymentresult)\>
|
|
628
|
-
|
|
629
|
-
Promise resolving to deployment result with contract addresses and transaction hashes
|
|
630
|
-
|
|
631
|
-
###### Example
|
|
632
|
-
|
|
633
|
-
```typescript
|
|
634
|
-
import { createEASClient } from "@settlemint/sdk-eas";
|
|
635
|
-
|
|
636
|
-
const easClient = createEASClient({
|
|
637
|
-
instance: "https://your-portal-instance.settlemint.com",
|
|
638
|
-
accessToken: "your-access-token"
|
|
639
|
-
});
|
|
640
|
-
|
|
641
|
-
const deployment = await easClient.deploy(
|
|
642
|
-
"0x1234567890123456789012345678901234567890", // deployer address
|
|
643
|
-
"0x0000000000000000000000000000000000000000", // forwarder (optional)
|
|
644
|
-
"0x7a1200" // gas limit (optional)
|
|
645
|
-
);
|
|
646
|
-
|
|
647
|
-
console.log("Schema Registry:", deployment.schemaRegistryAddress);
|
|
648
|
-
console.log("EAS Contract:", deployment.easAddress);
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
###### getAttestation()
|
|
652
|
-
|
|
653
|
-
> **getAttestation**(`uid`): `Promise`\<[`AttestationInfo`](#attestationinfo)\>
|
|
654
|
-
|
|
655
|
-
Defined in: [sdk/eas/src/eas.ts:528](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L528)
|
|
656
|
-
|
|
657
|
-
Get an attestation by UID
|
|
658
|
-
|
|
659
|
-
TODO: Implement using The Graph subgraph for EAS data queries
|
|
660
|
-
|
|
661
|
-
###### Parameters
|
|
662
|
-
|
|
663
|
-
| Parameter | Type |
|
|
664
|
-
| ------ | ------ |
|
|
665
|
-
| `uid` | `` `0x${string}` `` |
|
|
666
|
-
|
|
667
|
-
###### Returns
|
|
668
|
-
|
|
669
|
-
`Promise`\<[`AttestationInfo`](#attestationinfo)\>
|
|
670
|
-
|
|
671
|
-
###### getAttestations()
|
|
672
|
-
|
|
673
|
-
> **getAttestations**(`options?`): `Promise`\<[`AttestationInfo`](#attestationinfo)[]\>
|
|
674
|
-
|
|
675
|
-
Defined in: [sdk/eas/src/eas.ts:539](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L539)
|
|
676
|
-
|
|
677
|
-
Get attestations with pagination and filtering
|
|
678
|
-
|
|
679
|
-
TODO: Implement using The Graph subgraph for EAS data queries
|
|
680
|
-
|
|
681
|
-
###### Parameters
|
|
682
|
-
|
|
683
|
-
| Parameter | Type |
|
|
684
|
-
| ------ | ------ |
|
|
685
|
-
| `options?` | [`GetAttestationsOptions`](#getattestationsoptions) |
|
|
686
|
-
|
|
687
|
-
###### Returns
|
|
688
|
-
|
|
689
|
-
`Promise`\<[`AttestationInfo`](#attestationinfo)[]\>
|
|
690
|
-
|
|
691
|
-
###### getContractAddresses()
|
|
692
|
-
|
|
693
|
-
> **getContractAddresses**(): `object`
|
|
694
|
-
|
|
695
|
-
Defined in: [sdk/eas/src/eas.ts:578](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L578)
|
|
696
|
-
|
|
697
|
-
Get current contract addresses
|
|
698
|
-
|
|
699
|
-
###### Returns
|
|
700
|
-
|
|
701
74
|
`object`
|
|
702
75
|
|
|
703
|
-
|
|
704
|
-
| ------ | ------ | ------ |
|
|
705
|
-
| `easAddress?` | `` `0x${string}` `` | [sdk/eas/src/eas.ts:578](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L578) |
|
|
706
|
-
| `schemaRegistryAddress?` | `` `0x${string}` `` | [sdk/eas/src/eas.ts:578](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L578) |
|
|
707
|
-
|
|
708
|
-
###### getOptions()
|
|
709
|
-
|
|
710
|
-
> **getOptions**(): `object`
|
|
711
|
-
|
|
712
|
-
Defined in: [sdk/eas/src/eas.ts:564](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L564)
|
|
713
|
-
|
|
714
|
-
Get client configuration
|
|
715
|
-
|
|
716
|
-
###### Returns
|
|
717
|
-
|
|
718
|
-
| Name | Type | Default value | Description | Defined in |
|
|
719
|
-
| ------ | ------ | ------ | ------ | ------ |
|
|
720
|
-
| `accessToken?` | `string` | - | The application access token | [sdk/eas/src/utils/validation.ts:21](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/utils/validation.ts#L21) |
|
|
721
|
-
| `debug?` | `boolean` | - | Whether to enable debug mode | [sdk/eas/src/utils/validation.ts:33](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/utils/validation.ts#L33) |
|
|
722
|
-
| `easContractAddress?` | `` `0x${string}` `` | - | The EAS contract address | [sdk/eas/src/utils/validation.ts:25](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/utils/validation.ts#L25) |
|
|
723
|
-
| `instance` | `string` | `UrlSchema` | The EAS instance URL | [sdk/eas/src/utils/validation.ts:17](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/utils/validation.ts#L17) |
|
|
724
|
-
| `schemaRegistryContractAddress?` | `` `0x${string}` `` | - | The schema registry contract address | [sdk/eas/src/utils/validation.ts:29](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/utils/validation.ts#L29) |
|
|
725
|
-
|
|
726
|
-
###### getPortalClient()
|
|
727
|
-
|
|
728
|
-
> **getPortalClient**(): `GraphQLClient`
|
|
729
|
-
|
|
730
|
-
Defined in: [sdk/eas/src/eas.ts:571](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L571)
|
|
731
|
-
|
|
732
|
-
Get the Portal client instance for advanced operations
|
|
733
|
-
|
|
734
|
-
###### Returns
|
|
735
|
-
|
|
736
|
-
`GraphQLClient`
|
|
737
|
-
|
|
738
|
-
###### getSchema()
|
|
739
|
-
|
|
740
|
-
> **getSchema**(`uid`): `Promise`\<[`SchemaData`](#schemadata)\>
|
|
741
|
-
|
|
742
|
-
Defined in: [sdk/eas/src/eas.ts:508](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L508)
|
|
743
|
-
|
|
744
|
-
Get a schema by UID
|
|
745
|
-
|
|
746
|
-
TODO: Implement using The Graph subgraph for EAS data queries
|
|
747
|
-
|
|
748
|
-
###### Parameters
|
|
749
|
-
|
|
750
|
-
| Parameter | Type |
|
|
751
|
-
| ------ | ------ |
|
|
752
|
-
| `uid` | `` `0x${string}` `` |
|
|
753
|
-
|
|
754
|
-
###### Returns
|
|
755
|
-
|
|
756
|
-
`Promise`\<[`SchemaData`](#schemadata)\>
|
|
757
|
-
|
|
758
|
-
###### getSchemas()
|
|
759
|
-
|
|
760
|
-
> **getSchemas**(`options?`): `Promise`\<[`SchemaData`](#schemadata)[]\>
|
|
761
|
-
|
|
762
|
-
Defined in: [sdk/eas/src/eas.ts:519](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L519)
|
|
763
|
-
|
|
764
|
-
Get all schemas with pagination
|
|
765
|
-
|
|
766
|
-
TODO: Implement using The Graph subgraph for EAS data queries
|
|
767
|
-
|
|
768
|
-
###### Parameters
|
|
76
|
+
An object containing the EAS client instance
|
|
769
77
|
|
|
770
|
-
|
|
|
771
|
-
| ------ | ------ |
|
|
772
|
-
| `options?` | [`GetSchemasOptions`](#getschemasoptions) |
|
|
773
|
-
|
|
774
|
-
###### Returns
|
|
775
|
-
|
|
776
|
-
`Promise`\<[`SchemaData`](#schemadata)[]\>
|
|
777
|
-
|
|
778
|
-
###### getTimestamp()
|
|
779
|
-
|
|
780
|
-
> **getTimestamp**(): `Promise`\<`bigint`\>
|
|
781
|
-
|
|
782
|
-
Defined in: [sdk/eas/src/eas.ts:557](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L557)
|
|
783
|
-
|
|
784
|
-
Get the current timestamp from the contract
|
|
785
|
-
|
|
786
|
-
TODO: Fix Portal GraphQL query parameter encoding or use The Graph subgraph
|
|
787
|
-
|
|
788
|
-
###### Returns
|
|
789
|
-
|
|
790
|
-
`Promise`\<`bigint`\>
|
|
791
|
-
|
|
792
|
-
###### isValidAttestation()
|
|
793
|
-
|
|
794
|
-
> **isValidAttestation**(`uid`): `Promise`\<`boolean`\>
|
|
795
|
-
|
|
796
|
-
Defined in: [sdk/eas/src/eas.ts:548](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L548)
|
|
797
|
-
|
|
798
|
-
Check if an attestation is valid
|
|
799
|
-
|
|
800
|
-
TODO: Implement using The Graph subgraph for EAS data queries
|
|
801
|
-
|
|
802
|
-
###### Parameters
|
|
803
|
-
|
|
804
|
-
| Parameter | Type |
|
|
805
|
-
| ------ | ------ |
|
|
806
|
-
| `uid` | `` `0x${string}` `` |
|
|
807
|
-
|
|
808
|
-
###### Returns
|
|
809
|
-
|
|
810
|
-
`Promise`\<`boolean`\>
|
|
811
|
-
|
|
812
|
-
###### multiAttest()
|
|
813
|
-
|
|
814
|
-
> **multiAttest**(`requests`, `fromAddress`, `gasLimit?`): `Promise`\<[`TransactionResult`](#transactionresult)\>
|
|
815
|
-
|
|
816
|
-
Defined in: [sdk/eas/src/eas.ts:386](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L386)
|
|
817
|
-
|
|
818
|
-
Create multiple attestations in a single transaction
|
|
819
|
-
|
|
820
|
-
###### Parameters
|
|
821
|
-
|
|
822
|
-
| Parameter | Type | Description |
|
|
823
|
-
| ------ | ------ | ------ |
|
|
824
|
-
| `requests` | [`AttestationRequest`](#attestationrequest)[] | Array of attestation requests |
|
|
825
|
-
| `fromAddress` | `` `0x${string}` `` | Address that will create the attestations |
|
|
826
|
-
| `gasLimit?` | `string` | Optional gas limit for the transaction (defaults to "0x3d0900") |
|
|
827
|
-
|
|
828
|
-
###### Returns
|
|
829
|
-
|
|
830
|
-
`Promise`\<[`TransactionResult`](#transactionresult)\>
|
|
831
|
-
|
|
832
|
-
Promise resolving to transaction result
|
|
833
|
-
|
|
834
|
-
###### Example
|
|
835
|
-
|
|
836
|
-
```typescript
|
|
837
|
-
import { createEASClient } from "@settlemint/sdk-eas";
|
|
838
|
-
|
|
839
|
-
const easClient = createEASClient({
|
|
840
|
-
instance: "https://your-portal-instance.settlemint.com",
|
|
841
|
-
accessToken: "your-access-token"
|
|
842
|
-
});
|
|
843
|
-
|
|
844
|
-
const multiAttestResult = await easClient.multiAttest(
|
|
845
|
-
[
|
|
846
|
-
{
|
|
847
|
-
schema: "0x1234567890123456789012345678901234567890123456789012345678901234",
|
|
848
|
-
data: {
|
|
849
|
-
recipient: "0x1234567890123456789012345678901234567890",
|
|
850
|
-
expirationTime: BigInt(0),
|
|
851
|
-
revocable: true,
|
|
852
|
-
refUID: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
853
|
-
data: "0x1234",
|
|
854
|
-
value: BigInt(0)
|
|
855
|
-
}
|
|
856
|
-
},
|
|
857
|
-
{
|
|
858
|
-
schema: "0x5678901234567890123456789012345678901234567890123456789012345678",
|
|
859
|
-
data: {
|
|
860
|
-
recipient: "0x5678901234567890123456789012345678901234",
|
|
861
|
-
expirationTime: BigInt(0),
|
|
862
|
-
revocable: false,
|
|
863
|
-
refUID: "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
864
|
-
data: "0x5678",
|
|
865
|
-
value: BigInt(0)
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
],
|
|
869
|
-
"0x1234567890123456789012345678901234567890" // from address
|
|
870
|
-
);
|
|
871
|
-
|
|
872
|
-
console.log("Multiple attestations created:", multiAttestResult.hash);
|
|
873
|
-
```
|
|
874
|
-
|
|
875
|
-
###### registerSchema()
|
|
876
|
-
|
|
877
|
-
> **registerSchema**(`request`, `fromAddress`, `gasLimit?`): `Promise`\<[`TransactionResult`](#transactionresult)\>
|
|
878
|
-
|
|
879
|
-
Defined in: [sdk/eas/src/eas.ts:216](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L216)
|
|
880
|
-
|
|
881
|
-
Register a new schema in the EAS Schema Registry
|
|
882
|
-
|
|
883
|
-
###### Parameters
|
|
884
|
-
|
|
885
|
-
| Parameter | Type | Description |
|
|
886
|
-
| ------ | ------ | ------ |
|
|
887
|
-
| `request` | [`SchemaRequest`](#schemarequest) | Schema registration request containing schema definition |
|
|
888
|
-
| `fromAddress` | `` `0x${string}` `` | Address that will register the schema |
|
|
889
|
-
| `gasLimit?` | `string` | Optional gas limit for the transaction (defaults to "0x3d0900") |
|
|
890
|
-
|
|
891
|
-
###### Returns
|
|
892
|
-
|
|
893
|
-
`Promise`\<[`TransactionResult`](#transactionresult)\>
|
|
894
|
-
|
|
895
|
-
Promise resolving to transaction result
|
|
896
|
-
|
|
897
|
-
###### Example
|
|
898
|
-
|
|
899
|
-
```typescript
|
|
900
|
-
import { createEASClient } from "@settlemint/sdk-eas";
|
|
901
|
-
|
|
902
|
-
const easClient = createEASClient({
|
|
903
|
-
instance: "https://your-portal-instance.settlemint.com",
|
|
904
|
-
accessToken: "your-access-token"
|
|
905
|
-
});
|
|
906
|
-
|
|
907
|
-
const schemaResult = await easClient.registerSchema(
|
|
908
|
-
{
|
|
909
|
-
schema: "uint256 eventId, uint8 voteIndex",
|
|
910
|
-
resolver: "0x0000000000000000000000000000000000000000",
|
|
911
|
-
revocable: true
|
|
912
|
-
},
|
|
913
|
-
"0x1234567890123456789012345678901234567890" // from address
|
|
914
|
-
);
|
|
915
|
-
|
|
916
|
-
console.log("Schema registered:", schemaResult.hash);
|
|
917
|
-
```
|
|
918
|
-
|
|
919
|
-
###### revoke()
|
|
920
|
-
|
|
921
|
-
> **revoke**(`schemaUID`, `attestationUID`, `fromAddress`, `value?`, `gasLimit?`): `Promise`\<[`TransactionResult`](#transactionresult)\>
|
|
922
|
-
|
|
923
|
-
Defined in: [sdk/eas/src/eas.ts:464](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L464)
|
|
924
|
-
|
|
925
|
-
Revoke an existing attestation
|
|
926
|
-
|
|
927
|
-
###### Parameters
|
|
928
|
-
|
|
929
|
-
| Parameter | Type | Description |
|
|
78
|
+
| Name | Type | Defined in |
|
|
930
79
|
| ------ | ------ | ------ |
|
|
931
|
-
| `
|
|
932
|
-
| `
|
|
933
|
-
| `fromAddress` | `` `0x${string}` `` | Address that will revoke the attestation |
|
|
934
|
-
| `value?` | `bigint` | Optional ETH value to send with the revocation |
|
|
935
|
-
| `gasLimit?` | `string` | Optional gas limit for the transaction (defaults to "0x3d0900") |
|
|
936
|
-
|
|
937
|
-
###### Returns
|
|
80
|
+
| `getSchema()` | (`uid`) => `Promise`\<`string`\> | [sdk/eas/src/eas.ts:96](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L96) |
|
|
81
|
+
| `registerSchema()` | (`options`) => `Promise`\<`string`\> | [sdk/eas/src/eas.ts:95](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/eas.ts#L95) |
|
|
938
82
|
|
|
939
|
-
|
|
83
|
+
##### Throws
|
|
940
84
|
|
|
941
|
-
|
|
85
|
+
Will throw an error if the options fail validation
|
|
942
86
|
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
```typescript
|
|
946
|
-
import { createEASClient } from "@settlemint/sdk-eas";
|
|
87
|
+
##### Example
|
|
947
88
|
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
89
|
+
```ts
|
|
90
|
+
import { createEASClient } from '@settlemint/sdk-eas';
|
|
91
|
+
|
|
92
|
+
const client = createEASClient({
|
|
93
|
+
schemaRegistryAddress: "0x1234567890123456789012345678901234567890",
|
|
94
|
+
attestationAddress: "0x1234567890123456789012345678901234567890",
|
|
95
|
+
accessToken: "your-access-token",
|
|
96
|
+
chainId: "1",
|
|
97
|
+
chainName: "Ethereum",
|
|
98
|
+
rpcUrl: "http://localhost:8545"
|
|
951
99
|
});
|
|
952
|
-
|
|
953
|
-
const revokeResult = await easClient.revoke(
|
|
954
|
-
"0x1234567890123456789012345678901234567890123456789012345678901234", // schema UID
|
|
955
|
-
"0x5678901234567890123456789012345678901234567890123456789012345678", // attestation UID
|
|
956
|
-
"0x1234567890123456789012345678901234567890", // from address
|
|
957
|
-
BigInt(0) // value (optional)
|
|
958
|
-
);
|
|
959
|
-
|
|
960
|
-
console.log("Attestation revoked:", revokeResult.hash);
|
|
961
100
|
```
|
|
962
101
|
|
|
963
102
|
### Interfaces
|
|
964
103
|
|
|
965
|
-
####
|
|
966
|
-
|
|
967
|
-
Defined in: [sdk/eas/src/schema.ts:63](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L63)
|
|
968
|
-
|
|
969
|
-
Attestation data structure
|
|
970
|
-
|
|
971
|
-
##### Properties
|
|
972
|
-
|
|
973
|
-
| Property | Type | Description | Defined in |
|
|
974
|
-
| ------ | ------ | ------ | ------ |
|
|
975
|
-
| <a id="data"></a> `data` | `` `0x${string}` `` | Encoded attestation data | [sdk/eas/src/schema.ts:73](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L73) |
|
|
976
|
-
| <a id="expirationtime"></a> `expirationTime` | `bigint` | Expiration time (0 for no expiration) | [sdk/eas/src/schema.ts:67](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L67) |
|
|
977
|
-
| <a id="recipient"></a> `recipient` | `` `0x${string}` `` | Recipient of the attestation | [sdk/eas/src/schema.ts:65](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L65) |
|
|
978
|
-
| <a id="refuid"></a> `refUID` | `` `0x${string}` `` | Reference UID (use ZERO_BYTES32 for no reference) | [sdk/eas/src/schema.ts:71](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L71) |
|
|
979
|
-
| <a id="revocable"></a> `revocable` | `boolean` | Whether this attestation can be revoked | [sdk/eas/src/schema.ts:69](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L69) |
|
|
980
|
-
| <a id="value"></a> `value` | `bigint` | Value sent with the attestation | [sdk/eas/src/schema.ts:75](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L75) |
|
|
981
|
-
|
|
982
|
-
***
|
|
983
|
-
|
|
984
|
-
#### AttestationInfo
|
|
985
|
-
|
|
986
|
-
Defined in: [sdk/eas/src/schema.ts:115](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L115)
|
|
987
|
-
|
|
988
|
-
Attestation information
|
|
104
|
+
#### RegisterSchemaOptions
|
|
989
105
|
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
| Property | Type | Description | Defined in |
|
|
993
|
-
| ------ | ------ | ------ | ------ |
|
|
994
|
-
| <a id="attester"></a> `attester` | `` `0x${string}` `` | Address that created the attestation | [sdk/eas/src/schema.ts:121](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L121) |
|
|
995
|
-
| <a id="data-1"></a> `data` | `` `0x${string}` `` | Encoded attestation data | [sdk/eas/src/schema.ts:133](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L133) |
|
|
996
|
-
| <a id="expirationtime-1"></a> `expirationTime` | `bigint` | Expiration timestamp | [sdk/eas/src/schema.ts:127](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L127) |
|
|
997
|
-
| <a id="recipient-1"></a> `recipient` | `` `0x${string}` `` | Recipient of the attestation | [sdk/eas/src/schema.ts:123](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L123) |
|
|
998
|
-
| <a id="refuid-1"></a> `refUID` | `` `0x${string}` `` | Reference UID | [sdk/eas/src/schema.ts:131](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L131) |
|
|
999
|
-
| <a id="revocable-1"></a> `revocable` | `boolean` | Whether this attestation can be revoked | [sdk/eas/src/schema.ts:129](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L129) |
|
|
1000
|
-
| <a id="schema"></a> `schema` | `` `0x${string}` `` | Schema UID | [sdk/eas/src/schema.ts:119](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L119) |
|
|
1001
|
-
| <a id="time"></a> `time` | `bigint` | Creation timestamp | [sdk/eas/src/schema.ts:125](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L125) |
|
|
1002
|
-
| <a id="uid"></a> `uid` | `` `0x${string}` `` | Attestation UID | [sdk/eas/src/schema.ts:117](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L117) |
|
|
1003
|
-
| <a id="value-1"></a> `value` | `bigint` | Value sent with the attestation | [sdk/eas/src/schema.ts:135](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L135) |
|
|
1004
|
-
|
|
1005
|
-
***
|
|
1006
|
-
|
|
1007
|
-
#### AttestationRequest
|
|
1008
|
-
|
|
1009
|
-
Defined in: [sdk/eas/src/schema.ts:81](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L81)
|
|
1010
|
-
|
|
1011
|
-
Attestation request
|
|
1012
|
-
|
|
1013
|
-
##### Properties
|
|
1014
|
-
|
|
1015
|
-
| Property | Type | Description | Defined in |
|
|
1016
|
-
| ------ | ------ | ------ | ------ |
|
|
1017
|
-
| <a id="data-2"></a> `data` | [`AttestationData`](#attestationdata) | Attestation data | [sdk/eas/src/schema.ts:85](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L85) |
|
|
1018
|
-
| <a id="schema-1"></a> `schema` | `` `0x${string}` `` | Schema UID to attest against | [sdk/eas/src/schema.ts:83](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L83) |
|
|
1019
|
-
|
|
1020
|
-
***
|
|
1021
|
-
|
|
1022
|
-
#### DeploymentResult
|
|
1023
|
-
|
|
1024
|
-
Defined in: [sdk/eas/src/schema.ts:167](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L167)
|
|
1025
|
-
|
|
1026
|
-
Contract deployment result
|
|
1027
|
-
|
|
1028
|
-
##### Properties
|
|
1029
|
-
|
|
1030
|
-
| Property | Type | Description | Defined in |
|
|
1031
|
-
| ------ | ------ | ------ | ------ |
|
|
1032
|
-
| <a id="easaddress"></a> `easAddress` | `` `0x${string}` `` | Deployed EAS contract address | [sdk/eas/src/schema.ts:169](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L169) |
|
|
1033
|
-
| <a id="eastransactionhash"></a> `easTransactionHash?` | `` `0x${string}` `` | EAS deployment transaction hash (when address not immediately available) | [sdk/eas/src/schema.ts:173](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L173) |
|
|
1034
|
-
| <a id="schemaregistryaddress"></a> `schemaRegistryAddress` | `` `0x${string}` `` | Deployed Schema Registry contract address | [sdk/eas/src/schema.ts:171](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L171) |
|
|
1035
|
-
| <a id="schemaregistrytransactionhash"></a> `schemaRegistryTransactionHash?` | `` `0x${string}` `` | Schema Registry deployment transaction hash (when address not immediately available) | [sdk/eas/src/schema.ts:175](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L175) |
|
|
1036
|
-
|
|
1037
|
-
***
|
|
1038
|
-
|
|
1039
|
-
#### GetAttestationsOptions
|
|
1040
|
-
|
|
1041
|
-
Defined in: [sdk/eas/src/schema.ts:151](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L151)
|
|
1042
|
-
|
|
1043
|
-
Options for retrieving attestations
|
|
1044
|
-
|
|
1045
|
-
##### Properties
|
|
1046
|
-
|
|
1047
|
-
| Property | Type | Description | Defined in |
|
|
1048
|
-
| ------ | ------ | ------ | ------ |
|
|
1049
|
-
| <a id="attester-1"></a> `attester?` | `` `0x${string}` `` | Filter by attester address | [sdk/eas/src/schema.ts:159](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L159) |
|
|
1050
|
-
| <a id="limit"></a> `limit?` | `number` | Maximum number of attestations to return | [sdk/eas/src/schema.ts:153](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L153) |
|
|
1051
|
-
| <a id="offset"></a> `offset?` | `number` | Number of attestations to skip | [sdk/eas/src/schema.ts:155](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L155) |
|
|
1052
|
-
| <a id="recipient-2"></a> `recipient?` | `` `0x${string}` `` | Filter by recipient address | [sdk/eas/src/schema.ts:161](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L161) |
|
|
1053
|
-
| <a id="schema-2"></a> `schema?` | `` `0x${string}` `` | Filter by schema UID | [sdk/eas/src/schema.ts:157](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L157) |
|
|
1054
|
-
|
|
1055
|
-
***
|
|
1056
|
-
|
|
1057
|
-
#### GetSchemasOptions
|
|
1058
|
-
|
|
1059
|
-
Defined in: [sdk/eas/src/schema.ts:141](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L141)
|
|
1060
|
-
|
|
1061
|
-
Options for retrieving schemas
|
|
1062
|
-
|
|
1063
|
-
##### Properties
|
|
1064
|
-
|
|
1065
|
-
| Property | Type | Description | Defined in |
|
|
1066
|
-
| ------ | ------ | ------ | ------ |
|
|
1067
|
-
| <a id="limit-1"></a> `limit?` | `number` | Maximum number of schemas to return | [sdk/eas/src/schema.ts:143](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L143) |
|
|
1068
|
-
| <a id="offset-1"></a> `offset?` | `number` | Number of schemas to skip | [sdk/eas/src/schema.ts:145](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L145) |
|
|
1069
|
-
|
|
1070
|
-
***
|
|
1071
|
-
|
|
1072
|
-
#### SchemaData
|
|
1073
|
-
|
|
1074
|
-
Defined in: [sdk/eas/src/schema.ts:101](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L101)
|
|
106
|
+
Defined in: [sdk/eas/src/types.ts:34](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L34)
|
|
1075
107
|
|
|
1076
|
-
Schema
|
|
108
|
+
Options for registering a new schema in the EAS Schema Registry.
|
|
1077
109
|
|
|
1078
110
|
##### Properties
|
|
1079
111
|
|
|
1080
112
|
| Property | Type | Description | Defined in |
|
|
1081
113
|
| ------ | ------ | ------ | ------ |
|
|
1082
|
-
| <a id="
|
|
1083
|
-
| <a id="
|
|
1084
|
-
| <a id="
|
|
1085
|
-
| <a id="uid-1"></a> `uid` | `` `0x${string}` `` | Schema UID | [sdk/eas/src/schema.ts:103](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L103) |
|
|
114
|
+
| <a id="fields"></a> `fields` | [`SchemaField`](#schemafield)[] | Array of fields that make up the schema | [sdk/eas/src/types.ts:36](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L36) |
|
|
115
|
+
| <a id="resolveraddress"></a> `resolverAddress` | `string` | Address of the resolver contract that will handle attestations | [sdk/eas/src/types.ts:38](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L38) |
|
|
116
|
+
| <a id="revocable"></a> `revocable` | `boolean` | Whether attestations using this schema can be revoked | [sdk/eas/src/types.ts:40](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L40) |
|
|
1086
117
|
|
|
1087
118
|
***
|
|
1088
119
|
|
|
1089
120
|
#### SchemaField
|
|
1090
121
|
|
|
1091
|
-
Defined in: [sdk/eas/src/
|
|
122
|
+
Defined in: [sdk/eas/src/types.ts:22](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L22)
|
|
1092
123
|
|
|
1093
124
|
Represents a single field in an EAS schema.
|
|
1094
125
|
|
|
@@ -1096,59 +127,39 @@ Represents a single field in an EAS schema.
|
|
|
1096
127
|
|
|
1097
128
|
| Property | Type | Description | Defined in |
|
|
1098
129
|
| ------ | ------ | ------ | ------ |
|
|
1099
|
-
| <a id="description"></a> `description?` | `string` | Optional description of the field's purpose | [sdk/eas/src/
|
|
1100
|
-
| <a id="name"></a> `name` | `string` | The name of the field | [sdk/eas/src/
|
|
1101
|
-
| <a id="type"></a> `type` | `"string"` \| `"address"` \| `"bool"` \| `"bytes"` \| `"bytes32"` \| `"
|
|
1102
|
-
|
|
1103
|
-
***
|
|
1104
|
-
|
|
1105
|
-
#### SchemaRequest
|
|
1106
|
-
|
|
1107
|
-
Defined in: [sdk/eas/src/schema.ts:49](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L49)
|
|
1108
|
-
|
|
1109
|
-
Schema registration request
|
|
1110
|
-
|
|
1111
|
-
##### Properties
|
|
1112
|
-
|
|
1113
|
-
| Property | Type | Description | Defined in |
|
|
1114
|
-
| ------ | ------ | ------ | ------ |
|
|
1115
|
-
| <a id="fields"></a> `fields?` | [`SchemaField`](#schemafield)[] | Schema fields (alternative to schema string) | [sdk/eas/src/schema.ts:51](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L51) |
|
|
1116
|
-
| <a id="resolver-1"></a> `resolver` | `` `0x${string}` `` | Resolver contract address (use ZERO_ADDRESS for no resolver) | [sdk/eas/src/schema.ts:55](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L55) |
|
|
1117
|
-
| <a id="revocable-3"></a> `revocable` | `boolean` | Whether attestations using this schema can be revoked | [sdk/eas/src/schema.ts:57](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L57) |
|
|
1118
|
-
| <a id="schema-4"></a> `schema?` | `string` | Raw schema string (alternative to fields) | [sdk/eas/src/schema.ts:53](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L53) |
|
|
1119
|
-
|
|
1120
|
-
***
|
|
130
|
+
| <a id="description"></a> `description?` | `string` | Optional description of the field's purpose | [sdk/eas/src/types.ts:28](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L28) |
|
|
131
|
+
| <a id="name"></a> `name` | `string` | The name of the field | [sdk/eas/src/types.ts:24](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L24) |
|
|
132
|
+
| <a id="type"></a> `type` | `"string"` \| `"address"` \| `"bool"` \| `"bytes"` \| `"bytes32"` \| `"int8"` \| `"int256"` \| `"uint8"` \| `"uint256"` | The Solidity type of the field | [sdk/eas/src/types.ts:26](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L26) |
|
|
1121
133
|
|
|
1122
|
-
|
|
134
|
+
### Type Aliases
|
|
1123
135
|
|
|
1124
|
-
|
|
136
|
+
#### ClientOptions
|
|
1125
137
|
|
|
1126
|
-
|
|
138
|
+
> **ClientOptions** = `z.infer`\<*typeof* [`ClientOptionsSchema`](#clientoptionsschema)\>
|
|
1127
139
|
|
|
1128
|
-
|
|
140
|
+
Defined in: [sdk/eas/src/client-options.schema.ts:28](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/client-options.schema.ts#L28)
|
|
1129
141
|
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
| <a id="hash"></a> `hash` | `` `0x${string}` `` | Transaction hash | [sdk/eas/src/schema.ts:93](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L93) |
|
|
1133
|
-
| <a id="success"></a> `success` | `boolean` | Whether the transaction was successful | [sdk/eas/src/schema.ts:95](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L95) |
|
|
142
|
+
Configuration options for creating an EAS client.
|
|
143
|
+
Combines EAS-specific options with base Viem client options.
|
|
1134
144
|
|
|
1135
|
-
###
|
|
145
|
+
### Variables
|
|
1136
146
|
|
|
1137
|
-
####
|
|
147
|
+
#### ClientOptionsSchema
|
|
1138
148
|
|
|
1139
|
-
> **
|
|
149
|
+
> `const` **ClientOptionsSchema**: `ZodObject`\<\{ `accessToken`: `ZodString`; `attestationAddress`: `ZodString`; `chainId`: `ZodString`; `chainName`: `ZodString`; `rpcUrl`: `ZodString`; `schemaRegistryAddress`: `ZodString`; \}, `$strip`\>
|
|
1140
150
|
|
|
1141
|
-
Defined in: [sdk/eas/src/schema.ts:
|
|
151
|
+
Defined in: [sdk/eas/src/client-options.schema.ts:9](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/client-options.schema.ts#L9)
|
|
1142
152
|
|
|
1143
|
-
|
|
153
|
+
Schema for validating EAS client configuration options.
|
|
154
|
+
Extends the base Viem client options with EAS-specific requirements.
|
|
1144
155
|
|
|
1145
|
-
|
|
156
|
+
***
|
|
1146
157
|
|
|
1147
158
|
#### EAS\_FIELD\_TYPES
|
|
1148
159
|
|
|
1149
160
|
> `const` **EAS\_FIELD\_TYPES**: `object`
|
|
1150
161
|
|
|
1151
|
-
Defined in: [sdk/eas/src/
|
|
162
|
+
Defined in: [sdk/eas/src/types.ts:5](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L5)
|
|
1152
163
|
|
|
1153
164
|
Supported field types for EAS schema fields.
|
|
1154
165
|
Maps to the Solidity types that can be used in EAS schemas.
|
|
@@ -1157,35 +168,15 @@ Maps to the Solidity types that can be used in EAS schemas.
|
|
|
1157
168
|
|
|
1158
169
|
| Name | Type | Default value | Defined in |
|
|
1159
170
|
| ------ | ------ | ------ | ------ |
|
|
1160
|
-
| <a id="address"></a> `address` | `"address"` | `"address"` | [sdk/eas/src/
|
|
1161
|
-
| <a id="bool"></a> `bool` | `"bool"` | `"bool"` | [sdk/eas/src/
|
|
1162
|
-
| <a id="bytes"></a> `bytes` | `"bytes"` | `"bytes"` | [sdk/eas/src/
|
|
1163
|
-
| <a id="bytes32"></a> `bytes32` | `"bytes32"` | `"bytes32"` | [sdk/eas/src/
|
|
1164
|
-
| <a id="int256"></a> `int256` | `"int256"` | `"int256"` | [sdk/eas/src/
|
|
1165
|
-
| <a id="int8"></a> `int8` | `"int8"` | `"int8"` | [sdk/eas/src/
|
|
1166
|
-
| <a id="string"></a> `string` | `"string"` | `"string"` | [sdk/eas/src/
|
|
1167
|
-
| <a id="uint256"></a> `uint256` | `"uint256"` | `"uint256"` | [sdk/eas/src/
|
|
1168
|
-
| <a id="uint8"></a> `uint8` | `"uint8"` | `"uint8"` | [sdk/eas/src/
|
|
1169
|
-
|
|
1170
|
-
***
|
|
1171
|
-
|
|
1172
|
-
#### EASClientOptionsSchema
|
|
1173
|
-
|
|
1174
|
-
> `const` **EASClientOptionsSchema**: `ZodObject`\<\{ `accessToken`: `ZodOptional`\<`ZodString`\>; `debug`: `ZodOptional`\<`ZodBoolean`\>; `easContractAddress`: `ZodOptional`\<`ZodCustom`\<`` `0x${string}` ``, `` `0x${string}` ``\>\>; `instance`: `ZodString`; `schemaRegistryContractAddress`: `ZodOptional`\<`ZodCustom`\<`` `0x${string}` ``, `` `0x${string}` ``\>\>; \}, `$strip`\>
|
|
1175
|
-
|
|
1176
|
-
Defined in: [sdk/eas/src/utils/validation.ts:13](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/utils/validation.ts#L13)
|
|
1177
|
-
|
|
1178
|
-
Zod schema for EASClientOptions.
|
|
1179
|
-
|
|
1180
|
-
***
|
|
1181
|
-
|
|
1182
|
-
#### ZERO\_ADDRESS
|
|
1183
|
-
|
|
1184
|
-
> `const` **ZERO\_ADDRESS**: `"0x0000000000000000000000000000000000000000"` = `zeroAddress`
|
|
1185
|
-
|
|
1186
|
-
Defined in: [sdk/eas/src/schema.ts:8](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/schema.ts#L8)
|
|
1187
|
-
|
|
1188
|
-
Common address constants
|
|
171
|
+
| <a id="address"></a> `address` | `"address"` | `"address"` | [sdk/eas/src/types.ts:7](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L7) |
|
|
172
|
+
| <a id="bool"></a> `bool` | `"bool"` | `"bool"` | [sdk/eas/src/types.ts:8](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L8) |
|
|
173
|
+
| <a id="bytes"></a> `bytes` | `"bytes"` | `"bytes"` | [sdk/eas/src/types.ts:9](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L9) |
|
|
174
|
+
| <a id="bytes32"></a> `bytes32` | `"bytes32"` | `"bytes32"` | [sdk/eas/src/types.ts:10](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L10) |
|
|
175
|
+
| <a id="int256"></a> `int256` | `"int256"` | `"int256"` | [sdk/eas/src/types.ts:12](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L12) |
|
|
176
|
+
| <a id="int8"></a> `int8` | `"int8"` | `"int8"` | [sdk/eas/src/types.ts:14](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L14) |
|
|
177
|
+
| <a id="string"></a> `string` | `"string"` | `"string"` | [sdk/eas/src/types.ts:6](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L6) |
|
|
178
|
+
| <a id="uint256"></a> `uint256` | `"uint256"` | `"uint256"` | [sdk/eas/src/types.ts:11](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L11) |
|
|
179
|
+
| <a id="uint8"></a> `uint8` | `"uint8"` | `"uint8"` | [sdk/eas/src/types.ts:13](https://github.com/settlemint/sdk/blob/v2.3.14/sdk/eas/src/types.ts#L13) |
|
|
1189
180
|
|
|
1190
181
|
## Contributing
|
|
1191
182
|
|