Skip to content

Commit

Permalink
Add a WEI, FRI input validation
Browse files Browse the repository at this point in the history
  • Loading branch information
rukafe0x committed Feb 14, 2025
1 parent c1e1ab1 commit 16901aa
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,21 @@ import 'package:freezed_annotation/freezed_annotation.dart';
part 'mint_transaction.freezed.dart';
part 'mint_transaction.g.dart';

String _validateUnit(String unit) {
if (unit != 'WEI' && unit != 'FRI') {
throw ArgumentError('Invalid unit: $unit');
}
return unit;
}

/// Parameters for minting tokens
@freezed
class MintRequest with _$MintRequest {
const factory MintRequest({
required String address, // "0x6e3205f..."
required int amount, // 500000
/// Can be either "WEI" or "FRI"
required String unit, // "WEI" | "FRI"
@JsonKey(fromJson: _validateUnit) required String unit, // "WEI" | "FRI"
}) = _MintRequest;

factory MintRequest.fromJson(Map<String, dynamic> json) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ mixin _$MintRequest {
String get address => throw _privateConstructorUsedError; // "0x6e3205f..."
int get amount => throw _privateConstructorUsedError; // 500000
/// Can be either "WEI" or "FRI"
@JsonKey(fromJson: _validateUnit)
String get unit => throw _privateConstructorUsedError;

/// Serializes this MintRequest to a JSON map.
Expand All @@ -41,7 +42,10 @@ abstract class $MintRequestCopyWith<$Res> {
MintRequest value, $Res Function(MintRequest) then) =
_$MintRequestCopyWithImpl<$Res, MintRequest>;
@useResult
$Res call({String address, int amount, String unit});
$Res call(
{String address,
int amount,
@JsonKey(fromJson: _validateUnit) String unit});
}

/// @nodoc
Expand Down Expand Up @@ -88,7 +92,10 @@ abstract class _$$MintRequestImplCopyWith<$Res>
__$$MintRequestImplCopyWithImpl<$Res>;
@override
@useResult
$Res call({String address, int amount, String unit});
$Res call(
{String address,
int amount,
@JsonKey(fromJson: _validateUnit) String unit});
}

/// @nodoc
Expand Down Expand Up @@ -129,7 +136,9 @@ class __$$MintRequestImplCopyWithImpl<$Res>
@JsonSerializable()
class _$MintRequestImpl implements _MintRequest {
const _$MintRequestImpl(
{required this.address, required this.amount, required this.unit});
{required this.address,
required this.amount,
@JsonKey(fromJson: _validateUnit) required this.unit});

factory _$MintRequestImpl.fromJson(Map<String, dynamic> json) =>
_$$MintRequestImplFromJson(json);
Expand All @@ -142,6 +151,7 @@ class _$MintRequestImpl implements _MintRequest {
// 500000
/// Can be either "WEI" or "FRI"
@override
@JsonKey(fromJson: _validateUnit)
final String unit;

@override
Expand Down Expand Up @@ -181,9 +191,10 @@ class _$MintRequestImpl implements _MintRequest {

abstract class _MintRequest implements MintRequest {
const factory _MintRequest(
{required final String address,
required final int amount,
required final String unit}) = _$MintRequestImpl;
{required final String address,
required final int amount,
@JsonKey(fromJson: _validateUnit) required final String unit}) =
_$MintRequestImpl;

factory _MintRequest.fromJson(Map<String, dynamic> json) =
_$MintRequestImpl.fromJson;
Expand All @@ -194,6 +205,7 @@ abstract class _MintRequest implements MintRequest {
int get amount; // 500000
/// Can be either "WEI" or "FRI"
@override
@JsonKey(fromJson: _validateUnit)
String get unit;

/// Create a copy of MintRequest
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 16901aa

Please sign in to comment.