public override Task <CryptoDepositAddressResponse> GetCryptoDepositAddress(CryptoDepositAddressRequest request, ServerCallContext context) { var resp = new CryptoDepositAddressResponse(); resp.Address = new CryptoDepositAddressResponse.Types.CryptoDepositAddress() { Address = "ADDRESS", AddressExtension = "EXTENSION", BaseAddress = "BASE" }; return(Task.FromResult(resp)); }
public override async Task <CryptoDepositAddressResponse> GetCryptoDepositAddress( CryptoDepositAddressRequest request, ServerCallContext context) { var result = new CryptoDepositAddressResponse(); var token = context.GetBearerToken(); CryptoDepositAddressRespModel response; try { response = await _walletApiV2Client.GetCryptosDepositAddressesAsync(request.AssetId, token); } catch (ApiExceptionV2 ex) { if (ex.StatusCode == 400) { var error = JsonConvert.DeserializeObject <ErrorV2Model>(ex.Response); if (error.Error == "BlockchainWalletDepositAddressNotGenerated") { var address = await GenerateAndGetAddressAsync(request.AssetId, token); if (address != null) { result.Body = address; } return(result); } } throw; } if (response != null) { result.Body = new CryptoDepositAddressResponse.Types.Body { Address = string.IsNullOrEmpty(response.BaseAddress) ? response.Address : response.BaseAddress, Tag = response.AddressExtension ?? string.Empty }; } return(result); }