@p2pdotme/sdk 1.2.6 → 1.2.8

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" | "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" | "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;
@@ -80,6 +80,13 @@ declare const ZodSimpleKycSubmitParamsSchema: z.ZodObject<{
80
80
  signature: z.ZodString;
81
81
  }, z.core.$strip>;
82
82
  type SimpleKycSubmitParams = z.infer<typeof ZodSimpleKycSubmitParamsSchema>;
83
+ declare const ZodBvnSubmitParamsSchema: z.ZodObject<{
84
+ nullifier: z.ZodString;
85
+ limit: z.ZodBigInt;
86
+ expiry: z.ZodBigInt;
87
+ signature: z.ZodString;
88
+ }, z.core.$strip>;
89
+ type BvnSubmitParams = z.infer<typeof ZodBvnSubmitParamsSchema>;
83
90
 
84
91
  interface Zkkyc {
85
92
  prepareSocialVerify(params: SocialVerifyParams): Result<{
@@ -98,6 +105,10 @@ interface Zkkyc {
98
105
  to: Address;
99
106
  data: `0x${string}`;
100
107
  }, ZkkycError>;
108
+ prepareSubmitBvnAttestation(params: BvnSubmitParams): Result<{
109
+ to: Address;
110
+ data: `0x${string}`;
111
+ }, ZkkycError>;
101
112
  }
102
113
 
103
114
  /**
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" | "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" | "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;
@@ -80,6 +80,13 @@ declare const ZodSimpleKycSubmitParamsSchema: z.ZodObject<{
80
80
  signature: z.ZodString;
81
81
  }, z.core.$strip>;
82
82
  type SimpleKycSubmitParams = z.infer<typeof ZodSimpleKycSubmitParamsSchema>;
83
+ declare const ZodBvnSubmitParamsSchema: z.ZodObject<{
84
+ nullifier: z.ZodString;
85
+ limit: z.ZodBigInt;
86
+ expiry: z.ZodBigInt;
87
+ signature: z.ZodString;
88
+ }, z.core.$strip>;
89
+ type BvnSubmitParams = z.infer<typeof ZodBvnSubmitParamsSchema>;
83
90
 
84
91
  interface Zkkyc {
85
92
  prepareSocialVerify(params: SocialVerifyParams): Result<{
@@ -98,6 +105,10 @@ interface Zkkyc {
98
105
  to: Address;
99
106
  data: `0x${string}`;
100
107
  }, ZkkycError>;
108
+ prepareSubmitBvnAttestation(params: BvnSubmitParams): Result<{
109
+ to: Address;
110
+ data: `0x${string}`;
111
+ }, ZkkycError>;
101
112
  }
102
113
 
103
114
  /**
package/dist/react.mjs CHANGED
@@ -323,8 +323,9 @@ function cleanupSeonStorage() {
323
323
  // src/fraud-engine/signing.ts
324
324
  async function getSignedHeaders(signer, action) {
325
325
  const signingAddress = (signer.signerAddress ?? signer.address).toLowerCase();
326
+ const subjectAddress = signer.address.toLowerCase();
326
327
  const timestamp = Math.floor(Date.now() / 1e3).toString();
327
- const message = `${action}:${signingAddress}:${timestamp}`;
328
+ const message = `${action}:${signingAddress}:${subjectAddress}:${timestamp}`;
328
329
  try {
329
330
  const signature = await signer.signMessage(message);
330
331
  return {
@@ -1452,6 +1453,38 @@ var reputationManagerAbi = [
1452
1453
  outputs: [{ internalType: "bool", name: "", type: "bool" }],
1453
1454
  stateMutability: "view",
1454
1455
  type: "function"
1456
+ },
1457
+ // ── BVN (Nigerian Bank Verification Number) attestation ─────────────────
1458
+ { inputs: [], name: "BvnSignerNotSet", type: "error" },
1459
+ { inputs: [], name: "BvnAttestationExpired", type: "error" },
1460
+ { inputs: [], name: "BvnNullifierAlreadySpent", type: "error" },
1461
+ { inputs: [], name: "BvnAlreadyVerified", type: "error" },
1462
+ { inputs: [], name: "BvnInvalidSignature", type: "error" },
1463
+ {
1464
+ inputs: [
1465
+ { internalType: "bytes32", name: "nullifier", type: "bytes32" },
1466
+ { internalType: "uint256", name: "limit", type: "uint256" },
1467
+ { internalType: "uint256", name: "expiry", type: "uint256" },
1468
+ { internalType: "bytes", name: "signature", type: "bytes" }
1469
+ ],
1470
+ name: "submitBvnAttestation",
1471
+ outputs: [],
1472
+ stateMutability: "nonpayable",
1473
+ type: "function"
1474
+ },
1475
+ {
1476
+ inputs: [],
1477
+ name: "bvnRp",
1478
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1479
+ stateMutability: "view",
1480
+ type: "function"
1481
+ },
1482
+ {
1483
+ inputs: [{ internalType: "address", name: "", type: "address" }],
1484
+ name: "bvnVerified",
1485
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
1486
+ stateMutability: "view",
1487
+ type: "function"
1455
1488
  }
1456
1489
  ];
1457
1490
 
@@ -5797,6 +5830,20 @@ var ZodSimpleKycSubmitParamsSchema = z9.object({
5797
5830
  message: "signature must be a hex string"
5798
5831
  })
5799
5832
  });
5833
+ var ZodBvnSubmitParamsSchema = z9.object({
5834
+ /** Per-(tenant, identity) Sybil nullifier (bytes32 hex). */
5835
+ nullifier: z9.string().refine((v) => /^0x[a-fA-F0-9]{64}$/.test(v), {
5836
+ message: "nullifier must be a bytes32 hex string"
5837
+ }),
5838
+ /** Remaining limit in micro-USDC (part of the signed struct). */
5839
+ limit: z9.bigint(),
5840
+ /** Attestation expiry (unix seconds). */
5841
+ expiry: z9.bigint(),
5842
+ /** 65-byte secp256k1 signature (hex). */
5843
+ signature: z9.string().refine((v) => /^0x[a-fA-F0-9]+$/.test(v), {
5844
+ message: "signature must be a hex string"
5845
+ })
5846
+ });
5800
5847
 
5801
5848
  // src/contracts/reputation-manager/writes.ts
5802
5849
  function prepareSocialVerify(reputationManagerAddress, params) {
@@ -5890,6 +5937,33 @@ function prepareSubmitKycAttestation(reputationManagerAddress, params) {
5890
5937
  )()
5891
5938
  );
5892
5939
  }
5940
+ function prepareSubmitBvnAttestation(reputationManagerAddress, params) {
5941
+ return validate(
5942
+ ZodBvnSubmitParamsSchema,
5943
+ params,
5944
+ (message, cause, data) => new ZkkycError(message, { code: "VALIDATION_ERROR", cause, context: { params: data } })
5945
+ ).andThen(
5946
+ (validated) => Result2.fromThrowable(
5947
+ () => ({
5948
+ to: reputationManagerAddress,
5949
+ data: encodeFunctionData7({
5950
+ abi: ABIS.EXTERNAL.REPUTATION_MANAGER,
5951
+ functionName: "submitBvnAttestation",
5952
+ args: [
5953
+ validated.nullifier,
5954
+ validated.limit,
5955
+ validated.expiry,
5956
+ validated.signature
5957
+ ]
5958
+ })
5959
+ }),
5960
+ (error) => new ZkkycError("Failed to encode submitBvnAttestation", {
5961
+ code: "ENCODE_ERROR",
5962
+ cause: error
5963
+ })
5964
+ )()
5965
+ );
5966
+ }
5893
5967
  function prepareZkPassportRegister(reputationManagerAddress, params) {
5894
5968
  return validate(
5895
5969
  ZodZkPassportRegisterParamsSchema,
@@ -6982,7 +7056,8 @@ function createZkkyc(config) {
6982
7056
  prepareSocialVerify: (params) => prepareSocialVerify(reputationManagerAddress, params),
6983
7057
  prepareSubmitAnonAadharProof: (params) => prepareSubmitAnonAadharProof(reputationManagerAddress, params),
6984
7058
  prepareZkPassportRegister: (params) => prepareZkPassportRegister(reputationManagerAddress, params),
6985
- prepareSubmitKycAttestation: (params) => prepareSubmitKycAttestation(reputationManagerAddress, params)
7059
+ prepareSubmitKycAttestation: (params) => prepareSubmitKycAttestation(reputationManagerAddress, params),
7060
+ prepareSubmitBvnAttestation: (params) => prepareSubmitBvnAttestation(reputationManagerAddress, params)
6986
7061
  };
6987
7062
  }
6988
7063