@p2pdotme/sdk 1.2.11 → 1.2.13

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/dist/react.d.cts CHANGED
@@ -16,7 +16,7 @@ declare class SdkError<TCode extends string = string> extends Error {
16
16
  });
17
17
  }
18
18
 
19
- type ZkkycErrorCode = "VALIDATION_ERROR" | "CONTRACT_READ_ERROR" | "ENCODE_ERROR" | "RECLAIM_INIT_FAILED" | "RECLAIM_SESSION_NOT_FOUND" | "RECLAIM_PROOF_GENERATION_FAILED" | "RECLAIM_PROOF_INVALID" | "RECLAIM_POLLING_ABORTED" | "ZK_PASSPORT_INIT_FAILED" | "ZK_PASSPORT_REJECTED" | "ZK_PASSPORT_VERIFICATION_FAILED" | "ZK_PASSPORT_ABORTED" | "SIMPLE_KYC_SESSION_FAILED" | "SIMPLE_KYC_REDEEM_FAILED" | "BVN_ONBOARD_FAILED" | "BVN_SUBMIT_FAILED" | "BVN_OTP_SEND_FAILED" | "BVN_OTP_CONFIRM_FAILED" | "BVN_ATTESTATION_FAILED" | "BVN_SESSION_EXPIRED" | "PEER_DEPENDENCY_MISSING";
19
+ type ZkkycErrorCode = "VALIDATION_ERROR" | "CONTRACT_READ_ERROR" | "ENCODE_ERROR" | "RECLAIM_INIT_FAILED" | "RECLAIM_SESSION_NOT_FOUND" | "RECLAIM_PROOF_GENERATION_FAILED" | "RECLAIM_PROOF_INVALID" | "RECLAIM_POLLING_ABORTED" | "ZK_PASSPORT_INIT_FAILED" | "ZK_PASSPORT_REJECTED" | "ZK_PASSPORT_VERIFICATION_FAILED" | "ZK_PASSPORT_ABORTED" | "SIMPLE_KYC_SESSION_FAILED" | "SIMPLE_KYC_REDEEM_FAILED" | "LIVENESS_SESSION_FAILED" | "LIVENESS_REDEEM_FAILED" | "BVN_ONBOARD_FAILED" | "BVN_SUBMIT_FAILED" | "BVN_OTP_SEND_FAILED" | "BVN_OTP_CONFIRM_FAILED" | "BVN_ATTESTATION_FAILED" | "BVN_SESSION_EXPIRED" | "PEER_DEPENDENCY_MISSING";
20
20
  declare class ZkkycError extends SdkError<ZkkycErrorCode> {
21
21
  constructor(message: string, options: {
22
22
  code: ZkkycErrorCode;
@@ -87,6 +87,13 @@ declare const ZodBvnSubmitParamsSchema: z.ZodObject<{
87
87
  signature: z.ZodString;
88
88
  }, z.core.$strip>;
89
89
  type BvnSubmitParams = z.infer<typeof ZodBvnSubmitParamsSchema>;
90
+ declare const ZodLivenessSubmitParamsSchema: z.ZodObject<{
91
+ nullifier: z.ZodString;
92
+ limit: z.ZodBigInt;
93
+ expiry: z.ZodBigInt;
94
+ signature: z.ZodString;
95
+ }, z.core.$strip>;
96
+ type LivenessSubmitParams = z.infer<typeof ZodLivenessSubmitParamsSchema>;
90
97
 
91
98
  interface Zkkyc {
92
99
  prepareSocialVerify(params: SocialVerifyParams): Result<{
@@ -109,6 +116,10 @@ interface Zkkyc {
109
116
  to: Address;
110
117
  data: `0x${string}`;
111
118
  }, ZkkycError>;
119
+ prepareSubmitLivenessAttestation(params: LivenessSubmitParams): Result<{
120
+ to: Address;
121
+ data: `0x${string}`;
122
+ }, ZkkycError>;
112
123
  }
113
124
 
114
125
  /**
package/dist/react.d.ts CHANGED
@@ -16,7 +16,7 @@ declare class SdkError<TCode extends string = string> extends Error {
16
16
  });
17
17
  }
18
18
 
19
- type ZkkycErrorCode = "VALIDATION_ERROR" | "CONTRACT_READ_ERROR" | "ENCODE_ERROR" | "RECLAIM_INIT_FAILED" | "RECLAIM_SESSION_NOT_FOUND" | "RECLAIM_PROOF_GENERATION_FAILED" | "RECLAIM_PROOF_INVALID" | "RECLAIM_POLLING_ABORTED" | "ZK_PASSPORT_INIT_FAILED" | "ZK_PASSPORT_REJECTED" | "ZK_PASSPORT_VERIFICATION_FAILED" | "ZK_PASSPORT_ABORTED" | "SIMPLE_KYC_SESSION_FAILED" | "SIMPLE_KYC_REDEEM_FAILED" | "BVN_ONBOARD_FAILED" | "BVN_SUBMIT_FAILED" | "BVN_OTP_SEND_FAILED" | "BVN_OTP_CONFIRM_FAILED" | "BVN_ATTESTATION_FAILED" | "BVN_SESSION_EXPIRED" | "PEER_DEPENDENCY_MISSING";
19
+ type ZkkycErrorCode = "VALIDATION_ERROR" | "CONTRACT_READ_ERROR" | "ENCODE_ERROR" | "RECLAIM_INIT_FAILED" | "RECLAIM_SESSION_NOT_FOUND" | "RECLAIM_PROOF_GENERATION_FAILED" | "RECLAIM_PROOF_INVALID" | "RECLAIM_POLLING_ABORTED" | "ZK_PASSPORT_INIT_FAILED" | "ZK_PASSPORT_REJECTED" | "ZK_PASSPORT_VERIFICATION_FAILED" | "ZK_PASSPORT_ABORTED" | "SIMPLE_KYC_SESSION_FAILED" | "SIMPLE_KYC_REDEEM_FAILED" | "LIVENESS_SESSION_FAILED" | "LIVENESS_REDEEM_FAILED" | "BVN_ONBOARD_FAILED" | "BVN_SUBMIT_FAILED" | "BVN_OTP_SEND_FAILED" | "BVN_OTP_CONFIRM_FAILED" | "BVN_ATTESTATION_FAILED" | "BVN_SESSION_EXPIRED" | "PEER_DEPENDENCY_MISSING";
20
20
  declare class ZkkycError extends SdkError<ZkkycErrorCode> {
21
21
  constructor(message: string, options: {
22
22
  code: ZkkycErrorCode;
@@ -87,6 +87,13 @@ declare const ZodBvnSubmitParamsSchema: z.ZodObject<{
87
87
  signature: z.ZodString;
88
88
  }, z.core.$strip>;
89
89
  type BvnSubmitParams = z.infer<typeof ZodBvnSubmitParamsSchema>;
90
+ declare const ZodLivenessSubmitParamsSchema: z.ZodObject<{
91
+ nullifier: z.ZodString;
92
+ limit: z.ZodBigInt;
93
+ expiry: z.ZodBigInt;
94
+ signature: z.ZodString;
95
+ }, z.core.$strip>;
96
+ type LivenessSubmitParams = z.infer<typeof ZodLivenessSubmitParamsSchema>;
90
97
 
91
98
  interface Zkkyc {
92
99
  prepareSocialVerify(params: SocialVerifyParams): Result<{
@@ -109,6 +116,10 @@ interface Zkkyc {
109
116
  to: Address;
110
117
  data: `0x${string}`;
111
118
  }, ZkkycError>;
119
+ prepareSubmitLivenessAttestation(params: LivenessSubmitParams): Result<{
120
+ to: Address;
121
+ data: `0x${string}`;
122
+ }, ZkkycError>;
112
123
  }
113
124
 
114
125
  /**
package/dist/react.mjs CHANGED
@@ -1487,6 +1487,39 @@ var reputationManagerAbi = [
1487
1487
  outputs: [{ internalType: "bool", name: "", type: "bool" }],
1488
1488
  stateMutability: "view",
1489
1489
  type: "function"
1490
+ },
1491
+ // ── Liveness (face-only, no document) attestation ───────────────────────
1492
+ { inputs: [], name: "LivenessSignerNotSet", type: "error" },
1493
+ { inputs: [], name: "LivenessAttestationExpired", type: "error" },
1494
+ { inputs: [], name: "LivenessNullifierZero", type: "error" },
1495
+ { inputs: [], name: "LivenessNullifierAlreadySpent", type: "error" },
1496
+ { inputs: [], name: "LivenessAlreadyVerified", type: "error" },
1497
+ { inputs: [], name: "LivenessInvalidSignature", type: "error" },
1498
+ {
1499
+ inputs: [
1500
+ { internalType: "bytes32", name: "nullifier", type: "bytes32" },
1501
+ { internalType: "uint256", name: "limit", type: "uint256" },
1502
+ { internalType: "uint256", name: "expiry", type: "uint256" },
1503
+ { internalType: "bytes", name: "signature", type: "bytes" }
1504
+ ],
1505
+ name: "submitLivenessAttestation",
1506
+ outputs: [],
1507
+ stateMutability: "nonpayable",
1508
+ type: "function"
1509
+ },
1510
+ {
1511
+ inputs: [],
1512
+ name: "livenessRp",
1513
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1514
+ stateMutability: "view",
1515
+ type: "function"
1516
+ },
1517
+ {
1518
+ inputs: [{ internalType: "address", name: "", type: "address" }],
1519
+ name: "livenessVerified",
1520
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
1521
+ stateMutability: "view",
1522
+ type: "function"
1490
1523
  }
1491
1524
  ];
1492
1525
 
@@ -5846,6 +5879,20 @@ var ZodBvnSubmitParamsSchema = z9.object({
5846
5879
  message: "signature must be a hex string"
5847
5880
  })
5848
5881
  });
5882
+ var ZodLivenessSubmitParamsSchema = z9.object({
5883
+ /** Per-(tenant, identity) Sybil nullifier (bytes32 hex). */
5884
+ nullifier: z9.string().refine((v) => /^0x[a-fA-F0-9]{64}$/.test(v), {
5885
+ message: "nullifier must be a bytes32 hex string"
5886
+ }),
5887
+ /** Remaining limit in micro-USDC (part of the signed struct). */
5888
+ limit: z9.bigint(),
5889
+ /** Attestation expiry (unix seconds). */
5890
+ expiry: z9.bigint(),
5891
+ /** 65-byte secp256k1 signature (hex). */
5892
+ signature: z9.string().refine((v) => /^0x[a-fA-F0-9]+$/.test(v), {
5893
+ message: "signature must be a hex string"
5894
+ })
5895
+ });
5849
5896
 
5850
5897
  // src/contracts/reputation-manager/writes.ts
5851
5898
  function prepareSocialVerify(reputationManagerAddress, params) {
@@ -5966,6 +6013,33 @@ function prepareSubmitBvnAttestation(reputationManagerAddress, params) {
5966
6013
  )()
5967
6014
  );
5968
6015
  }
6016
+ function prepareSubmitLivenessAttestation(reputationManagerAddress, params) {
6017
+ return validate(
6018
+ ZodLivenessSubmitParamsSchema,
6019
+ params,
6020
+ (message, cause, data) => new ZkkycError(message, { code: "VALIDATION_ERROR", cause, context: { params: data } })
6021
+ ).andThen(
6022
+ (validated) => Result2.fromThrowable(
6023
+ () => ({
6024
+ to: reputationManagerAddress,
6025
+ data: encodeFunctionData7({
6026
+ abi: ABIS.EXTERNAL.REPUTATION_MANAGER,
6027
+ functionName: "submitLivenessAttestation",
6028
+ args: [
6029
+ validated.nullifier,
6030
+ validated.limit,
6031
+ validated.expiry,
6032
+ validated.signature
6033
+ ]
6034
+ })
6035
+ }),
6036
+ (error) => new ZkkycError("Failed to encode submitLivenessAttestation", {
6037
+ code: "ENCODE_ERROR",
6038
+ cause: error
6039
+ })
6040
+ )()
6041
+ );
6042
+ }
5969
6043
  function prepareZkPassportRegister(reputationManagerAddress, params) {
5970
6044
  return validate(
5971
6045
  ZodZkPassportRegisterParamsSchema,
@@ -7059,7 +7133,8 @@ function createZkkyc(config) {
7059
7133
  prepareSubmitAnonAadharProof: (params) => prepareSubmitAnonAadharProof(reputationManagerAddress, params),
7060
7134
  prepareZkPassportRegister: (params) => prepareZkPassportRegister(reputationManagerAddress, params),
7061
7135
  prepareSubmitKycAttestation: (params) => prepareSubmitKycAttestation(reputationManagerAddress, params),
7062
- prepareSubmitBvnAttestation: (params) => prepareSubmitBvnAttestation(reputationManagerAddress, params)
7136
+ prepareSubmitBvnAttestation: (params) => prepareSubmitBvnAttestation(reputationManagerAddress, params),
7137
+ prepareSubmitLivenessAttestation: (params) => prepareSubmitLivenessAttestation(reputationManagerAddress, params)
7063
7138
  };
7064
7139
  }
7065
7140