reclaim_sdk 1.1.0 copy "reclaim_sdk: ^1.1.0" to clipboard
reclaim_sdk: ^1.1.0 copied to clipboard

Reclaim SDK provides a way to let your users import data from other websites into your app in a secure, privacy preserving manner using zero knowledge proofs right in your Flutter Application.

example/lib/main.dart

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:reclaim_sdk/flutter_reclaim.dart';
import 'package:reclaim_sdk/types.dart';
import 'package:logger/logger.dart';

void main() {
  runApp(const MyApp());
}

var logger = Logger(
  printer: PrettyPrinter(methodCount: 10),
);

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Reclaim SDK Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Reclaim SDK Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});
  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String data = "";

  ProofRequest proofRequest = ProofRequest(
      applicationId: '0x5Ccd1f72E3347629943e6a4aA9C22803F1064Ebf', log: true);

  void startVerificationFlow() async {
    proofRequest.setAppCallbackUrl('mychat://chat/');

    proofRequest.addContext('YOUR_CONTEXT_ADDRESS', 'YOUR_CONTEXT_MESSAGE');
    await proofRequest
        .buildProofRequest("1bba104c-f7e3-4b58-8b42-f8c0346cdeab");
    proofRequest.setSignature(proofRequest.generateSignature(
        '0x2ef3c18823e6e77ed0888a0b4045efc36f22a35f3ed10481d4b3acc2b21e0188'));

    final verificationRequest = await proofRequest.createVerificationRequest();
    final [
      requestUrl,
      statusUrl
    ] = [verificationRequest['requestUrl'], verificationRequest['statusUrl']];

    logger.i(requestUrl);
    logger.i(statusUrl);

    final startSessionParam = StartSessionParams(
      onSuccessCallback: (proof) => setState(() {
        final jsonContext =
            jsonDecode(proof.claimData.context) as Map<String, dynamic>;
        final jsonExtractedParameters = jsonContext["extractedParameters"];
        logger.i(jsonContext);
        data = jsonExtractedParameters["CLAIM_DATA"];
      }),
      onFailureCallback: (error) => {
        setState(() {
          data = 'Error: $error';
        })
      },
    );

    await proofRequest.startSession(startSessionParam);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text(
              'Prove that you have Steam ID By clicking on Verify button:',
            ),
            Text(
              data,
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: startVerificationFlow,
        tooltip: 'Verify ',
        child: const Text('Verify'),
      ),
    );
  }
}
3
likes
0
points
2
downloads

Publisher

verified publisherdev.reclaimprotocol.org

Weekly Downloads

Reclaim SDK provides a way to let your users import data from other websites into your app in a secure, privacy preserving manner using zero knowledge proofs right in your Flutter Application.

Homepage
Repository

License

unknown (license)

Dependencies

eth_sig_util, flutter, http, logger, uni_links, url_launcher, uuid, web3dart

More

Packages that depend on reclaim_sdk