init static method

Future<ReclaimProofRequest> init(
  1. String applicationId,
  2. String appSecret,
  3. String providerId, [
  4. ProofRequestOptions? options,
])

Implementation

static Future<ReclaimProofRequest> init(
  String applicationId,
  String appSecret,
  String providerId, [
  ProofRequestOptions? options,
]) async {
  try {
    validateFunctionParams([
      ParamValidation(
          paramName: 'applicationId', input: applicationId, isString: true),
      ParamValidation(
          paramName: 'providerId', input: providerId, isString: true),
      ParamValidation(
          paramName: 'appSecret', input: appSecret, isString: true),
    ], 'the constructor');

    if (options != null) {
      if (options.acceptAiProviders != null) {
        validateFunctionParams([
          ParamValidation(
              paramName: 'acceptAiProviders',
              input: options.acceptAiProviders),
        ], 'the constructor');
      }
      if (options.useAppClip != null) {
        validateFunctionParams([
          ParamValidation(paramName: 'useAppClip', input: options.useAppClip),
        ], 'the constructor');
      }
      if (options.log != null) {
        validateFunctionParams([
          ParamValidation(paramName: 'log', input: options.log),
        ], 'the constructor');
      }
    }

    final proofRequestInstance =
        ReclaimProofRequest._(applicationId, providerId, options);

    final signature =
        await proofRequestInstance._generateSignature(appSecret);
    proofRequestInstance._setSignature(signature);

    final data = await initSession(providerId, applicationId,
        proofRequestInstance._timeStamp, signature);
    proofRequestInstance._sessionId = data.sessionId;

    await proofRequestInstance._buildProofRequest(data.provider);

    return proofRequestInstance;
  } catch (error) {
    logger.info('Error initializing ReclaimProofRequest: $error');
    throw initError('Failed to initialize ReclaimProofRequest', error);
  }
}