Skip to content

Commit

Permalink
feat: Add Civic pass credential design and moved to polygon credentia…
Browse files Browse the repository at this point in the history
…ls section #1733
  • Loading branch information
bibash28 committed Jul 19, 2023
1 parent 1687018 commit a21eb7d
Show file tree
Hide file tree
Showing 16 changed files with 88 additions and 4 deletions.
Binary file added assets/image/civic_pass_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions lib/app/shared/constants/image_strings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ class ImageStrings {
'$imagePath/kyc_age_credential_card.png';
static const String kycCountryOfResidenceCard =
'$imagePath/kyc_country_of_residence_card.png';
static const String civicPassCard = '$imagePath/civic_pass_card.png';
static const String euDiplomaCard = '$imagePath/eu_diploma_card.png';
static const String defiComplianceCard =
'$imagePath/defi-compliance-card.png';
Expand Down
3 changes: 3 additions & 0 deletions lib/app/shared/constants/urls.dart
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ class Urls {
static const String proofOfTwitterStatsUrl =
'https://issuer.talao.co/credential-manifest/polygonid/ProofOfTwitterStats';

static const String civicPassCredentialUrl =
'https://issuer.talao.co/credential-manifest/polygonid/civicpasscredential';

static const String chainbornMembershipCardUrl =
'https://issuer.talao.co/chainborn/membershipcard/';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,5 @@ enum CredentialSubjectType {
voucher,
walletCredential,
proofOfTwitterStats,
civicPassCredential,
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType {
case CredentialSubjectType.euDiplomaCard:
case CredentialSubjectType.euVerifiableId:
case CredentialSubjectType.proofOfTwitterStats:
case CredentialSubjectType.civicPassCredential:
return Colors.white;
}
}
Expand Down Expand Up @@ -157,6 +158,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType {
case CredentialSubjectType.kycAgeCredential:
case CredentialSubjectType.kycCountryOfResidence:
case CredentialSubjectType.proofOfTwitterStats:
case CredentialSubjectType.civicPassCredential:
return Icons.perm_identity;
}
}
Expand Down Expand Up @@ -288,6 +290,8 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType {
return 'KYCCountryOfResidenceCredential';
case CredentialSubjectType.proofOfTwitterStats:
return 'ProofOfTwitterStats';
case CredentialSubjectType.civicPassCredential:
return 'CivicPassCredential';
case CredentialSubjectType.defaultCredential:
return '';
}
Expand Down Expand Up @@ -411,6 +415,8 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType {
return KYCCountryOfResidenceModel.fromJson(json);
case CredentialSubjectType.proofOfTwitterStats:
return ProofOfTwitterStatsModel.fromJson(json);
case CredentialSubjectType.civicPassCredential:
return CivicPassCredentialModel.fromJson(json);
}
}

Expand Down Expand Up @@ -611,6 +617,8 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType {
return 'KYC Country of Residence';
case CredentialSubjectType.proofOfTwitterStats:
return 'Proof Of Twitter Stats';
case CredentialSubjectType.civicPassCredential:
return 'Civic Pass Credential';
case CredentialSubjectType.defaultCredential:
return '';
}
Expand All @@ -619,7 +627,6 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType {
bool get weCanRemoveItIfCredentialExist {
switch (this) {
case CredentialSubjectType.defiCompliance:
return true;
case CredentialSubjectType.bloometaPass:
return true;
case CredentialSubjectType.troopezPass:
Expand Down Expand Up @@ -732,6 +739,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType {
return false;
case CredentialSubjectType.kycCountryOfResidence:
case CredentialSubjectType.proofOfTwitterStats:
case CredentialSubjectType.civicPassCredential:
return false;
}
}
Expand Down Expand Up @@ -853,6 +861,7 @@ extension CredentialSubjectTypeExtension on CredentialSubjectType {
return 0;
case CredentialSubjectType.kycCountryOfResidence:
case CredentialSubjectType.proofOfTwitterStats:
case CredentialSubjectType.civicPassCredential:
return 0;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'package:altme/app/app.dart';
import 'package:altme/connection_bridge/connection_bridge.dart';
import 'package:altme/wallet/wallet.dart';
import 'package:bloc/bloc.dart';
import 'package:convert/convert.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:json_annotation/json_annotation.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ class ConfirmConnectionCubit extends Cubit<ConfirmConnectionState> {
};

await walletConnectCubit.web3Wallet!.approveSession(
id: sessionProposalEvent!.id,
id: sessionProposalEvent.id,
namespaces: walletNamespaces,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import 'package:beacon_flutter/beacon_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:secure_storage/secure_storage.dart' as secure_storage;
import 'package:walletconnect_flutter_v2/walletconnect_flutter_v2.dart';

class ConfirmConnectionPage extends StatelessWidget {
const ConfirmConnectionPage({
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import 'package:altme/app/app.dart';
import 'package:altme/dashboard/dashboard.dart';
import 'package:json_annotation/json_annotation.dart';

part 'civic_pass_credential_model.g.dart';

@JsonSerializable(explicitToJson: true)
class CivicPassCredentialModel extends CredentialSubjectModel {
CivicPassCredentialModel({
super.id,
super.type,
super.issuedBy,
super.offeredBy,
}) : super(
credentialSubjectType: CredentialSubjectType.civicPassCredential,
credentialCategory: CredentialCategory.polygonidCards,
);

factory CivicPassCredentialModel.fromJson(Map<String, dynamic> json) =>
_$CivicPassCredentialModelFromJson(json);

@override
Map<String, dynamic> toJson() => _$CivicPassCredentialModelToJson(this);
}
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ class DiscoverDummyCredential extends Equatable {
case CredentialSubjectType.kycAgeCredential:
case CredentialSubjectType.kycCountryOfResidence:
case CredentialSubjectType.proofOfTwitterStats:
case CredentialSubjectType.civicPassCredential:
}

return DiscoverDummyCredential(
Expand Down
1 change: 1 addition & 0 deletions lib/dashboard/home/tab_bar/credentials/models/model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export 'bloometa/bloometa_pass_model.dart';
export 'bunny_pass/bunny_pass_model.dart';
export 'certificate_of_employment/certificate_of_employment_model.dart';
export 'chainborn_membership/chainborn_membership_model.dart';
export 'civic_pass_credential/civic_pass_credential_model.dart';
export 'credential/credential.dart';
export 'credential/evidence.dart';
export 'credential/proof.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,13 @@ class PolygonIdCredentialOfferPage extends StatelessWidget {
issuerName: '',
value: '',
);
} else if (credentialSubjectType ==
CredentialSubjectType.civicPassCredential) {
widget = const CredentialBaseWidget(
cardBackgroundImagePath: ImageStrings.civicPassCard,
issuerName: 'CIVIC',
value: '',
);
} else {
widget = DefaultCredentialListWidget(
credentialModel: CredentialModel(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,9 @@ class CredentialDisplay extends StatelessWidget {

case CredentialSubjectType.proofOfTwitterStats:
return ProofOfTwitterStatsWidget(credentialModel: credentialModel);

case CredentialSubjectType.civicPassCredential:
return CivicPassCredentialWidget(credentialModel: credentialModel);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:altme/app/app.dart';
import 'package:altme/dashboard/dashboard.dart';
import 'package:flutter/material.dart';

class CivicPassCredentialWidget extends StatelessWidget {
const CivicPassCredentialWidget({
super.key,
required this.credentialModel,
});

final CredentialModel credentialModel;

@override
Widget build(BuildContext context) {
// final civicPassCredentialModel = credentialModel
// .credentialPreview.credentialSubjectModel as CivicPassCredentialModel;

return CredentialBaseWidget(
cardBackgroundImagePath: ImageStrings.civicPassCard,
issuerName: 'CIVIC',
value: 'Your ID is verified',
issuanceDate: UiDate.formatDateForCredentialCard(
credentialModel.credentialPreview.issuanceDate,
),
expirationDate: credentialModel.expirationDate == null
? '--'
: UiDate.formatDateForCredentialCard(credentialModel.expirationDate!),
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export 'bloometa_pass_widget.dart';
export 'bunny_pass_widget.dart';
export 'certificate_of_employment_widget.dart';
export 'chainborn_membership_widget.dart';
export 'civic_pass_credential_widget.dart';
export 'credential_base_widget.dart';
export 'default_credential_detail_widget.dart';
export 'default_credential_list_widget.dart';
Expand Down
5 changes: 5 additions & 0 deletions lib/polygon_id/cubit/polygon_id_cubit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,11 @@ class PolygonIdCubit extends Cubit<PolygonIdState> {
final response = await client.get(Urls.proofOfTwitterStatsUrl);
credentialManifest =
CredentialManifest.fromJson(response as Map<String, dynamic>);
} else if (claimEntity.type ==
CredentialSubjectType.civicPassCredential.name) {
final response = await client.get(Urls.civicPassCredentialUrl);
credentialManifest =
CredentialManifest.fromJson(response as Map<String, dynamic>);
}
} catch (e) {
log.e('can not get the credntials manifest for polygon error: $e');
Expand Down

0 comments on commit a21eb7d

Please sign in to comment.