Add optional KYC flow and service-backed account limits
This commit is contained in:
1 parent
61ccfc1844
commit
3397f04ab7
38 files changed
+3443
-36
No files matched your search
@@ -0,0 +1,54 @@
|
||||
import 'dart:typed_data';
|
||||
|
||||
enum IdentityStatus { unverified, pending, approved, changesRequested, denied }
|
||||
|
||||
enum ReviewReason {
|
||||
passportUnreadable,
|
||||
selfieUnreadable,
|
||||
passportExpired,
|
||||
unableToVerify,
|
||||
}
|
||||
|
||||
enum PhotoKind { passport, selfie }
|
||||
|
||||
enum KycError {
|
||||
unavailable,
|
||||
internal,
|
||||
permission,
|
||||
format,
|
||||
tooLarge,
|
||||
unreadable,
|
||||
tooSmall,
|
||||
incomplete,
|
||||
sessionExpired,
|
||||
rateLimited,
|
||||
conflict,
|
||||
}
|
||||
|
||||
class KycException implements Exception {
|
||||
const KycException(this.code);
|
||||
final KycError code;
|
||||
}
|
||||
|
||||
class Identity {
|
||||
const Identity({
|
||||
required this.status,
|
||||
this.reason,
|
||||
this.submissionId,
|
||||
this.simulated = false,
|
||||
});
|
||||
final IdentityStatus status;
|
||||
final ReviewReason? reason;
|
||||
final String? submissionId;
|
||||
final bool simulated;
|
||||
bool get canSubmit =>
|
||||
status == IdentityStatus.unverified ||
|
||||
status == IdentityStatus.changesRequested;
|
||||
}
|
||||
|
||||
/// Ephemeral image data only. Never serialize this model into storage or telemetry.
|
||||
class Photo {
|
||||
Photo(Uint8List bytes)
|
||||
: bytes = Uint8List.fromList(bytes).asUnmodifiableView();
|
||||
final Uint8List bytes;
|
||||
}
|
||||
Reference in new issue
Block a user