@p2pdotme/sdk 1.2.1 → 1.2.3
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 +1 -1
- package/dist/country.cjs +117 -2
- package/dist/country.cjs.map +1 -1
- package/dist/country.d.cts +13 -1
- package/dist/country.d.ts +13 -1
- package/dist/country.mjs +114 -2
- package/dist/country.mjs.map +1 -1
- package/dist/fraud-engine.cjs +2 -1
- package/dist/fraud-engine.cjs.map +1 -1
- package/dist/fraud-engine.mjs +2 -1
- package/dist/fraud-engine.mjs.map +1 -1
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +3 -2
- package/dist/index.mjs.map +1 -1
- package/dist/orders.cjs +42 -1
- package/dist/orders.cjs.map +1 -1
- package/dist/orders.d.cts +2 -0
- package/dist/orders.d.ts +2 -0
- package/dist/orders.mjs +42 -1
- package/dist/orders.mjs.map +1 -1
- package/dist/prices.cjs +42 -1
- package/dist/prices.cjs.map +1 -1
- package/dist/prices.d.cts +1 -0
- package/dist/prices.d.ts +1 -0
- package/dist/prices.mjs +42 -1
- package/dist/prices.mjs.map +1 -1
- package/dist/profile.cjs +42 -1
- package/dist/profile.cjs.map +1 -1
- package/dist/profile.d.cts +2 -0
- package/dist/profile.d.ts +2 -0
- package/dist/profile.mjs +42 -1
- package/dist/profile.mjs.map +1 -1
- package/dist/qr-parsers.cjs +50 -1
- package/dist/qr-parsers.cjs.map +1 -1
- package/dist/qr-parsers.d.cts +1 -0
- package/dist/qr-parsers.d.ts +1 -0
- package/dist/qr-parsers.mjs +50 -1
- package/dist/qr-parsers.mjs.map +1 -1
- package/dist/react.cjs +71 -2
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +18 -1
- package/dist/react.d.ts +18 -1
- package/dist/react.mjs +71 -2
- package/dist/react.mjs.map +1 -1
- package/dist/stake.cjs +28 -1
- package/dist/stake.cjs.map +1 -1
- package/dist/stake.d.cts +1 -0
- package/dist/stake.d.ts +1 -0
- package/dist/stake.mjs +28 -1
- package/dist/stake.mjs.map +1 -1
- package/dist/zkkyc.cjs +234 -51
- package/dist/zkkyc.cjs.map +1 -1
- package/dist/zkkyc.d.cts +106 -5
- package/dist/zkkyc.d.ts +106 -5
- package/dist/zkkyc.mjs +230 -50
- package/dist/zkkyc.mjs.map +1 -1
- package/package.json +32 -12
package/dist/zkkyc.mjs
CHANGED
|
@@ -32,7 +32,8 @@ var CURRENCY = {
|
|
|
32
32
|
EUR: "EUR",
|
|
33
33
|
NGN: "NGN",
|
|
34
34
|
USD: "USD",
|
|
35
|
-
COP: "COP"
|
|
35
|
+
COP: "COP",
|
|
36
|
+
ECU: "ECU"
|
|
36
37
|
};
|
|
37
38
|
var CURRENCY_CODES = Object.values(CURRENCY);
|
|
38
39
|
|
|
@@ -126,6 +127,20 @@ var ZodZkPassportRegisterParamsSchema = z2.object({
|
|
|
126
127
|
params: ZodSolidityVerifierParametersSchema,
|
|
127
128
|
isIDCard: z2.boolean()
|
|
128
129
|
});
|
|
130
|
+
var ZodSimpleKycSubmitParamsSchema = z2.object({
|
|
131
|
+
/** Per-(tenant, identity) Sybil nullifier (bytes32 hex). */
|
|
132
|
+
nullifier: z2.string().refine((v) => /^0x[a-fA-F0-9]{64}$/.test(v), {
|
|
133
|
+
message: "nullifier must be a bytes32 hex string"
|
|
134
|
+
}),
|
|
135
|
+
/** Remaining limit in micro-USDC (part of the signed struct). */
|
|
136
|
+
limit: z2.bigint(),
|
|
137
|
+
/** Attestation expiry (unix seconds). */
|
|
138
|
+
expiry: z2.bigint(),
|
|
139
|
+
/** 65-byte secp256k1 signature (hex). */
|
|
140
|
+
signature: z2.string().refine((v) => /^0x[a-fA-F0-9]+$/.test(v), {
|
|
141
|
+
message: "signature must be a hex string"
|
|
142
|
+
})
|
|
143
|
+
});
|
|
129
144
|
|
|
130
145
|
// src/contracts/abis/index.ts
|
|
131
146
|
import { erc20Abi } from "viem";
|
|
@@ -904,6 +919,32 @@ var reputationManagerAbi = [
|
|
|
904
919
|
outputs: [],
|
|
905
920
|
stateMutability: "nonpayable",
|
|
906
921
|
type: "function"
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
inputs: [
|
|
925
|
+
{ internalType: "bytes32", name: "nullifier", type: "bytes32" },
|
|
926
|
+
{ internalType: "uint256", name: "limit", type: "uint256" },
|
|
927
|
+
{ internalType: "uint256", name: "expiry", type: "uint256" },
|
|
928
|
+
{ internalType: "bytes", name: "signature", type: "bytes" }
|
|
929
|
+
],
|
|
930
|
+
name: "submitKycAttestation",
|
|
931
|
+
outputs: [],
|
|
932
|
+
stateMutability: "nonpayable",
|
|
933
|
+
type: "function"
|
|
934
|
+
},
|
|
935
|
+
{
|
|
936
|
+
inputs: [],
|
|
937
|
+
name: "kycRp",
|
|
938
|
+
outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
|
|
939
|
+
stateMutability: "view",
|
|
940
|
+
type: "function"
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
inputs: [{ internalType: "address", name: "", type: "address" }],
|
|
944
|
+
name: "kycVerified",
|
|
945
|
+
outputs: [{ internalType: "bool", name: "", type: "bool" }],
|
|
946
|
+
stateMutability: "view",
|
|
947
|
+
type: "function"
|
|
907
948
|
}
|
|
908
949
|
];
|
|
909
950
|
|
|
@@ -993,6 +1034,33 @@ function prepareSubmitAnonAadharProof(reputationManagerAddress, params) {
|
|
|
993
1034
|
)()
|
|
994
1035
|
);
|
|
995
1036
|
}
|
|
1037
|
+
function prepareSubmitKycAttestation(reputationManagerAddress, params) {
|
|
1038
|
+
return validate(
|
|
1039
|
+
ZodSimpleKycSubmitParamsSchema,
|
|
1040
|
+
params,
|
|
1041
|
+
(message, cause, data) => new ZkkycError(message, { code: "VALIDATION_ERROR", cause, context: { params: data } })
|
|
1042
|
+
).andThen(
|
|
1043
|
+
(validated) => Result.fromThrowable(
|
|
1044
|
+
() => ({
|
|
1045
|
+
to: reputationManagerAddress,
|
|
1046
|
+
data: encodeFunctionData({
|
|
1047
|
+
abi: ABIS.EXTERNAL.REPUTATION_MANAGER,
|
|
1048
|
+
functionName: "submitKycAttestation",
|
|
1049
|
+
args: [
|
|
1050
|
+
validated.nullifier,
|
|
1051
|
+
validated.limit,
|
|
1052
|
+
validated.expiry,
|
|
1053
|
+
validated.signature
|
|
1054
|
+
]
|
|
1055
|
+
})
|
|
1056
|
+
}),
|
|
1057
|
+
(error) => new ZkkycError("Failed to encode submitKycAttestation", {
|
|
1058
|
+
code: "ENCODE_ERROR",
|
|
1059
|
+
cause: error
|
|
1060
|
+
})
|
|
1061
|
+
)()
|
|
1062
|
+
);
|
|
1063
|
+
}
|
|
996
1064
|
function prepareZkPassportRegister(reputationManagerAddress, params) {
|
|
997
1065
|
return validate(
|
|
998
1066
|
ZodZkPassportRegisterParamsSchema,
|
|
@@ -1040,7 +1108,8 @@ function createZkkyc(config) {
|
|
|
1040
1108
|
return {
|
|
1041
1109
|
prepareSocialVerify: (params) => prepareSocialVerify(reputationManagerAddress, params),
|
|
1042
1110
|
prepareSubmitAnonAadharProof: (params) => prepareSubmitAnonAadharProof(reputationManagerAddress, params),
|
|
1043
|
-
prepareZkPassportRegister: (params) => prepareZkPassportRegister(reputationManagerAddress, params)
|
|
1111
|
+
prepareZkPassportRegister: (params) => prepareZkPassportRegister(reputationManagerAddress, params),
|
|
1112
|
+
prepareSubmitKycAttestation: (params) => prepareSubmitKycAttestation(reputationManagerAddress, params)
|
|
1044
1113
|
};
|
|
1045
1114
|
}
|
|
1046
1115
|
|
|
@@ -1050,7 +1119,8 @@ var DEFAULT_RECLAIM_PROVIDER_IDS = {
|
|
|
1050
1119
|
github: "033f0c06-2eb3-48c8-894c-5599c3356d1c",
|
|
1051
1120
|
x: "aad95818-f726-4a34-be97-8d1f47631b03",
|
|
1052
1121
|
instagram: "7e5b59a9-56c5-490c-a169-82a443f9b507",
|
|
1053
|
-
facebook: "2701510b-c835-4820-84f0-d9e74569656b"
|
|
1122
|
+
facebook: "2701510b-c835-4820-84f0-d9e74569656b",
|
|
1123
|
+
binance: "7e40c007-f432-4d47-ac00-3e0762f8a7a0"
|
|
1054
1124
|
};
|
|
1055
1125
|
var ZK_PASSPORT_APP_LINKS = {
|
|
1056
1126
|
IOS: "https://apps.apple.com/us/app/zkpassport/id6477371975",
|
|
@@ -1059,6 +1129,7 @@ var ZK_PASSPORT_APP_LINKS = {
|
|
|
1059
1129
|
var RECLAIM_APP_LINKS = {
|
|
1060
1130
|
ANDROID: "https://play.google.com/store/apps/details?id=org.reclaimprotocol.app"
|
|
1061
1131
|
};
|
|
1132
|
+
var SIMPLE_KYC_DEFAULT_TENANT = "p2p-reputation";
|
|
1062
1133
|
|
|
1063
1134
|
// src/zkkyc/orchestrators/reclaim.ts
|
|
1064
1135
|
import { ResultAsync } from "neverthrow";
|
|
@@ -1069,7 +1140,8 @@ var SOCIAL_PLATFORM_NAMES = {
|
|
|
1069
1140
|
github: "GitHub",
|
|
1070
1141
|
x: "X",
|
|
1071
1142
|
instagram: "Instagram",
|
|
1072
|
-
facebook: "Facebook"
|
|
1143
|
+
facebook: "Facebook",
|
|
1144
|
+
binance: "Binance"
|
|
1073
1145
|
};
|
|
1074
1146
|
|
|
1075
1147
|
// src/zkkyc/orchestrators/reclaim.ts
|
|
@@ -1099,12 +1171,19 @@ function createReclaimFlow(params) {
|
|
|
1099
1171
|
} = params;
|
|
1100
1172
|
const socialName = SOCIAL_PLATFORM_NAMES[platform];
|
|
1101
1173
|
const providerId = providerIds[platform];
|
|
1174
|
+
let reclaimProofRequest = null;
|
|
1102
1175
|
let sessionId;
|
|
1176
|
+
let requestUrl = "";
|
|
1103
1177
|
if (existingSessionId) {
|
|
1104
1178
|
sessionId = existingSessionId;
|
|
1105
1179
|
} else {
|
|
1106
|
-
|
|
1107
|
-
launchOptions: {
|
|
1180
|
+
reclaimProofRequest = await ReclaimProofRequest.init(appId, appSecret, providerId, {
|
|
1181
|
+
launchOptions: {
|
|
1182
|
+
canUseDeferredDeepLinksFlow: true,
|
|
1183
|
+
verificationMode: "app"
|
|
1184
|
+
},
|
|
1185
|
+
useAppClip: true,
|
|
1186
|
+
log: true
|
|
1108
1187
|
});
|
|
1109
1188
|
const statusUrl = reclaimProofRequest.getStatusUrl();
|
|
1110
1189
|
sessionId = statusUrl.split("/").pop() || "";
|
|
@@ -1118,54 +1197,72 @@ function createReclaimFlow(params) {
|
|
|
1118
1197
|
walletAddress,
|
|
1119
1198
|
contextDescription ?? `Social verification for ${socialName}`
|
|
1120
1199
|
);
|
|
1121
|
-
|
|
1200
|
+
requestUrl = await reclaimProofRequest.getRequestUrl();
|
|
1122
1201
|
onStatus?.({ type: "session_created", sessionId, requestUrl });
|
|
1123
|
-
if (typeof window !== "undefined") {
|
|
1124
|
-
reclaimProofRequest.triggerReclaimFlow();
|
|
1125
|
-
}
|
|
1126
1202
|
}
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
if (
|
|
1130
|
-
|
|
1131
|
-
code: "RECLAIM_POLLING_ABORTED"
|
|
1132
|
-
});
|
|
1203
|
+
let aborted = false;
|
|
1204
|
+
const pollForProof = async () => {
|
|
1205
|
+
if (reclaimProofRequest && typeof window !== "undefined") {
|
|
1206
|
+
reclaimProofRequest.triggerReclaimFlow({ verificationMode: "app" });
|
|
1133
1207
|
}
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1208
|
+
onStatus?.({ type: "polling_started", sessionId });
|
|
1209
|
+
while (true) {
|
|
1210
|
+
if (aborted || signal?.aborted) {
|
|
1211
|
+
throw new ZkkycError("Reclaim polling aborted", {
|
|
1212
|
+
code: "RECLAIM_POLLING_ABORTED"
|
|
1213
|
+
});
|
|
1214
|
+
}
|
|
1215
|
+
const response = await fetch(`${RECLAIM_SESSION_API}/${sessionId}`);
|
|
1216
|
+
const data = await response.json();
|
|
1217
|
+
if (data?.session?.proofs?.length > 0) {
|
|
1218
|
+
const proofs = data.session.proofs;
|
|
1219
|
+
onStatus?.({ type: "proof_received" });
|
|
1220
|
+
if (platform === "github" && proofs.length > 0) {
|
|
1221
|
+
const first = proofs[0];
|
|
1222
|
+
if (first?.publicData && Object.keys(first.publicData).length === 0) {
|
|
1223
|
+
throw new ZkkycError("GitHub verification eligibility criteria not met", {
|
|
1224
|
+
code: "RECLAIM_PROOF_INVALID"
|
|
1225
|
+
});
|
|
1226
|
+
}
|
|
1145
1227
|
}
|
|
1228
|
+
const transformedProofs = proofs.map((proof) => transformForOnchain(proof));
|
|
1229
|
+
onStatus?.({ type: "proof_transformed" });
|
|
1230
|
+
return {
|
|
1231
|
+
_socialName: socialName,
|
|
1232
|
+
proofs: transformedProofs,
|
|
1233
|
+
sessionId
|
|
1234
|
+
};
|
|
1146
1235
|
}
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1236
|
+
if (data?.message?.includes("Session not found")) {
|
|
1237
|
+
throw new ZkkycError("Reclaim session not found", {
|
|
1238
|
+
code: "RECLAIM_SESSION_NOT_FOUND",
|
|
1239
|
+
context: { sessionId }
|
|
1240
|
+
});
|
|
1241
|
+
}
|
|
1242
|
+
if (data?.session?.statusV2 === "PROOF_GENERATION_FAILED") {
|
|
1243
|
+
throw new ZkkycError("Reclaim proof generation failed", {
|
|
1244
|
+
code: "RECLAIM_PROOF_GENERATION_FAILED",
|
|
1245
|
+
context: { sessionId }
|
|
1246
|
+
});
|
|
1247
|
+
}
|
|
1248
|
+
await new Promise((resolve) => setTimeout(resolve, pollingIntervalMs));
|
|
1160
1249
|
}
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1250
|
+
};
|
|
1251
|
+
const session = {
|
|
1252
|
+
sessionId,
|
|
1253
|
+
requestUrl,
|
|
1254
|
+
start: () => ResultAsync.fromPromise(pollForProof(), (error) => {
|
|
1255
|
+
if (error instanceof ZkkycError) return error;
|
|
1256
|
+
return new ZkkycError("Reclaim verification flow failed", {
|
|
1257
|
+
code: "RECLAIM_INIT_FAILED",
|
|
1258
|
+
cause: error
|
|
1165
1259
|
});
|
|
1260
|
+
}),
|
|
1261
|
+
abort: () => {
|
|
1262
|
+
aborted = true;
|
|
1166
1263
|
}
|
|
1167
|
-
|
|
1168
|
-
|
|
1264
|
+
};
|
|
1265
|
+
return session;
|
|
1169
1266
|
})(),
|
|
1170
1267
|
(error) => {
|
|
1171
1268
|
if (error instanceof ZkkycError) return error;
|
|
@@ -1177,10 +1274,90 @@ function createReclaimFlow(params) {
|
|
|
1177
1274
|
);
|
|
1178
1275
|
}
|
|
1179
1276
|
|
|
1180
|
-
// src/zkkyc/orchestrators/
|
|
1277
|
+
// src/zkkyc/orchestrators/simple-kyc.ts
|
|
1181
1278
|
import { ResultAsync as ResultAsync2 } from "neverthrow";
|
|
1182
|
-
function
|
|
1279
|
+
function createSimpleKycFlow(params) {
|
|
1280
|
+
const { baseUrl, walletAddress, tenant, redirectUrl, country, state, onStatus } = params;
|
|
1183
1281
|
return ResultAsync2.fromPromise(
|
|
1282
|
+
(async () => {
|
|
1283
|
+
const res = await fetch(`${baseUrl}/v1/widget/public-sessions`, {
|
|
1284
|
+
method: "POST",
|
|
1285
|
+
headers: { "Content-Type": "application/json" },
|
|
1286
|
+
body: JSON.stringify({
|
|
1287
|
+
wallet_pubkey: walletAddress,
|
|
1288
|
+
redirect_uri: redirectUrl,
|
|
1289
|
+
tenant,
|
|
1290
|
+
country,
|
|
1291
|
+
state
|
|
1292
|
+
})
|
|
1293
|
+
});
|
|
1294
|
+
if (!res.ok) {
|
|
1295
|
+
const body = await res.text();
|
|
1296
|
+
throw new ZkkycError(`simple-kyc session creation failed: ${res.status} ${body}`, {
|
|
1297
|
+
code: "SIMPLE_KYC_SESSION_FAILED",
|
|
1298
|
+
context: { status: res.status }
|
|
1299
|
+
});
|
|
1300
|
+
}
|
|
1301
|
+
const data = await res.json();
|
|
1302
|
+
const widgetUrl = data.widget_url;
|
|
1303
|
+
onStatus?.({ type: "session_created", widgetUrl });
|
|
1304
|
+
return {
|
|
1305
|
+
widgetUrl,
|
|
1306
|
+
redirect: () => {
|
|
1307
|
+
if (typeof window !== "undefined") {
|
|
1308
|
+
onStatus?.({ type: "redirecting", widgetUrl });
|
|
1309
|
+
window.location.href = widgetUrl;
|
|
1310
|
+
}
|
|
1311
|
+
}
|
|
1312
|
+
};
|
|
1313
|
+
})(),
|
|
1314
|
+
(error) => {
|
|
1315
|
+
if (error instanceof ZkkycError) return error;
|
|
1316
|
+
return new ZkkycError("simple-kyc flow failed to start", {
|
|
1317
|
+
code: "SIMPLE_KYC_SESSION_FAILED",
|
|
1318
|
+
cause: error
|
|
1319
|
+
});
|
|
1320
|
+
}
|
|
1321
|
+
);
|
|
1322
|
+
}
|
|
1323
|
+
function resumeSimpleKycFlow(args) {
|
|
1324
|
+
return ResultAsync2.fromPromise(
|
|
1325
|
+
(async () => {
|
|
1326
|
+
const res = await fetch(`${args.baseUrl}/v1/widget/attestation`, {
|
|
1327
|
+
method: "POST",
|
|
1328
|
+
headers: { "Content-Type": "application/json" },
|
|
1329
|
+
body: JSON.stringify({ code: args.code })
|
|
1330
|
+
});
|
|
1331
|
+
if (!res.ok) {
|
|
1332
|
+
const body = await res.text();
|
|
1333
|
+
throw new ZkkycError(`simple-kyc attestation redemption failed: ${res.status} ${body}`, {
|
|
1334
|
+
code: "SIMPLE_KYC_REDEEM_FAILED",
|
|
1335
|
+
context: { status: res.status }
|
|
1336
|
+
});
|
|
1337
|
+
}
|
|
1338
|
+
const d = await res.json();
|
|
1339
|
+
return {
|
|
1340
|
+
nullifier: d.nullifier,
|
|
1341
|
+
limit: BigInt(d.limit),
|
|
1342
|
+
expiry: BigInt(d.expiry),
|
|
1343
|
+
signature: d.signature,
|
|
1344
|
+
identityHash: d.identity_hash
|
|
1345
|
+
};
|
|
1346
|
+
})(),
|
|
1347
|
+
(error) => {
|
|
1348
|
+
if (error instanceof ZkkycError) return error;
|
|
1349
|
+
return new ZkkycError("simple-kyc attestation redemption failed", {
|
|
1350
|
+
code: "SIMPLE_KYC_REDEEM_FAILED",
|
|
1351
|
+
cause: error
|
|
1352
|
+
});
|
|
1353
|
+
}
|
|
1354
|
+
);
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
// src/zkkyc/orchestrators/zk-passport.ts
|
|
1358
|
+
import { ResultAsync as ResultAsync3 } from "neverthrow";
|
|
1359
|
+
function createZkPassportFlow(params) {
|
|
1360
|
+
return ResultAsync3.fromPromise(
|
|
1184
1361
|
(async () => {
|
|
1185
1362
|
const mod = await import("@zkpassport/sdk").catch(() => {
|
|
1186
1363
|
throw new ZkkycError(
|
|
@@ -1276,7 +1453,7 @@ function createZkPassportFlow(params) {
|
|
|
1276
1453
|
});
|
|
1277
1454
|
const session = {
|
|
1278
1455
|
url,
|
|
1279
|
-
result:
|
|
1456
|
+
result: ResultAsync3.fromPromise(resultPromise, (error) => {
|
|
1280
1457
|
if (error instanceof ZkkycError) return error;
|
|
1281
1458
|
return new ZkkycError("ZK Passport flow failed", {
|
|
1282
1459
|
code: "ZK_PASSPORT_VERIFICATION_FAILED",
|
|
@@ -1301,11 +1478,14 @@ function createZkPassportFlow(params) {
|
|
|
1301
1478
|
export {
|
|
1302
1479
|
DEFAULT_RECLAIM_PROVIDER_IDS,
|
|
1303
1480
|
RECLAIM_APP_LINKS,
|
|
1481
|
+
SIMPLE_KYC_DEFAULT_TENANT,
|
|
1304
1482
|
SOCIAL_PLATFORM_NAMES,
|
|
1305
1483
|
ZK_PASSPORT_APP_LINKS,
|
|
1306
1484
|
ZkkycError,
|
|
1307
1485
|
createReclaimFlow,
|
|
1486
|
+
createSimpleKycFlow,
|
|
1308
1487
|
createZkPassportFlow,
|
|
1309
|
-
createZkkyc
|
|
1488
|
+
createZkkyc,
|
|
1489
|
+
resumeSimpleKycFlow
|
|
1310
1490
|
};
|
|
1311
1491
|
//# sourceMappingURL=zkkyc.mjs.map
|