Example #1
0
        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));
        }
Example #2
0
        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);
        }