fund method

  1. @override
Future<CrossmintWalletFundResult> fund({
  1. required String walletId,
  2. required CrossmintWalletFundRequest request,
})
override

Implementation

@override
Future<CrossmintWalletFundResult> fund({
  required String walletId,
  required CrossmintWalletFundRequest request,
}) async {
  final CrossmintJsonMap payload = Map<String, Object?>.from(request.raw);
  payload.putIfAbsent('amount', () => request.amount);
  final String? normalizedToken = request.token?.trim().toLowerCase();
  if (normalizedToken != null && normalizedToken.isNotEmpty) {
    payload.putIfAbsent('token', () => normalizedToken);
  } else if (payload['token'] case final String rawToken
      when rawToken.trim().isNotEmpty) {
    payload['token'] = rawToken.trim().toLowerCase();
  }
  if (request.chain != null && request.chain!.trim().isNotEmpty) {
    payload.putIfAbsent('chain', () => request.chain);
  }
  final String fundingTarget = await _walletLocatorForFunding(
    walletId,
    service: _service,
  );
  final CrossmintJsonMap response = await _service.fundWallet(
    fundingTarget,
    payload,
  );
  return CrossmintWalletFundResult(raw: response);
}