@zkp2p/zkp2p-attestation 1.4.0 → 1.5.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/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.5.0
4
+
5
+ - Change Venmo identity registration to require the captured stories URL in session material. Venmo identity session material now requires `url`, `params` only requires `SENDER_ID`, and `params.SENDER_ID` must match the URL `externalId`.
6
+ - Require `callerAddress` on identity attestation requests and bind it into the signed `IdentityAttestation`; `verifyIdentityAttestation` now requires `expectedCallerAddress`.
7
+
3
8
  ## 1.4.0
4
9
 
5
10
  - Add typed identity flow helpers: `encryptIdentitySessionMaterial`, `createEncryptedIdentitySessionMaterial`, and `requestIdentityAttestation`.
package/README.md CHANGED
@@ -160,15 +160,16 @@ are encrypted before being sent to the service.
160
160
 
161
161
  Identity requests use the same attested upload key and compact JWE plaintext shape as buyer TEE, but with a narrower
162
162
  platform/action matrix. The typed helper encrypts captured session material, posts
163
- `{ platform, actionType, encryptedSessionMaterial, params }` to `POST /identity`, unwraps the service response, and
163
+ `{ platform, actionType, callerAddress, encryptedSessionMaterial, params }` to `POST /identity`, unwraps the service response, and
164
164
  returns an `IdentityAttestationOutput`. `verifyIdentityAttestation` checks the EIP-712 signature, trusted signer,
165
- platform/action binding, expected payee hash, canonical identity `dataHash`, and `validUntil`, then returns normalized
166
- identity details.
165
+ platform/action binding, expected caller address, expected payee hash, canonical identity `dataHash`, and `validUntil`,
166
+ then returns normalized identity details.
167
167
 
168
168
  ```ts
169
169
  const identityPayload = await nitro.requestIdentityAttestation({
170
170
  platform: "wise",
171
171
  actionType: "register_wise",
172
+ callerAddress: "0x0000000000000000000000000000000000000002",
172
173
  sessionMaterial: {
173
174
  Cookie: "<captured-cookie-header>",
174
175
  "X-Access-Token": "<captured-token>",
@@ -180,6 +181,7 @@ const identity = verifyIdentityAttestation(identityPayload, {
180
181
  trustedSigners,
181
182
  expectedPlatform: "wise",
182
183
  expectedActionType: "register_wise",
184
+ expectedCallerAddress: "0x0000000000000000000000000000000000000002",
183
185
  expectedPayeeIdHash: hashUtf8("<wise-recipient-id>"),
184
186
  });
185
187
  // identity: { payeeIdHash, payeeId, username, metadata, ... }
@@ -189,10 +191,14 @@ Identity platform matrix:
189
191
 
190
192
  | Platform | `actionType` | Required encrypted session material | Public params fields |
191
193
  |---|---|---|---|
192
- | `venmo` | `register_venmo` | `Cookie` | `SENDER_ID`, `index` |
194
+ | `venmo` | `register_venmo` | `url`, `Cookie` | `SENDER_ID` |
193
195
  | `paypal` | `register_paypal` | `Cookie` | `{}` |
194
196
  | `wise` | `register_wise` | `Cookie`, `X-Access-Token` | `PROFILE_ID` |
195
197
 
198
+ For Venmo identity, pass the captured `https://account.venmo.com/api/stories?feedType=me&externalId=...` request URL
199
+ inside encrypted `sessionMaterial.url`; the service validates that `params.SENDER_ID` matches the URL `externalId` and
200
+ that Venmo returns a valid stories response with an explicit `stories` array.
201
+
196
202
  Buyer TEE and identity expose discriminated unions keyed by `platform` and `actionType`, including per-platform
197
203
  `params`, so invalid pairings fail during TypeScript compilation. Seller credential upload keeps its existing
198
204
  platform narrowing (`wise` derives payee id from the credential; Venmo, Cash App, and PayPal require `payeeId`) but
@@ -4672,7 +4672,7 @@ Options:
4672
4672
  --expected-pcr8 <hex> Strict PCR8 pin
4673
4673
  --expected-signer <addr> Strict signer pin for --verify-signature
4674
4674
  --expected-verifying-contract <addr> Strict verifyingContract pin
4675
- --verify-signature <path> Optional path to a prior /verify or /seller/verify JSON response
4675
+ --verify-signature <path> Optional path to a prior buyer or seller verify JSON response
4676
4676
  --help Show this help text
4677
4677
  `);
4678
4678
  }