affinidi_tdk_common 1.7.0 copy "affinidi_tdk_common: ^1.7.0" to clipboard
affinidi_tdk_common: ^1.7.0 copied to clipboard

Common package for Affinidi TDK with Vault utilities to generate claim and share links

example/main.dart

import 'package:affinidi_tdk_common/affinidi_tdk_common.dart';
import 'package:affinidi_tdk_auth_provider/affinidi_tdk_auth_provider.dart';
import 'package:affinidi_tdk_credential_issuance_client/affinidi_tdk_credential_issuance_client.dart';
import 'package:affinidi_tdk_iota_client/affinidi_tdk_iota_client.dart';

void main() async {
  final authProvider = AuthProvider(
    projectId: '',
    tokenId: '',
    privateKey: '',
    keyId: '',
    passphrase: '',
  );

  // Claim a credential Vault link example
  final affinidiVaultClaimLink = await _claimCredentialExample(authProvider);
  print(affinidiVaultClaimLink);

  // Share a credential Vault link example
  final affinidiVaultShareLink = await _shareCredentialExample(authProvider);
  print(affinidiVaultShareLink);
}

Future<String> _claimCredentialExample(AuthProvider authProvider) async {
  final issuanceClient = AffinidiTdkCredentialIssuanceClient(
      authTokenHook: authProvider.fetchProjectScopedToken);
  final issuanceApi = issuanceClient.getIssuanceApi();

  final startIssuanceInputBuilder =
      StartIssuanceInputBuilder(); // Add credential issuance data here

  final offer = (await issuanceApi.startIssuance(
          projectId: '', startIssuanceInput: startIssuanceInputBuilder.build()))
      .data;

  // Use the vault utilities from the common package to build the claim link
  final affinidiVaultClaimLink =
      VaultUtils.buildClaimLink(offer!.credentialOfferUri);

  return affinidiVaultClaimLink;
}

Future<String> _shareCredentialExample(AuthProvider authProvider) async {
  final iotaClient = AffinidiTdkIotaClient(
      authTokenHook: authProvider.fetchProjectScopedToken);
  final iotaApi = iotaClient.getIotaApi();

  final initiateDataSharingRequestInputBuilder =
      InitiateDataSharingRequestInputBuilder()
        ..mode = InitiateDataSharingRequestInputModeEnum.redirect
        ..configurationId = ''
        ..queryId = ''
        ..nonce = ''
        ..redirectUri = ''
        ..correlationId = '';
  final iotaRequest = (await iotaApi.initiateDataSharingRequest(
          initiateDataSharingRequestInput:
              initiateDataSharingRequestInputBuilder.build()))
      .data;

  // Use the vault utilities from the common package to build the share link
  final affinidiVaultClaimLink =
      VaultUtils.buildShareLink(iotaRequest!.data!.jwt, 'my_client_id');

  return affinidiVaultClaimLink;
}
1
likes
155
points
691
downloads

Publisher

verified publisheraffinidi.com

Weekly Downloads

Common package for Affinidi TDK with Vault utilities to generate claim and share links

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

logging, meta

More

Packages that depend on affinidi_tdk_common