affinidi_tdk_common 2.0.0 copy "affinidi_tdk_common: ^2.0.0" to clipboard
affinidi_tdk_common: ^2.0.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_auth_provider/affinidi_tdk_auth_provider.dart';
import 'package:affinidi_tdk_common/affinidi_tdk_common.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;
}
2
likes
160
points
466
downloads

Documentation

API reference

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

License

Apache-2.0 (license)

Dependencies

logging, meta

More

Packages that depend on affinidi_tdk_common