@zkproofport-ai/sdk 0.2.13 → 0.2.15

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Client SDK for ZKProofport zero-knowledge proofs, including experimental exact-action authorization on Arc Testnet.
4
4
 
5
- The shared `hashTypedAction` helper and corrected Arc stepwise signing require SDK/MCP **0.2.12 or later**. Release Please owns the versions. Confirm the resolved npm versions before using this path.
5
+ The shared `hashTypedAction` helper is available from **SDK 0.2.12**. Arc/GIWA optional actions require **SDK 0.2.14 or later**; MCP stepwise input preparation requires **MCP 0.2.15 or later**. Release Please owns the versions. Confirm the resolved npm versions before using this path.
6
6
 
7
7
  ## Overview
8
8
 
@@ -85,7 +85,7 @@ An endpoint without that key receives readable circuit inputs over HTTPS and pro
85
85
  npm install @zkproofport-ai/sdk@latest ethers
86
86
  ```
87
87
 
88
- Corrected Arc stepwise support and shared action hashing require SDK/MCP **0.2.12 or later**. Install from npm and check the resolved version. Release Please manages package versions and the release workflow publishes them; repository source changes alone do not update `@latest`.
88
+ Use **SDK 0.2.14 or later** and **MCP 0.2.15 or later** for both Arc/GIWA signature modes, including stepwise preparation. Install from npm and check the resolved version. Release Please manages package versions and the release workflow publishes them; repository source changes alone do not update `@latest`.
89
89
 
90
90
  ## Prerequisites
91
91
 
@@ -101,6 +101,8 @@ Corrected Arc stepwise support and shared action hashing require SDK/MCP **0.2.1
101
101
 
102
102
  **For the circuits that can bind an action** (`arc_eligibility`, `giwa_attestation`): the attestation above for whichever one you ask for. What differs is what the wallet signs, and the action is **optional** — see below.
103
103
 
104
+ **One wallet has a different nullifier per circuit, and for the circuits above it does not depend on what you signed.** `arc_eligibility` and `giwa_attestation` derive it from your address, the circuit's own identifier and the scope, so the same wallet in the same scope gives the same nullifier whether or not you bind an action. The Coinbase circuits derive theirs from the signed challenge instead. Nothing to configure — the SDK picks the rule the circuit expects, and refuses a circuit it has no rule for rather than guessing one. Requires **0.2.14 or later**; earlier versions sent the Coinbase rule for every circuit, which a GIWA proof rejects as a nullifier mismatch.
105
+
104
106
  ## Quick Start
105
107
 
106
108
  ```typescript
@@ -648,7 +650,7 @@ function fromSigner(signer: ethers.Signer): ProofportSigner;
648
650
  ```typescript
649
651
  interface ProofParams {
650
652
  circuit: CircuitName;
651
- action?: { domain: { name: string; version: string; chainId: number; verifyingContract: string }; types: Record<string, Array<{name: string; type: string}>>; primaryType: string; message: Record<string, unknown> }; // required only for arc_eligibility
653
+ action?: { domain: { name: string; version: string; chainId: number; verifyingContract: string }; types: Record<string, Array<{name: string; type: string}>>; primaryType: string; message: Record<string, unknown> }; // optional for arc_eligibility and giwa_attestation
652
654
  payOn?: string;
653
655
  maxPayment?: string; // decimal USDC
654
656
  approvedPayment?: ApprovedPayment;
@@ -745,3 +747,32 @@ Common errors:
745
747
  ## License
746
748
 
747
749
  MIT
750
+
751
+
752
+ ### Testing the published packages
753
+
754
+ From the `proofport-ai` repository root, use the isolated registry runner:
755
+
756
+ ```bash
757
+ E2E_BASE_URL=https://stg-ai.zkproofport.app \
758
+ E2E_PAYMENT_NETWORK=base-sepolia \
759
+ npm run test:e2e:published -- --sdk-version 0.2.14 --mcp-version 0.2.15
760
+ ```
761
+
762
+ It installs those exact npm versions outside the workspace, resolves SDK imports
763
+ and the MCP process to that installation, and removes it afterwards. The runner
764
+ also installs and verifies Circle CLI 1.1.4, automatically putting it on the test
765
+ subprocess PATH without changing the global installation. A normal
766
+ workspace test run exercises local packages and is not published-package evidence.
767
+ The full suite creates paid testnet proofs. It requires the attestation and payer
768
+ credentials loaded by `tests/setup.ts`; GIWA uses `GIWA_ATTESTATION_KEY`, and OIDC
769
+ uses `E2E_OIDC_JWT` or an authenticated gcloud account. The payment matrix checks
770
+ Base Sepolia, Arc immediate settlement, Ethereum Sepolia, and Arc Gateway nano
771
+ separately, so each needs a funded payer on its selected network. Optional
772
+ `E2E_PAYER_KEY_<NETWORK>` overrides use uppercase names with underscores, for
773
+ example `E2E_PAYER_KEY_ETHEREUM_SEPOLIA`. `E2E_ARC_AGENT_ADDRESS` selects an
774
+ existing Circle Agent Wallet for both Arc cases; the supported Circle CLI,
775
+ on-chain USDC for immediate settlement, and Gateway USDC for nano are required. The runner never deposits or transfers funds.
776
+
777
+ For a non-paying package/discovery check, append
778
+ `-t 'should list all 5 circuits'`. This checks discovery only, not proof generation.
@@ -53,12 +53,5 @@ export declare function recoverAttesterPubkey(rawTransaction: string): string;
53
53
  * Get the signer address from a recovered public key.
54
54
  */
55
55
  export declare function getSignerAddress(pubkey: string): string;
56
- /**
57
- * Full attestation fetch pipeline:
58
- * 1. Query EAS GraphQL for the latest attestation
59
- * 2. Fetch the raw transaction from RPC
60
- * 3. Validate transaction fields
61
- * 4. Return attestation + raw transaction
62
- */
63
56
  export declare function fetchAttestation(config: ClientConfig, circuitId: CircuitId, recipientAddress: string): Promise<AttestationData>;
64
57
  //# sourceMappingURL=attestation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyC3F;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC,CAkCzB;AAID;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CA2DjB;AAID;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAChE,GAAG,MAAM,CAuBT;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBpC;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CA0BpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAID;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,eAAe,CAAC,CAyB1B"}
1
+ {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyC3F;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC,CAkCzB;AAID;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CA2DjB;AAID;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAChE,GAAG,MAAM,CAuBT;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,SAAS,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAwBpC;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CA0BpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAsED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,eAAe,CAAC,CAiC1B"}
@@ -1,5 +1,5 @@
1
1
  import { ethers } from 'ethers';
2
- import { CIRCUITS, COINBASE_ATTESTER_CONTRACT, DEFAULT_EAS_GRAPHQL, DEFAULT_EAS_RPC } from './constants.js';
2
+ import { CIRCUITS, DEFAULT_EAS_GRAPHQL, DEFAULT_EAS_RPC, attestationSource, } from './constants.js';
3
3
  // ─── GraphQL query ──────────────────────────────────────────────────────
4
4
  const EAS_ATTESTATIONS_QUERY = `
5
5
  query GetAttestations($schemaId: String!, $recipient: String!) {
@@ -159,11 +159,13 @@ export function reconstructRawTransaction(txData) {
159
159
  */
160
160
  export function validateAttestationTx(rawTransaction, circuitId) {
161
161
  const tx = ethers.Transaction.from(rawTransaction);
162
- // Check destination
163
- if (!tx.to || tx.to.toLowerCase() !== COINBASE_ATTESTER_CONTRACT.toLowerCase()) {
162
+ // Check destination: the attester contract THIS circuit's attestation must
163
+ // have been sent to, from the one table that knows.
164
+ const expectedAttester = attestationSource(circuitId).contract;
165
+ if (!tx.to || tx.to.toLowerCase() !== expectedAttester.toLowerCase()) {
164
166
  return {
165
167
  valid: false,
166
- error: `Transaction destination ${tx.to} does not match Coinbase Attester Contract ${COINBASE_ATTESTER_CONTRACT}`,
168
+ error: `Transaction destination ${tx.to} does not match the attester contract for ${circuitId}: ${expectedAttester}`,
167
169
  };
168
170
  }
169
171
  // Check function selector
@@ -219,7 +221,66 @@ export function getSignerAddress(pubkey) {
219
221
  * 3. Validate transaction fields
220
222
  * 4. Return attestation + raw transaction
221
223
  */
224
+ /**
225
+ * The GIWA attestation for a wallet, found by reading our attester's own calls.
226
+ *
227
+ * Not an EAS query: GIWA's attester is ours on GIWA Sepolia and nothing indexes
228
+ * it. Asking Base's EAS for a GIWA wallet does not fail cleanly either -- the
229
+ * schema id is absent, so the request comes back HTTP 400 and reads like a
230
+ * broken endpoint rather than "wrong chain".
231
+ */
232
+ async function fetchGiwaAttestation(source, recipientAddress) {
233
+ const attester = ethers.getAddress(source.signers[0]);
234
+ const wanted = ethers.getAddress(recipientAddress);
235
+ const listUrl = `${source.explorer}/api?module=account&action=txlist` +
236
+ `&address=${attester}&sort=desc&page=1&offset=100`;
237
+ const listResponse = await fetch(listUrl);
238
+ if (!listResponse.ok) {
239
+ throw new Error(`GIWA explorer request failed: HTTP ${listResponse.status}`);
240
+ }
241
+ const listBody = (await listResponse.json());
242
+ const calls = Array.isArray(listBody.result)
243
+ ? listBody.result
244
+ : [];
245
+ const ATTEST_ACCOUNT = '0x56feed5e';
246
+ const match = calls.find((tx) => {
247
+ if (!tx.to || ethers.getAddress(tx.to) !== ethers.getAddress(source.contract))
248
+ return false;
249
+ if (!tx.input?.toLowerCase().startsWith(ATTEST_ACCOUNT) || tx.input.length < 74)
250
+ return false;
251
+ try {
252
+ return ethers.getAddress('0x' + tx.input.slice(34, 74)) === wanted;
253
+ }
254
+ catch {
255
+ return false;
256
+ }
257
+ });
258
+ if (!match) {
259
+ throw new Error(`No GIWA attestation found for ${recipientAddress} on GIWA Sepolia. ` +
260
+ 'This is not a Coinbase attestation -- the wallet must be attested by GIWA.');
261
+ }
262
+ const rawTransaction = await fetchRawTransaction(source.rpc, match.hash);
263
+ return {
264
+ attestation: {
265
+ id: match.hash,
266
+ txid: match.hash,
267
+ recipient: wanted,
268
+ attester,
269
+ time: 0,
270
+ expirationTime: 0,
271
+ schemaId: '',
272
+ },
273
+ rawTransaction,
274
+ };
275
+ }
222
276
  export async function fetchAttestation(config, circuitId, recipientAddress) {
277
+ // Which chain attests THIS circuit, and how it is found. Coinbase's are
278
+ // indexed by EAS on Base Mainnet; GIWA's are not indexed at all, so they are
279
+ // read from our attester's own calls.
280
+ const source = attestationSource(circuitId);
281
+ if (source.kind === 'giwa-sepolia') {
282
+ return fetchGiwaAttestation(source, recipientAddress);
283
+ }
223
284
  // EAS attestations are ALWAYS on Base Mainnet — never configurable
224
285
  const easGraphqlUrl = DEFAULT_EAS_GRAPHQL;
225
286
  const easRpcUrl = DEFAULT_EAS_RPC;
@@ -1 +1 @@
1
- {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,53 @@ export declare const CIRCUITS: Record<CircuitId, {
12
12
  }>;
13
13
  export declare const COINBASE_ATTESTER_CONTRACT = "0x357458739F90461b99789350868CD7CF330Dd7EE";
14
14
  export declare const AUTHORIZED_SIGNERS: string[];
15
+ /** MockGiwaAttester on GIWA Sepolia -- the `to` of a GIWA attest transaction. */
16
+ export declare const GIWA_ATTESTER_CONTRACT = "0x6646d970499BBeD728636823A5A7e551E811b414";
17
+ /** The one address that signs GIWA attest transactions. */
18
+ export declare const GIWA_AUTHORIZED_SIGNERS: string[];
19
+ /**
20
+ * GIWA Sepolia, where giwa_attestation is attested and verified.
21
+ *
22
+ * Constants, not configuration, for the same reason the EAS endpoints below
23
+ * are: a customer has no reason to point this at another chain, and letting
24
+ * them would only produce proofs against an attester nobody accepts.
25
+ */
26
+ export declare const GIWA_RPC = "https://sepolia-rpc.giwa.io/";
27
+ export declare const GIWA_EXPLORER = "https://sepolia-explorer.giwa.io";
28
+ export declare const GIWA_CHAIN_ID = 91342;
29
+ /**
30
+ * Where THIS circuit's attestation lives, and who is allowed to have signed it.
31
+ *
32
+ * One table, keyed by circuit id, `Record<CircuitId, …>` so a new circuit
33
+ * without an entry is a compile error. It replaces three separate two-branch
34
+ * tests -- which attester contract, which signer list, which lookup -- each of
35
+ * which ended on Coinbase's values for anything that was not GIWA. That is the
36
+ * shape this repo bans: a circuit nobody added would not fail, it would be
37
+ * checked against Coinbase's attester and proved against Coinbase's signers.
38
+ *
39
+ * `null` is not "unknown": it is a circuit with no attestation transaction at
40
+ * all. OIDC's signature is inside the identity token.
41
+ */
42
+ export type AttestationSource = {
43
+ kind: 'eas-base';
44
+ contract: string;
45
+ signers: readonly string[];
46
+ } | {
47
+ kind: 'giwa-sepolia';
48
+ contract: string;
49
+ signers: readonly string[];
50
+ chainId: number;
51
+ rpc: string;
52
+ explorer: string;
53
+ };
54
+ export declare const ATTESTATION_SOURCES: Record<CircuitId, AttestationSource | null>;
55
+ /**
56
+ * The attestation source for a circuit, or an error naming the circuit.
57
+ *
58
+ * Two different failures, said differently: a circuit this build has never
59
+ * heard of, and a circuit that genuinely has no attestation to fetch.
60
+ */
61
+ export declare function attestationSource(circuitId: CircuitId): AttestationSource;
15
62
  export declare const DEFAULT_EAS_GRAPHQL = "https://base.easscan.org/graphql";
16
63
  export declare const DEFAULT_EAS_RPC = "https://base.drpc.org";
17
64
  export declare const RAW_TX_PADDED_LENGTH = 300;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CA2BA,CAAC;AAEF,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAEvF,eAAO,MAAM,kBAAkB,UAK9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,qCAAqC,CAAC;AAKtE,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CA2BA,CAAC;AAEF,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAEvF,eAAO,MAAM,kBAAkB,UAK9B,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,+CAA+C,CAAC;AAEnF,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,UAAiD,CAAC;AAEtF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,iCAAiC,CAAC;AACvD,eAAO,MAAM,aAAa,qCAAqC,CAAC;AAChE,eAAO,MAAM,aAAa,QAAQ,CAAC;AAEnC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3H,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAyB3E,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,iBAAiB,CAazE;AAED,eAAO,MAAM,mBAAmB,qCAAqC,CAAC;AAKtE,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,KAAK,CAAC"}
package/dist/constants.js CHANGED
@@ -39,6 +39,62 @@ export const AUTHORIZED_SIGNERS = [
39
39
  '0x88fe64ea2e121f49bb77abea6c0a45e93638c3c5',
40
40
  '0x44ace9abb148e8412ac4492e9a1ae6bd88226803',
41
41
  ];
42
+ /** MockGiwaAttester on GIWA Sepolia -- the `to` of a GIWA attest transaction. */
43
+ export const GIWA_ATTESTER_CONTRACT = '0x6646d970499BBeD728636823A5A7e551E811b414';
44
+ /** The one address that signs GIWA attest transactions. */
45
+ export const GIWA_AUTHORIZED_SIGNERS = ['0xEE099845CDfF93e73aDcBcB36A9B93578bcCed4b'];
46
+ /**
47
+ * GIWA Sepolia, where giwa_attestation is attested and verified.
48
+ *
49
+ * Constants, not configuration, for the same reason the EAS endpoints below
50
+ * are: a customer has no reason to point this at another chain, and letting
51
+ * them would only produce proofs against an attester nobody accepts.
52
+ */
53
+ export const GIWA_RPC = 'https://sepolia-rpc.giwa.io/';
54
+ export const GIWA_EXPLORER = 'https://sepolia-explorer.giwa.io';
55
+ export const GIWA_CHAIN_ID = 91342;
56
+ export const ATTESTATION_SOURCES = {
57
+ [CIRCUIT_IDS.COINBASE_ATTESTATION]: {
58
+ kind: 'eas-base',
59
+ contract: COINBASE_ATTESTER_CONTRACT,
60
+ signers: AUTHORIZED_SIGNERS,
61
+ },
62
+ [CIRCUIT_IDS.COINBASE_COUNTRY_ATTESTATION]: {
63
+ kind: 'eas-base',
64
+ contract: COINBASE_ATTESTER_CONTRACT,
65
+ signers: AUTHORIZED_SIGNERS,
66
+ },
67
+ [CIRCUIT_IDS.ARC_ELIGIBILITY]: {
68
+ kind: 'eas-base',
69
+ contract: COINBASE_ATTESTER_CONTRACT,
70
+ signers: AUTHORIZED_SIGNERS,
71
+ },
72
+ [CIRCUIT_IDS.GIWA_ATTESTATION]: {
73
+ kind: 'giwa-sepolia',
74
+ contract: GIWA_ATTESTER_CONTRACT,
75
+ signers: GIWA_AUTHORIZED_SIGNERS,
76
+ chainId: GIWA_CHAIN_ID,
77
+ rpc: GIWA_RPC,
78
+ explorer: GIWA_EXPLORER,
79
+ },
80
+ [CIRCUIT_IDS.OIDC_DOMAIN_ATTESTATION]: null,
81
+ };
82
+ /**
83
+ * The attestation source for a circuit, or an error naming the circuit.
84
+ *
85
+ * Two different failures, said differently: a circuit this build has never
86
+ * heard of, and a circuit that genuinely has no attestation to fetch.
87
+ */
88
+ export function attestationSource(circuitId) {
89
+ if (!(circuitId in ATTESTATION_SOURCES)) {
90
+ throw new Error(`Unknown circuit '${circuitId}'. Known: ${Object.keys(ATTESTATION_SOURCES).join(', ')}.`);
91
+ }
92
+ const source = ATTESTATION_SOURCES[circuitId];
93
+ if (!source) {
94
+ throw new Error(`'${circuitId}' has no on-chain attestation to fetch -- its signature is inside the identity token.`);
95
+ }
96
+ return source;
97
+ }
42
98
  export const DEFAULT_EAS_GRAPHQL = 'https://base.easscan.org/graphql';
43
99
  // Use drpc.org instead of mainnet.base.org: the latter prunes transactions
44
100
  // older than ~30 days, so eth_getTransactionByHash returns null for any
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAKhB;IACH,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE;QAClC,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;IACD,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE;QAC1C,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;IACD,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE;QACrC,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,MAAM;KAClB;IACD,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE;QAC7B,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;IACD,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE;QAC9B,WAAW,EAAE,kBAAkB;QAC/B,yEAAyE;QACzE,yEAAyE;QACzE,6CAA6C;QAC7C,gBAAgB,EAAE,YAAY;KAC/B;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAEvF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AACtE,2EAA2E;AAC3E,wEAAwE;AACxE,+EAA+E;AAC/E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/inputs.d.ts CHANGED
@@ -31,6 +31,23 @@ export declare function computeScope(scopeString: string): Uint8Array;
31
31
  * Compute nullifier = keccak256(keccak256(address + signalHash) + scope)
32
32
  */
33
33
  export declare function computeNullifier(userAddress: string, signalHash: Uint8Array, scopeBytes: Uint8Array): Uint8Array;
34
+ /**
35
+ * Compute nullifier = keccak256(keccak256(address + keccak256(circuitId)) + scope)
36
+ *
37
+ * The wallet and a constant compiled into the circuit, and NOT `signal_hash`.
38
+ * The circuits that can bind an action derive it this way because they must:
39
+ * `signal_hash` is empty in action mode, so a nullifier taken from it would
40
+ * give one wallet two identities in one scope depending on how it asked. It
41
+ * was already wrong before those circuits branched — nothing constrains
42
+ * `signal_hash` there, so varying bytes minted identities.
43
+ *
44
+ * MUST match `verify_wallet_nullifier` in the circuit library and
45
+ * `computeWalletNullifier` in the server's input builder. When they disagree
46
+ * the proof fails with "Nullifier mismatch" and nothing names this function.
47
+ */
48
+ export declare function computeWalletNullifier(userAddress: string, circuitId: string, scopeBytes: Uint8Array): Uint8Array;
49
+ /** The nullifier this circuit expects, by its own rule. */
50
+ export declare function nullifierForCircuit(circuitId: CircuitId, userAddress: string, signalHash: Uint8Array, scopeBytes: Uint8Array): Uint8Array;
34
51
  /**
35
52
  * Prepare all inputs for POST /prove.
36
53
  *
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AASvE;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAOhD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAKjF;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,UAAU,CAMZ;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAE5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,GACrB,UAAU,CAQZ;AA4ED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;IAChE,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,WAAW,CAAC,CAmGvB"}
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAevE;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAOhD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAKjF;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,UAAU,CAMZ;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAE5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,GACrB,UAAU,CAQZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GACrB,UAAU,CAMZ;AAiBD,2DAA2D;AAC3D,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,GACrB,UAAU,CAaZ;AA4ED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE;IAChE,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,WAAW,CAAC,CAoGvB"}
package/dist/inputs.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { CIRCUIT_IDS } from './circuits.js';
3
- import { CIRCUITS, MERKLE_PROOF_MAX_DEPTH, COUNTRY_LIST_MAX_LENGTH } from './constants.js';
3
+ import { CIRCUITS, MERKLE_PROOF_MAX_DEPTH, COUNTRY_LIST_MAX_LENGTH, attestationSource, } from './constants.js';
4
4
  import { fetchAttestation, recoverAttesterPubkey, getSignerAddress } from './attestation.js';
5
5
  import { findSignerIndex, buildSignerMerkleTree } from './merkle.js';
6
6
  // ─── Utility functions ──────────────────────────────────────────────────
@@ -60,6 +60,52 @@ export function computeNullifier(userAddress, signalHash, scopeBytes) {
60
60
  const userSecret = ethers.getBytes(ethers.keccak256(ethers.concat([userAddressBytes, signalHash])));
61
61
  return ethers.getBytes(ethers.keccak256(ethers.concat([userSecret, scopeBytes])));
62
62
  }
63
+ /**
64
+ * Compute nullifier = keccak256(keccak256(address + keccak256(circuitId)) + scope)
65
+ *
66
+ * The wallet and a constant compiled into the circuit, and NOT `signal_hash`.
67
+ * The circuits that can bind an action derive it this way because they must:
68
+ * `signal_hash` is empty in action mode, so a nullifier taken from it would
69
+ * give one wallet two identities in one scope depending on how it asked. It
70
+ * was already wrong before those circuits branched — nothing constrains
71
+ * `signal_hash` there, so varying bytes minted identities.
72
+ *
73
+ * MUST match `verify_wallet_nullifier` in the circuit library and
74
+ * `computeWalletNullifier` in the server's input builder. When they disagree
75
+ * the proof fails with "Nullifier mismatch" and nothing names this function.
76
+ */
77
+ export function computeWalletNullifier(userAddress, circuitId, scopeBytes) {
78
+ const circuitTag = ethers.getBytes(ethers.keccak256(ethers.toUtf8Bytes(circuitId)));
79
+ const userSecret = ethers.getBytes(ethers.keccak256(ethers.concat([ethers.getBytes(userAddress), circuitTag])));
80
+ return ethers.getBytes(ethers.keccak256(ethers.concat([userSecret, scopeBytes])));
81
+ }
82
+ /**
83
+ * Which nullifier each circuit expects. A table rather than a test on the id,
84
+ * so a circuit nobody thought about is an error instead of whichever formula
85
+ * the last branch held.
86
+ */
87
+ const NULLIFIER_RULE = {
88
+ [CIRCUIT_IDS.COINBASE_ATTESTATION]: 'wallet-and-signal-hash',
89
+ [CIRCUIT_IDS.COINBASE_COUNTRY_ATTESTATION]: 'wallet-and-signal-hash',
90
+ [CIRCUIT_IDS.ARC_ELIGIBILITY]: 'wallet-and-circuit-tag',
91
+ [CIRCUIT_IDS.GIWA_ATTESTATION]: 'wallet-and-circuit-tag',
92
+ // OIDC's nullifier is derived inside the OIDC payload builder, from the
93
+ // identity token; this function is never asked for it.
94
+ [CIRCUIT_IDS.OIDC_DOMAIN_ATTESTATION]: 'built-from-the-token',
95
+ };
96
+ /** The nullifier this circuit expects, by its own rule. */
97
+ export function nullifierForCircuit(circuitId, userAddress, signalHash, scopeBytes) {
98
+ const rule = NULLIFIER_RULE[circuitId];
99
+ if (!rule) {
100
+ throw new Error(`No nullifier rule for circuit '${circuitId}'. Known: ${Object.keys(NULLIFIER_RULE).join(', ')}.`);
101
+ }
102
+ if (rule === 'built-from-the-token') {
103
+ throw new Error(`'${circuitId}' builds its nullifier from the identity token, not from a wallet signature.`);
104
+ }
105
+ return rule === 'wallet-and-circuit-tag'
106
+ ? computeWalletNullifier(userAddress, circuitId, scopeBytes)
107
+ : computeNullifier(userAddress, signalHash, scopeBytes);
108
+ }
63
109
  // ─── Internal helpers for input assembly ────────────────────────────────
64
110
  /**
65
111
  * Pad a byte array to a target length with trailing zeros.
@@ -187,12 +233,13 @@ export async function prepareInputs(config, params) {
187
233
  const attesterPubkey = recoverAttesterPubkey(attestationData.rawTransaction);
188
234
  const attesterAddress = getSignerAddress(attesterPubkey);
189
235
  const { x: attesterPubkeyX, y: attesterPubkeyY } = extractPubkeyCoordinates(attesterPubkey);
190
- // Step 5: Build Merkle tree
191
- const signerIndex = findSignerIndex(attesterAddress);
192
- const merkleData = buildSignerMerkleTree(signerIndex);
193
- // Step 6: Compute scope and nullifier
236
+ // Step 5: Build Merkle tree over the signers THIS circuit accepts.
237
+ const { signers } = attestationSource(circuitId);
238
+ const signerIndex = findSignerIndex(attesterAddress, signers);
239
+ const merkleData = buildSignerMerkleTree(signerIndex, signers);
240
+ // Step 6: Compute scope and the nullifier THIS circuit expects
194
241
  const scopeBytes = computeScope(scope);
195
- const nullifierBytes = computeNullifier(userAddress, signalHash, scopeBytes);
242
+ const nullifierBytes = nullifierForCircuit(circuitId, userAddress, signalHash, scopeBytes);
196
243
  // Step 7: Convert raw TX to byte array
197
244
  const rawTxBytes = hexToBytes(attestationData.rawTransaction);
198
245
  const txLength = rawTxBytes.length;
@@ -1 +1 @@
1
- {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../src/inputs.ts"],"names":[],"mappings":"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"}
package/dist/merkle.d.ts CHANGED
@@ -21,11 +21,11 @@ export declare class SimpleMerkleTree {
21
21
  * Find the index of a signer address in the authorized signers list.
22
22
  * Case-insensitive comparison.
23
23
  */
24
- export declare function findSignerIndex(signerAddress: string): number;
24
+ export declare function findSignerIndex(signerAddress: string, signers: readonly string[]): number;
25
25
  /**
26
26
  * Build a Merkle tree from authorized signers and get proof for the given signer index.
27
27
  */
28
- export declare function buildSignerMerkleTree(signerIndex: number): {
28
+ export declare function buildSignerMerkleTree(signerIndex: number, signers: readonly string[]): {
29
29
  root: string;
30
30
  proof: string[];
31
31
  leafIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../src/merkle.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAa;gBAEf,SAAS,EAAE,MAAM,EAAE;IA+B/B,OAAO,IAAI,MAAM;IAIjB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IA8B9E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAMnC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAU7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAMA"}
1
+ {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../src/merkle.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAa;gBAEf,SAAS,EAAE,MAAM,EAAE;IA+B/B,OAAO,IAAI,MAAM;IAIjB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IA8B9E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAMnC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EAMrB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAMA"}
package/dist/merkle.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { ethers } from 'ethers';
2
- import { AUTHORIZED_SIGNERS } from './constants.js';
3
2
  /**
4
3
  * Simple binary Merkle tree for signer verification.
5
4
  *
@@ -76,8 +75,14 @@ export class SimpleMerkleTree {
76
75
  * Find the index of a signer address in the authorized signers list.
77
76
  * Case-insensitive comparison.
78
77
  */
79
- export function findSignerIndex(signerAddress) {
80
- const index = AUTHORIZED_SIGNERS.findIndex(addr => addr.toLowerCase() === signerAddress.toLowerCase());
78
+ export function findSignerIndex(signerAddress,
79
+ /*
80
+ * Required, with no default. It defaulted to Coinbase's four, which meant a
81
+ * caller that forgot to pass GIWA's single signer got "signer not authorized"
82
+ * naming an address that IS authorized -- for the other chain.
83
+ */
84
+ signers) {
85
+ const index = signers.findIndex(addr => addr.toLowerCase() === signerAddress.toLowerCase());
81
86
  if (index === -1) {
82
87
  throw new Error(`Signer ${signerAddress} is not in the authorized signers list`);
83
88
  }
@@ -86,8 +91,8 @@ export function findSignerIndex(signerAddress) {
86
91
  /**
87
92
  * Build a Merkle tree from authorized signers and get proof for the given signer index.
88
93
  */
89
- export function buildSignerMerkleTree(signerIndex) {
90
- const tree = new SimpleMerkleTree(AUTHORIZED_SIGNERS);
94
+ export function buildSignerMerkleTree(signerIndex, signers) {
95
+ const tree = new SimpleMerkleTree([...signers]);
91
96
  const root = tree.getRoot();
92
97
  const { proof, leafIndex, depth } = tree.getProof(signerIndex);
93
98
  return { root, proof, leafIndex, depth };
@@ -1 +1 @@
1
- {"version":3,"file":"merkle.js","sourceRoot":"","sources":["../src/merkle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merkle.js","sourceRoot":"","sources":["../src/merkle.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zkproofport-ai/sdk",
3
- "version": "0.2.13",
4
- "description": "TypeScript SDK for ZKProofport identity proofs and experimental Arc Testnet EIP-712 action authorization. Circle Agent Wallet payments, Circle Gateway nanopayments and x402 USDC; Coinbase KYC, country and OIDC proofs.",
3
+ "version": "0.2.15",
4
+ "description": "TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC, Arc eligibility and GIWA attestation proofs. Optional EIP-712 action binding for Arc/GIWA; x402 USDC and Circle Gateway payments.",
5
5
  "keywords": [
6
6
  "sdk",
7
7
  "typescript",