Sha256: ec49815d1870bdebf3e56fc18309f2c272a75f08aa1b389c21bbf156091c6202

Contents?: true

Size: 777 Bytes

Versions: 1

Compression:

Stored size: 777 Bytes

Contents

# frozen_string_literal: true

module Bitcoin
  module Grpc
    module Api
      class GetTokenBalance
        attr_reader :spv

        def initialize(spv)
          @spv = spv
        end

        def execute(request)
          height = spv.chain.latest_block.height
          assets = spv.wallet.list_unspent_assets_in_account(
            request.asset_type,
            request.asset_id,
            account_name: request.account_name,
            current_block_height: height,
            min: 0,
            max: 9999999
          )
          balance = assets.sum(&:value)
          token_balance = assets.sum(&:asset_quantity)

          Bitcoin::Grpc::GetTokenBalanceResponse.new(balance: balance, token_balance: token_balance)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bitcoinrb-grpc-0.1.9 lib/bitcoin/grpc/api/get_token_balance.rb