@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.
Files changed (78) hide show
  1. package/README.md +27 -0
  2. package/build/abis/gooddollar-identity.d.ts +12 -0
  3. package/build/abis/gooddollar-identity.js +7 -0
  4. package/build/abis/gooddollar-identity.js.map +1 -1
  5. package/build/abis/self-registry.d.ts +194 -0
  6. package/build/abis/self-registry.js +120 -0
  7. package/build/abis/self-registry.js.map +1 -0
  8. package/build/abis/ubi-scheme.d.ts +79 -0
  9. package/build/abis/ubi-scheme.js +59 -0
  10. package/build/abis/ubi-scheme.js.map +1 -0
  11. package/build/analytics/amplitude.d.ts +5 -0
  12. package/build/analytics/amplitude.js +56 -0
  13. package/build/analytics/amplitude.js.map +1 -0
  14. package/build/analytics/config.d.ts +7 -0
  15. package/build/analytics/config.js +30 -0
  16. package/build/analytics/config.js.map +1 -0
  17. package/build/analytics/mcp-tool-events.d.ts +5 -0
  18. package/build/analytics/mcp-tool-events.js +56 -0
  19. package/build/analytics/mcp-tool-events.js.map +1 -0
  20. package/build/analytics/wrap-service.d.ts +5 -0
  21. package/build/analytics/wrap-service.js +36 -0
  22. package/build/analytics/wrap-service.js.map +1 -0
  23. package/build/clients/carbon-rest.d.ts +17 -0
  24. package/build/clients/carbon-rest.js +59 -0
  25. package/build/clients/carbon-rest.js.map +1 -0
  26. package/build/clients/carbon-sdk.d.ts +31 -0
  27. package/build/clients/carbon-sdk.js +48 -0
  28. package/build/clients/carbon-sdk.js.map +1 -0
  29. package/build/clients/self-api.d.ts +82 -0
  30. package/build/clients/self-api.js +242 -0
  31. package/build/clients/self-api.js.map +1 -0
  32. package/build/config/carbon.d.ts +12 -0
  33. package/build/config/carbon.js +13 -0
  34. package/build/config/carbon.js.map +1 -0
  35. package/build/config/gooddollar.d.ts +2 -0
  36. package/build/config/gooddollar.js +2 -0
  37. package/build/config/gooddollar.js.map +1 -1
  38. package/build/config/sdk-config.d.ts +14 -0
  39. package/build/config/sdk-config.js +16 -0
  40. package/build/config/sdk-config.js.map +1 -1
  41. package/build/config/self.d.ts +22 -0
  42. package/build/config/self.js +27 -0
  43. package/build/config/self.js.map +1 -0
  44. package/build/index.d.ts +18 -1
  45. package/build/index.js +28 -13
  46. package/build/index.js.map +1 -1
  47. package/build/services/carbon.service.d.ts +68 -0
  48. package/build/services/carbon.service.js +189 -0
  49. package/build/services/carbon.service.js.map +1 -0
  50. package/build/services/gooddollar.service.d.ts +41 -3
  51. package/build/services/gooddollar.service.js +164 -1
  52. package/build/services/gooddollar.service.js.map +1 -1
  53. package/build/services/self-session-store.d.ts +19 -0
  54. package/build/services/self-session-store.js +28 -0
  55. package/build/services/self-session-store.js.map +1 -0
  56. package/build/services/self.service.d.ts +241 -0
  57. package/build/services/self.service.js +692 -0
  58. package/build/services/self.service.js.map +1 -0
  59. package/build/types/carbon.d.ts +31 -0
  60. package/build/types/carbon.js +2 -0
  61. package/build/types/carbon.js.map +1 -0
  62. package/build/utils/carbon-prepared-flow.d.ts +11 -0
  63. package/build/utils/carbon-prepared-flow.js +25 -0
  64. package/build/utils/carbon-prepared-flow.js.map +1 -0
  65. package/build/utils/carbon-rest-adapter.d.ts +8 -0
  66. package/build/utils/carbon-rest-adapter.js +72 -0
  67. package/build/utils/carbon-rest-adapter.js.map +1 -0
  68. package/build/utils/self-format.d.ts +28 -0
  69. package/build/utils/self-format.js +79 -0
  70. package/build/utils/self-format.js.map +1 -0
  71. package/build/utils/self-signing.d.ts +4 -0
  72. package/build/utils/self-signing.js +38 -0
  73. package/build/utils/self-signing.js.map +1 -0
  74. package/package.json +7 -2
  75. package/tests/catalog/domains/carbon.ts +409 -0
  76. package/tests/catalog/domains/defi.ts +43 -0
  77. package/tests/catalog/domains/self.ts +63 -4
  78. 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 { GOODDOLLAR_IDENTITY_ADDRESS } from "../config/gooddollar.js";
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":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,aAAa,GAA2B;IAC5C,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,cAAc;IACjB,GAAG,EAAE,aAAa;CACnB,CAAC;AAEF,qFAAqF;AACrF,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAEtC,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;AAC5C,CAAC;AAED,0EAA0E;AAC1E,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,aAAgC;QAAhC,kBAAa,GAAb,aAAa,CAAmB;IAAG,CAAC;IAEjE;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAsB;QAC9C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,2BAA2B,CAAC;QAE7C,MAAM,CACJ,cAAc,EACd,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,EACpB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,QAAQ;gBACjB,GAAG,EAAE,qBAAqB;gBAC1B,YAAY,EAAE,YAAY;gBAC1B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,QAAQ;gBACjB,GAAG,EAAE,qBAAqB;gBAC1B,YAAY,EAAE,eAAe;gBAC7B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,QAAQ;gBACjB,GAAG,EAAE,qBAAqB;gBAC1B,YAAY,EAAE,sBAAsB;aACrC,CAAC;YACF,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC;SAChD,CAAC,CAAC;QAEH,MAAM,CACJ,iBAAiB,EACjB,SAAS,EACT,GAAG,EACH,oBAAoB,EACpB,MAAM,EACN,SAAS,EACV,GAAG,cAAc,CAAC;QAEnB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvC,IAAI,+BAA+B,GAAkB,IAAI,CAAC;QAC1D,IAAI,SAAS,KAAK,CAAC,IAAI,oBAAoB,GAAG,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClF,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAChD,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,CAAC,MAAM,CAC3B,CAAC;YACF,+BAA+B;gBAC7B,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;QACpD,CAAC;QAED,MAAM,mBAAmB,GAAG,SAAS,KAAK,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;QAEhE,MAAM,cAAc,GAClB,SAAS,KAAK,CAAC,IAAI,oBAAoB,GAAG,CAAC,IAAI,+BAA+B,KAAK,IAAI;YACrF,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAC9B,oBAAoB,EACpB,+BAA+B,EAC/B,MAAM,CAAC,2BAA2B,CAAC,CACpC;YACH,CAAC,CAAC,IAAI,CAAC;QAEX,OAAO;YACL,OAAO;YACP,QAAQ;YACR,sBAAsB;YACtB,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC;YACnC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;YACxE,mBAAmB,EACjB,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;YACxE,iBAAiB,EAAE;gBACjB,aAAa,EACX,8DAA8D;gBAChE,mBAAmB,EACjB,wGAAwG;aAC3G;YACD,cAAc;YACd,QAAQ,EAAE;gBACR,iBAAiB,EAAE,oBAAoB;gBACvC,SAAS,EAAE,YAAY;gBACvB,GAAG;gBACH,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,CAAC;gBAClD,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,YAAY;aACxB;SACF,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,iBAAyB,EACzB,SAAiB,EACjB,aAAqB;QAErB,IAAI,iBAAiB,GAAG,kBAAkB,EAAE,CAAC;YAC3C,OAAO,aAAa,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,MAA6D,EAC7D,QAA4C;QAE5C,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;oBACtC,OAAO,EAAE,QAAQ;oBACjB,GAAG,EAAE,qBAAqB;oBAC1B,YAAY,EAAE,qBAAqB;oBACnC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACtB,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,2BAA2B,CACjC,iBAAyB,EACzB,+BAAuC,EACvC,2BAAmC;QAEnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,MAAM,2BAA2B,GAAG,IAAI,CAAC,KAAK,CAC5C,CAAC,MAAM,GAAG,iBAAiB,CAAC,GAAG,KAAK,CACrC,CAAC;QACF,MAAM,+BAA+B,GACnC,+BAA+B,GAAG,2BAA2B,CAAC;QAChE,MAAM,+BAA+B,GACnC,iBAAiB,GAAG,+BAA+B,GAAG,KAAK,CAAC;QAC9D,MAAM,uBAAuB,GAAG,+BAA+B,GAAG,CAAC,CAAC;QACpE,MAAM,6BAA6B,GAAG,IAAI,CAAC,GAAG,CAC5C,GAAG,EACH,IAAI,CAAC,GAAG,CACN,CAAC,EACD,IAAI,CAAC,KAAK,CACR,CAAC,2BAA2B,GAAG,+BAA+B,CAAC;YAC7D,GAAG,CACN,CACF,CACF,CAAC;QAEF,OAAO;YACL,2BAA2B;YAC3B,+BAA+B;YAC/B,2BAA2B;YAC3B,+BAA+B;YAC/B,wBAAwB,EAAE,cAAc,CAAC,+BAA+B,CAAC;YACzE,6BAA6B;YAC7B,uBAAuB;SACxB,CAAC;IACJ,CAAC;CACF"}
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
+ }