reclaim_sdk 1.8.3
reclaim_sdk: ^1.8.3 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: '0xDb69e6a62d12Ad1175BccaC74A8Da60d3e4c6bc2', log: true);
void startVerificationFlow() async {
proofRequest.setAppCallbackUrl('https://google.com');
proofRequest.addContext('YOUR_CONTEXT_ADDRESS', 'YOUR_CONTEXT_MESSAGE');
await proofRequest
.buildProofRequest("1d270ba2-8680-415b-b7e2-2cebd47f6f02");
proofRequest.setSignature(proofRequest.generateSignature(
'0xbe2745c6ea3534542efffbcb41bef4d0a01ec458188850d74bf639c2d1dd6611'));
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'),
),
);
}
}