@andrewkimjoseph/celina-sdk 0.2.12 → 0.4.0
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 +27 -0
- package/build/abis/gooddollar-identity.d.ts +12 -0
- package/build/abis/gooddollar-identity.js +7 -0
- package/build/abis/gooddollar-identity.js.map +1 -1
- package/build/abis/self-registry.d.ts +194 -0
- package/build/abis/self-registry.js +120 -0
- package/build/abis/self-registry.js.map +1 -0
- package/build/abis/ubi-scheme.d.ts +79 -0
- package/build/abis/ubi-scheme.js +59 -0
- package/build/abis/ubi-scheme.js.map +1 -0
- package/build/analytics/amplitude.d.ts +5 -0
- package/build/analytics/amplitude.js +56 -0
- package/build/analytics/amplitude.js.map +1 -0
- package/build/analytics/config.d.ts +7 -0
- package/build/analytics/config.js +30 -0
- package/build/analytics/config.js.map +1 -0
- package/build/analytics/mcp-tool-events.d.ts +5 -0
- package/build/analytics/mcp-tool-events.js +56 -0
- package/build/analytics/mcp-tool-events.js.map +1 -0
- package/build/analytics/wrap-service.d.ts +5 -0
- package/build/analytics/wrap-service.js +36 -0
- package/build/analytics/wrap-service.js.map +1 -0
- package/build/clients/carbon-rest.d.ts +17 -0
- package/build/clients/carbon-rest.js +59 -0
- package/build/clients/carbon-rest.js.map +1 -0
- package/build/clients/carbon-sdk.d.ts +31 -0
- package/build/clients/carbon-sdk.js +48 -0
- package/build/clients/carbon-sdk.js.map +1 -0
- package/build/clients/self-api.d.ts +82 -0
- package/build/clients/self-api.js +242 -0
- package/build/clients/self-api.js.map +1 -0
- package/build/config/carbon.d.ts +12 -0
- package/build/config/carbon.js +13 -0
- package/build/config/carbon.js.map +1 -0
- package/build/config/gooddollar.d.ts +2 -0
- package/build/config/gooddollar.js +2 -0
- package/build/config/gooddollar.js.map +1 -1
- package/build/config/sdk-config.d.ts +14 -0
- package/build/config/sdk-config.js +16 -0
- package/build/config/sdk-config.js.map +1 -1
- package/build/config/self.d.ts +22 -0
- package/build/config/self.js +27 -0
- package/build/config/self.js.map +1 -0
- package/build/index.d.ts +18 -1
- package/build/index.js +28 -13
- package/build/index.js.map +1 -1
- package/build/services/carbon.service.d.ts +68 -0
- package/build/services/carbon.service.js +189 -0
- package/build/services/carbon.service.js.map +1 -0
- package/build/services/gooddollar.service.d.ts +41 -3
- package/build/services/gooddollar.service.js +164 -1
- package/build/services/gooddollar.service.js.map +1 -1
- package/build/services/self-session-store.d.ts +19 -0
- package/build/services/self-session-store.js +28 -0
- package/build/services/self-session-store.js.map +1 -0
- package/build/services/self.service.d.ts +241 -0
- package/build/services/self.service.js +692 -0
- package/build/services/self.service.js.map +1 -0
- package/build/types/carbon.d.ts +31 -0
- package/build/types/carbon.js +2 -0
- package/build/types/carbon.js.map +1 -0
- package/build/utils/carbon-prepared-flow.d.ts +11 -0
- package/build/utils/carbon-prepared-flow.js +25 -0
- package/build/utils/carbon-prepared-flow.js.map +1 -0
- package/build/utils/carbon-rest-adapter.d.ts +8 -0
- package/build/utils/carbon-rest-adapter.js +72 -0
- package/build/utils/carbon-rest-adapter.js.map +1 -0
- package/build/utils/self-format.d.ts +28 -0
- package/build/utils/self-format.js +79 -0
- package/build/utils/self-format.js.map +1 -0
- package/build/utils/self-signing.d.ts +4 -0
- package/build/utils/self-signing.js +38 -0
- package/build/utils/self-signing.js.map +1 -0
- package/package.json +7 -2
- package/tests/catalog/domains/carbon.ts +409 -0
- package/tests/catalog/domains/defi.ts +43 -0
- package/tests/catalog/domains/self.ts +63 -4
- package/tests/catalog/operations.ts +2 -0
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoodDollar IdentityV4 whitelist and reverification reads on Celo mainnet.
|
|
3
|
+
*/
|
|
4
|
+
import { concat, encodeFunctionData, formatUnits } from "viem";
|
|
1
5
|
import { goodDollarIdentityAbi } from "../abis/gooddollar-identity.js";
|
|
2
|
-
import {
|
|
6
|
+
import { ubiSchemeAbi } from "../abis/ubi-scheme.js";
|
|
7
|
+
import { GOODDOLLAR_IDENTITY_ADDRESS, GOODDOLLAR_UBI_SCHEME_ADDRESS, } from "../config/gooddollar.js";
|
|
8
|
+
import { CELINA_DATA_SUFFIX } from "../config/celina-tag.js";
|
|
9
|
+
import { serializePreparedFlow, } from "../types/prepared.js";
|
|
3
10
|
import { formatUnixDate } from "../utils/format-date.js";
|
|
11
|
+
const G_DOLLAR_DECIMALS = 18;
|
|
12
|
+
const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
4
13
|
const STATUS_LABELS = {
|
|
5
14
|
0: "none",
|
|
6
15
|
1: "whitelisted",
|
|
@@ -12,12 +21,18 @@ const LEGACY_AUTH_CUTOFF = 1772697574;
|
|
|
12
21
|
function statusLabel(status) {
|
|
13
22
|
return STATUS_LABELS[status] ?? "unknown";
|
|
14
23
|
}
|
|
24
|
+
function taggedCalldata(data) {
|
|
25
|
+
return concat([data, CELINA_DATA_SUFFIX]);
|
|
26
|
+
}
|
|
15
27
|
/** GoodDollar IdentityV4 whitelist status and reverification progress. */
|
|
16
28
|
export class GoodDollarService {
|
|
17
29
|
clientFactory;
|
|
18
30
|
constructor(clientFactory) {
|
|
19
31
|
this.clientFactory = clientFactory;
|
|
20
32
|
}
|
|
33
|
+
getPublicClient() {
|
|
34
|
+
return this.clientFactory.getClients().public;
|
|
35
|
+
}
|
|
21
36
|
/**
|
|
22
37
|
* GoodDollar IdentityV4 whitelist status and reverification progress for a wallet.
|
|
23
38
|
* @param address - Wallet to check against IdentityV4
|
|
@@ -84,6 +99,154 @@ export class GoodDollarService {
|
|
|
84
99
|
},
|
|
85
100
|
};
|
|
86
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Daily UBI claim eligibility for a wallet against UBISchemeV2 on Celo.
|
|
104
|
+
* Resolves connected wallets via Identity `getWhitelistedRoot`.
|
|
105
|
+
*/
|
|
106
|
+
async getUbiClaimEligibility(address) {
|
|
107
|
+
const client = this.getPublicClient();
|
|
108
|
+
const ubiContract = GOODDOLLAR_UBI_SCHEME_ADDRESS;
|
|
109
|
+
const identityContract = GOODDOLLAR_IDENTITY_ADDRESS;
|
|
110
|
+
const [whitelistedRoot, claimableAmount, schemePaused, periodStart, estimatedDailyUbi, dailyUbi, whitelistingInfo,] = await Promise.all([
|
|
111
|
+
client.readContract({
|
|
112
|
+
address: identityContract,
|
|
113
|
+
abi: goodDollarIdentityAbi,
|
|
114
|
+
functionName: "getWhitelistedRoot",
|
|
115
|
+
args: [address],
|
|
116
|
+
}),
|
|
117
|
+
client.readContract({
|
|
118
|
+
address: ubiContract,
|
|
119
|
+
abi: ubiSchemeAbi,
|
|
120
|
+
functionName: "checkEntitlement",
|
|
121
|
+
args: [address],
|
|
122
|
+
}),
|
|
123
|
+
client.readContract({
|
|
124
|
+
address: ubiContract,
|
|
125
|
+
abi: ubiSchemeAbi,
|
|
126
|
+
functionName: "paused",
|
|
127
|
+
}),
|
|
128
|
+
client.readContract({
|
|
129
|
+
address: ubiContract,
|
|
130
|
+
abi: ubiSchemeAbi,
|
|
131
|
+
functionName: "periodStart",
|
|
132
|
+
}),
|
|
133
|
+
client.readContract({
|
|
134
|
+
address: ubiContract,
|
|
135
|
+
abi: ubiSchemeAbi,
|
|
136
|
+
functionName: "estimateNextDailyUBI",
|
|
137
|
+
}),
|
|
138
|
+
client.readContract({
|
|
139
|
+
address: ubiContract,
|
|
140
|
+
abi: ubiSchemeAbi,
|
|
141
|
+
functionName: "dailyUbi",
|
|
142
|
+
}),
|
|
143
|
+
this.getWhitelistingInfo(address),
|
|
144
|
+
]);
|
|
145
|
+
const root = whitelistedRoot;
|
|
146
|
+
const claimable = claimableAmount;
|
|
147
|
+
const nowSec = BigInt(Math.floor(Date.now() / 1000));
|
|
148
|
+
const schemeStarted = nowSec >= periodStart;
|
|
149
|
+
let alreadyClaimedToday = false;
|
|
150
|
+
if (root !== ZERO_ADDRESS) {
|
|
151
|
+
alreadyClaimedToday = await client.readContract({
|
|
152
|
+
address: ubiContract,
|
|
153
|
+
abi: ubiSchemeAbi,
|
|
154
|
+
functionName: "hasClaimed",
|
|
155
|
+
args: [root],
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
const reasons = [];
|
|
159
|
+
if (root === ZERO_ADDRESS) {
|
|
160
|
+
reasons.push("not whitelisted");
|
|
161
|
+
}
|
|
162
|
+
if (!whitelistingInfo.isCurrentlyWhitelisted) {
|
|
163
|
+
if (whitelistingInfo.reverification?.isReverificationOverdue) {
|
|
164
|
+
reasons.push("reverification overdue");
|
|
165
|
+
}
|
|
166
|
+
else if (root !== ZERO_ADDRESS) {
|
|
167
|
+
reasons.push("identity not currently whitelisted");
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (schemePaused) {
|
|
171
|
+
reasons.push("scheme paused");
|
|
172
|
+
}
|
|
173
|
+
if (!schemeStarted) {
|
|
174
|
+
reasons.push("scheme not started");
|
|
175
|
+
}
|
|
176
|
+
if (alreadyClaimedToday) {
|
|
177
|
+
reasons.push("already claimed today");
|
|
178
|
+
}
|
|
179
|
+
if (claimable === 0n && !alreadyClaimedToday && root !== ZERO_ADDRESS) {
|
|
180
|
+
reasons.push("no entitlement available");
|
|
181
|
+
}
|
|
182
|
+
const isEligibleToClaim = root !== ZERO_ADDRESS &&
|
|
183
|
+
!schemePaused &&
|
|
184
|
+
schemeStarted &&
|
|
185
|
+
whitelistingInfo.isCurrentlyWhitelisted &&
|
|
186
|
+
claimable > 0n;
|
|
187
|
+
return {
|
|
188
|
+
address,
|
|
189
|
+
contract: ubiContract,
|
|
190
|
+
whitelistedRoot: root === ZERO_ADDRESS ? null : root,
|
|
191
|
+
isConnectedWallet: root !== ZERO_ADDRESS &&
|
|
192
|
+
root.toLowerCase() !== address.toLowerCase(),
|
|
193
|
+
isEligibleToClaim,
|
|
194
|
+
claimableAmount: claimable.toString(),
|
|
195
|
+
claimableAmountFormatted: claimable > 0n ? `${formatUnits(claimable, G_DOLLAR_DECIMALS)} G$` : "0 G$",
|
|
196
|
+
alreadyClaimedToday,
|
|
197
|
+
schemePaused,
|
|
198
|
+
schemeStarted,
|
|
199
|
+
estimatedDailyUbi: estimatedDailyUbi.toString(),
|
|
200
|
+
estimatedDailyUbiFormatted: `${formatUnits(estimatedDailyUbi, G_DOLLAR_DECIMALS)} G$`,
|
|
201
|
+
currentDailyUbi: dailyUbi.toString(),
|
|
202
|
+
currentDailyUbiFormatted: `${formatUnits(dailyUbi, G_DOLLAR_DECIMALS)} G$`,
|
|
203
|
+
reasons: isEligibleToClaim ? [] : reasons,
|
|
204
|
+
identity: {
|
|
205
|
+
isCurrentlyWhitelisted: whitelistingInfo.isCurrentlyWhitelisted,
|
|
206
|
+
statusLabel: whitelistingInfo.statusLabel,
|
|
207
|
+
reverification: whitelistingInfo.reverification,
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Build an unsigned UBISchemeV2 `claim()` transaction for daily G$ UBI.
|
|
213
|
+
* Validates whitelist, entitlement, and simulates gas before returning steps.
|
|
214
|
+
*/
|
|
215
|
+
async prepareClaimUbi(from) {
|
|
216
|
+
const eligibility = await this.getUbiClaimEligibility(from);
|
|
217
|
+
if (!eligibility.isEligibleToClaim) {
|
|
218
|
+
const detail = eligibility.reasons.length > 0
|
|
219
|
+
? eligibility.reasons.join("; ")
|
|
220
|
+
: "not eligible to claim";
|
|
221
|
+
throw new Error(`Cannot claim GoodDollar UBI: ${detail}.`);
|
|
222
|
+
}
|
|
223
|
+
const publicClient = this.getPublicClient();
|
|
224
|
+
const claimData = taggedCalldata(encodeFunctionData({
|
|
225
|
+
abi: ubiSchemeAbi,
|
|
226
|
+
functionName: "claim",
|
|
227
|
+
}));
|
|
228
|
+
await publicClient.estimateContractGas({
|
|
229
|
+
account: from,
|
|
230
|
+
address: GOODDOLLAR_UBI_SCHEME_ADDRESS,
|
|
231
|
+
abi: ubiSchemeAbi,
|
|
232
|
+
functionName: "claim",
|
|
233
|
+
});
|
|
234
|
+
const flow = {
|
|
235
|
+
network: "mainnet",
|
|
236
|
+
from,
|
|
237
|
+
summary: `Claim daily GoodDollar UBI (${eligibility.claimableAmountFormatted})`,
|
|
238
|
+
steps: [
|
|
239
|
+
{
|
|
240
|
+
kind: "contract",
|
|
241
|
+
to: GOODDOLLAR_UBI_SCHEME_ADDRESS,
|
|
242
|
+
data: claimData,
|
|
243
|
+
value: "0",
|
|
244
|
+
description: "Claim daily GoodDollar UBI",
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
};
|
|
248
|
+
return serializePreparedFlow(flow);
|
|
249
|
+
}
|
|
87
250
|
effectiveAuthCount(dateAuthenticated, authCount, optionsLength) {
|
|
88
251
|
if (dateAuthenticated < LEGACY_AUTH_CUTOFF) {
|
|
89
252
|
return optionsLength - 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gooddollar.service.js","sourceRoot":"","sources":["../../src/services/gooddollar.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gooddollar.service.js","sourceRoot":"","sources":["../../src/services/gooddollar.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { SelfDeregistrationSession, SelfRefreshSession, SelfRegistrationSession } from "../clients/self-api.js";
|
|
2
|
+
export type SelfSessionKind = "registration" | "refresh" | "deregistration";
|
|
3
|
+
export type StoredSelfSession = {
|
|
4
|
+
kind: "registration";
|
|
5
|
+
session: SelfRegistrationSession;
|
|
6
|
+
createdAt: number;
|
|
7
|
+
} | {
|
|
8
|
+
kind: "refresh";
|
|
9
|
+
session: SelfRefreshSession;
|
|
10
|
+
createdAt: number;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "deregistration";
|
|
13
|
+
session: SelfDeregistrationSession;
|
|
14
|
+
createdAt: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function storeSelfSession(sessionToken: string, entry: StoredSelfSession): void;
|
|
17
|
+
export declare function getSelfSession(sessionToken: string): StoredSelfSession | undefined;
|
|
18
|
+
export declare function deleteSelfSession(sessionToken: string): void;
|
|
19
|
+
export declare function clearSelfSessionsForTests(): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SELF_MAX_SESSIONS, SELF_SESSION_TTL_MS } from "../config/self.js";
|
|
2
|
+
const sessions = new Map();
|
|
3
|
+
function pruneExpiredSessions() {
|
|
4
|
+
const now = Date.now();
|
|
5
|
+
for (const [key, entry] of sessions) {
|
|
6
|
+
if (now - entry.createdAt > SELF_SESSION_TTL_MS) {
|
|
7
|
+
sessions.delete(key);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function storeSelfSession(sessionToken, entry) {
|
|
12
|
+
pruneExpiredSessions();
|
|
13
|
+
if (sessions.size >= SELF_MAX_SESSIONS) {
|
|
14
|
+
throw new Error("Too many active Self sessions. Wait for existing sessions to expire (10 minutes) or restart the server.");
|
|
15
|
+
}
|
|
16
|
+
sessions.set(sessionToken, entry);
|
|
17
|
+
}
|
|
18
|
+
export function getSelfSession(sessionToken) {
|
|
19
|
+
pruneExpiredSessions();
|
|
20
|
+
return sessions.get(sessionToken);
|
|
21
|
+
}
|
|
22
|
+
export function deleteSelfSession(sessionToken) {
|
|
23
|
+
sessions.delete(sessionToken);
|
|
24
|
+
}
|
|
25
|
+
export function clearSelfSessionsForTests() {
|
|
26
|
+
sessions.clear();
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=self-session-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-session-store.js","sourceRoot":"","sources":["../../src/services/self-session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA0B3E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEtD,SAAS,oBAAoB;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,mBAAmB,EAAE,CAAC;YAChD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,YAAoB,EACpB,KAAwB;IAExB,oBAAoB,EAAE,CAAC;IAEvB,IAAI,QAAQ,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,oBAAoB,EAAE,CAAC;IACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { type Hex } from "viem";
|
|
2
|
+
import type { SelfRegistrationMode } from "../config/self.js";
|
|
3
|
+
import type { SdkConfig } from "../config/sdk-config.js";
|
|
4
|
+
import type { CeloClientFactory } from "../clients/celo-client.js";
|
|
5
|
+
export interface VerifySelfAgentParams {
|
|
6
|
+
agentAddress: `0x${string}`;
|
|
7
|
+
requireAge?: 0 | 18 | 21;
|
|
8
|
+
requireOfac?: boolean;
|
|
9
|
+
requireSelfProvider?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface VerifySelfRequestParams {
|
|
12
|
+
agentSignature: Hex;
|
|
13
|
+
agentTimestamp: string;
|
|
14
|
+
method: string;
|
|
15
|
+
path: string;
|
|
16
|
+
body?: string;
|
|
17
|
+
keytype?: string;
|
|
18
|
+
agentKey?: Hex;
|
|
19
|
+
}
|
|
20
|
+
export interface RegisterSelfAgentParams {
|
|
21
|
+
mode?: SelfRegistrationMode;
|
|
22
|
+
minimumAge?: 0 | 18 | 21;
|
|
23
|
+
ofac?: boolean;
|
|
24
|
+
humanAddress?: `0x${string}`;
|
|
25
|
+
agentName?: string;
|
|
26
|
+
agentDescription?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class SelfService {
|
|
29
|
+
private readonly clientFactory;
|
|
30
|
+
private readonly config;
|
|
31
|
+
constructor(clientFactory: CeloClientFactory, config: Pick<SdkConfig, "selfAgentPrivateKey" | "selfApiBase">);
|
|
32
|
+
private get apiBase();
|
|
33
|
+
private resolveAgentPrivateKey;
|
|
34
|
+
private registryClient;
|
|
35
|
+
private assertProofRefreshEligible;
|
|
36
|
+
verifyAgent(params: VerifySelfAgentParams): Promise<{
|
|
37
|
+
verified: boolean;
|
|
38
|
+
agent_address: `0x${string}`;
|
|
39
|
+
reason: string;
|
|
40
|
+
network: "mainnet";
|
|
41
|
+
} | {
|
|
42
|
+
verification_strength: string;
|
|
43
|
+
network: "mainnet";
|
|
44
|
+
sibling_agent_ids: number[];
|
|
45
|
+
proof_expires_at: string | null;
|
|
46
|
+
days_until_expiry: number;
|
|
47
|
+
is_expiring_soon: boolean;
|
|
48
|
+
verified: boolean;
|
|
49
|
+
agent_address: `0x${string}`;
|
|
50
|
+
agent_id: number;
|
|
51
|
+
reason: string;
|
|
52
|
+
credentials: {
|
|
53
|
+
nationality: string | undefined;
|
|
54
|
+
older_than: number;
|
|
55
|
+
ofac_clear: boolean;
|
|
56
|
+
};
|
|
57
|
+
} | {
|
|
58
|
+
verification_strength: string;
|
|
59
|
+
registered_at: number;
|
|
60
|
+
agent_count: number;
|
|
61
|
+
is_proof_fresh: boolean;
|
|
62
|
+
network: "mainnet";
|
|
63
|
+
sibling_agent_ids: number[];
|
|
64
|
+
proof_expires_at: string | null;
|
|
65
|
+
days_until_expiry: number;
|
|
66
|
+
is_expiring_soon: boolean;
|
|
67
|
+
verified: boolean;
|
|
68
|
+
agent_address: `0x${string}`;
|
|
69
|
+
agent_id: number;
|
|
70
|
+
credentials: {
|
|
71
|
+
nationality: string | undefined;
|
|
72
|
+
older_than: number;
|
|
73
|
+
ofac_clear: boolean;
|
|
74
|
+
};
|
|
75
|
+
reason?: undefined;
|
|
76
|
+
}>;
|
|
77
|
+
lookupAgent(agentId: number): Promise<{
|
|
78
|
+
is_expired: boolean;
|
|
79
|
+
network: "mainnet";
|
|
80
|
+
proof_expires_at: string | null;
|
|
81
|
+
days_until_expiry: number;
|
|
82
|
+
is_expiring_soon: boolean;
|
|
83
|
+
credentialsSummary: string;
|
|
84
|
+
}>;
|
|
85
|
+
verifyRequest(params: VerifySelfRequestParams): Promise<{
|
|
86
|
+
valid: boolean;
|
|
87
|
+
reason: string;
|
|
88
|
+
agent_address?: undefined;
|
|
89
|
+
agent_id?: undefined;
|
|
90
|
+
agent_count?: undefined;
|
|
91
|
+
nullifier?: undefined;
|
|
92
|
+
credentials?: undefined;
|
|
93
|
+
note?: undefined;
|
|
94
|
+
} | {
|
|
95
|
+
valid: boolean;
|
|
96
|
+
agent_address: `0x${string}`;
|
|
97
|
+
reason: string;
|
|
98
|
+
agent_id?: undefined;
|
|
99
|
+
agent_count?: undefined;
|
|
100
|
+
nullifier?: undefined;
|
|
101
|
+
credentials?: undefined;
|
|
102
|
+
note?: undefined;
|
|
103
|
+
} | {
|
|
104
|
+
valid: boolean;
|
|
105
|
+
agent_address: `0x${string}`;
|
|
106
|
+
agent_id: number;
|
|
107
|
+
reason: string;
|
|
108
|
+
agent_count?: undefined;
|
|
109
|
+
nullifier?: undefined;
|
|
110
|
+
credentials?: undefined;
|
|
111
|
+
note?: undefined;
|
|
112
|
+
} | {
|
|
113
|
+
valid: boolean;
|
|
114
|
+
agent_address: `0x${string}`;
|
|
115
|
+
agent_id: number;
|
|
116
|
+
agent_count: number;
|
|
117
|
+
nullifier: number;
|
|
118
|
+
credentials: {
|
|
119
|
+
nationality: string | undefined;
|
|
120
|
+
older_than: number;
|
|
121
|
+
ofac_clear: boolean;
|
|
122
|
+
};
|
|
123
|
+
note: string;
|
|
124
|
+
reason?: undefined;
|
|
125
|
+
}>;
|
|
126
|
+
private getAgentInfoFromKey;
|
|
127
|
+
getIdentity(): Promise<{
|
|
128
|
+
expiry_warning?: string | undefined;
|
|
129
|
+
is_expired: boolean;
|
|
130
|
+
sibling_agent_ids: number[];
|
|
131
|
+
network: "mainnet";
|
|
132
|
+
proof_expires_at: string | null;
|
|
133
|
+
days_until_expiry: number;
|
|
134
|
+
is_expiring_soon: boolean;
|
|
135
|
+
registered: true;
|
|
136
|
+
address: `0x${string}`;
|
|
137
|
+
agentKey: `0x${string}`;
|
|
138
|
+
agentId: number;
|
|
139
|
+
isVerified: boolean;
|
|
140
|
+
nullifier: number;
|
|
141
|
+
agentCount: number;
|
|
142
|
+
verificationStrength: string;
|
|
143
|
+
credentials_summary: string;
|
|
144
|
+
} | {
|
|
145
|
+
message: string;
|
|
146
|
+
registered: false;
|
|
147
|
+
address: `0x${string}`;
|
|
148
|
+
network: "mainnet";
|
|
149
|
+
}>;
|
|
150
|
+
registerAgent(params?: RegisterSelfAgentParams): Promise<{
|
|
151
|
+
session_id: string;
|
|
152
|
+
qr_code_url: string;
|
|
153
|
+
qr_url: string;
|
|
154
|
+
deep_link: string;
|
|
155
|
+
expires_at: string;
|
|
156
|
+
instructions: string;
|
|
157
|
+
}>;
|
|
158
|
+
checkRegistration(sessionId: string): Promise<{
|
|
159
|
+
status: "deregistered";
|
|
160
|
+
message: string;
|
|
161
|
+
proof_expires_at?: undefined;
|
|
162
|
+
agent_id?: undefined;
|
|
163
|
+
agent_address?: undefined;
|
|
164
|
+
private_key_hex?: undefined;
|
|
165
|
+
tx_hash?: undefined;
|
|
166
|
+
} | {
|
|
167
|
+
status: "refreshed";
|
|
168
|
+
proof_expires_at: string;
|
|
169
|
+
message: string;
|
|
170
|
+
agent_id?: undefined;
|
|
171
|
+
agent_address?: undefined;
|
|
172
|
+
private_key_hex?: undefined;
|
|
173
|
+
tx_hash?: undefined;
|
|
174
|
+
} | {
|
|
175
|
+
status: "verified";
|
|
176
|
+
agent_id: number;
|
|
177
|
+
agent_address: string;
|
|
178
|
+
private_key_hex: string;
|
|
179
|
+
tx_hash: string | undefined;
|
|
180
|
+
message: string;
|
|
181
|
+
proof_expires_at?: undefined;
|
|
182
|
+
} | {
|
|
183
|
+
status: "pending";
|
|
184
|
+
message: string;
|
|
185
|
+
proof_expires_at?: undefined;
|
|
186
|
+
agent_id?: undefined;
|
|
187
|
+
agent_address?: undefined;
|
|
188
|
+
private_key_hex?: undefined;
|
|
189
|
+
tx_hash?: undefined;
|
|
190
|
+
} | {
|
|
191
|
+
status: "expired";
|
|
192
|
+
message: string;
|
|
193
|
+
proof_expires_at?: undefined;
|
|
194
|
+
agent_id?: undefined;
|
|
195
|
+
agent_address?: undefined;
|
|
196
|
+
private_key_hex?: undefined;
|
|
197
|
+
tx_hash?: undefined;
|
|
198
|
+
}>;
|
|
199
|
+
refreshProof(params?: {
|
|
200
|
+
agentId?: number;
|
|
201
|
+
}): Promise<{
|
|
202
|
+
session_id: string;
|
|
203
|
+
qr_code_url: string;
|
|
204
|
+
qr_url: string;
|
|
205
|
+
deep_link: string;
|
|
206
|
+
expires_at: string;
|
|
207
|
+
instructions: string;
|
|
208
|
+
}>;
|
|
209
|
+
deregisterAgent(): Promise<{
|
|
210
|
+
session_id: string;
|
|
211
|
+
qr_code_url: string;
|
|
212
|
+
qr_url: string;
|
|
213
|
+
deep_link: string;
|
|
214
|
+
expires_at: string;
|
|
215
|
+
instructions: string;
|
|
216
|
+
}>;
|
|
217
|
+
signRequest(params: {
|
|
218
|
+
method: string;
|
|
219
|
+
url: string;
|
|
220
|
+
body?: string;
|
|
221
|
+
}): Promise<{
|
|
222
|
+
headers: {
|
|
223
|
+
"x-self-agent-address": `0x${string}`;
|
|
224
|
+
"x-self-agent-signature": `0x${string}`;
|
|
225
|
+
"x-self-agent-timestamp": string;
|
|
226
|
+
};
|
|
227
|
+
instructions: string;
|
|
228
|
+
}>;
|
|
229
|
+
authenticatedFetch(params: {
|
|
230
|
+
method: string;
|
|
231
|
+
url: string;
|
|
232
|
+
body?: string;
|
|
233
|
+
contentType?: string;
|
|
234
|
+
}): Promise<{
|
|
235
|
+
status: number;
|
|
236
|
+
body: string;
|
|
237
|
+
truncated: boolean;
|
|
238
|
+
}>;
|
|
239
|
+
/** Reserved for future on-chain Self writes (e.g. metadata updates). */
|
|
240
|
+
protected taggedCalldata(data: Hex): Hex;
|
|
241
|
+
}
|