=begin
#Tatum API

## Authentication  <!-- ReDoc-Inject: <security-definitions> -->

OpenAPI spec version: 3.9.0

Generated by: https://github.com/swagger-api/swagger-codegen.git
Swagger Codegen version: 3.0.31
=end

module Tatum
  class BlockchainLitecoinApi
    attr_accessor :api_client

    def initialize(api_client = ApiClient.default)
      @api_client = api_client
    end
    # Broadcast signed Litecoin transaction
    # <h4>5 credits per API call.</h4><br/> <p>Broadcast signed transaction to Litecoin blockchain. This method is used internally from Tatum KMS, Tatum Middleware or Tatum client libraries. It is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchian.</p> 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [TransactionHashKMS]
    def ltc_broadcast(body, opts = {})
      data, _status_code, _headers = ltc_broadcast_with_http_info(body, opts)
      data
    end

    # Broadcast signed Litecoin transaction
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt; &lt;p&gt;Broadcast signed transaction to Litecoin blockchain. This method is used internally from Tatum KMS, Tatum Middleware or Tatum client libraries. It is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchian.&lt;/p&gt; 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(TransactionHashKMS, Integer, Hash)>] TransactionHashKMS data, response status code and response headers
    def ltc_broadcast_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_broadcast ...'
      end
      # verify the required parameter 'body' is set
      if @api_client.config.client_side_validation && body.nil?
        fail ArgumentError, "Missing the required parameter 'body' when calling BlockchainLitecoinApi.ltc_broadcast"
      end
      # resource path
      local_var_path = '/v3/litecoin/broadcast'

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] || @api_client.object_to_http_body(body) 

      return_type = opts[:return_type] || 'TransactionHashKMS' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_broadcast\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Generate Litecoin deposit address from Extended public key
    # <h4>5 credits per API call.</h4><br/> <p>Generate Litecoin deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate up to 2^31 addresses starting from index 0 until 2^31 - 1.</p> 
    # @param xpub Extended public key of wallet.
    # @param index Derivation index of desired address to be generated.
    # @param [Hash] opts the optional parameters
    # @return [InlineResponse20024]
    def ltc_generate_address(xpub, index, opts = {})
      data, _status_code, _headers = ltc_generate_address_with_http_info(xpub, index, opts)
      data
    end

    # Generate Litecoin deposit address from Extended public key
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt; &lt;p&gt;Generate Litecoin deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate up to 2^31 addresses starting from index 0 until 2^31 - 1.&lt;/p&gt; 
    # @param xpub Extended public key of wallet.
    # @param index Derivation index of desired address to be generated.
    # @param [Hash] opts the optional parameters
    # @return [Array<(InlineResponse20024, Integer, Hash)>] InlineResponse20024 data, response status code and response headers
    def ltc_generate_address_with_http_info(xpub, index, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_generate_address ...'
      end
      # verify the required parameter 'xpub' is set
      if @api_client.config.client_side_validation && xpub.nil?
        fail ArgumentError, "Missing the required parameter 'xpub' when calling BlockchainLitecoinApi.ltc_generate_address"
      end
      # verify the required parameter 'index' is set
      if @api_client.config.client_side_validation && index.nil?
        fail ArgumentError, "Missing the required parameter 'index' when calling BlockchainLitecoinApi.ltc_generate_address"
      end
      # resource path
      local_var_path = '/v3/litecoin/address/{xpub}/{index}'.sub('{' + 'xpub' + '}', xpub.to_s).sub('{' + 'index' + '}', index.to_s)

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'InlineResponse20024' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_generate_address\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Generate Litecoin private key
    # <h4>5 credits per API call.</h4><br/> <p>Generate private key for address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic can generate up to 2^32 private keys starting from index 0 until 2^31 - 1.</p> 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [PrivKey]
    def ltc_generate_address_private_key(body, opts = {})
      data, _status_code, _headers = ltc_generate_address_private_key_with_http_info(body, opts)
      data
    end

    # Generate Litecoin private key
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt; &lt;p&gt;Generate private key for address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic can generate up to 2^32 private keys starting from index 0 until 2^31 - 1.&lt;/p&gt; 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(PrivKey, Integer, Hash)>] PrivKey data, response status code and response headers
    def ltc_generate_address_private_key_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_generate_address_private_key ...'
      end
      # verify the required parameter 'body' is set
      if @api_client.config.client_side_validation && body.nil?
        fail ArgumentError, "Missing the required parameter 'body' when calling BlockchainLitecoinApi.ltc_generate_address_private_key"
      end
      # resource path
      local_var_path = '/v3/litecoin/wallet/priv'

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] || @api_client.object_to_http_body(body) 

      return_type = opts[:return_type] || 'PrivKey' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_generate_address_private_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Generate Litecoin wallet
    # <h4>5 credits per API call.</h4><br/><p>Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys.<br/>Each address is identified by 3 main values:<ul><li>Private Key - your secret value, which should never be revealed</li><li>Public Key - public address to be published</li><li>Derivation index - index of generated address</li></ul></p><p>Tatum follows BIP44 specification and generates for Litecoin wallet with derivation path m'/44'/2'/0'/0. More about BIP44 HD wallets can be found here - <a target=\"_blank\" href=\"https://github.com/litecoin/bips/blob/master/bip-0044.mediawiki\">https://github.com/litecoin/bips/blob/master/bip-0044.mediawiki</a>. Generate BIP44 compatible Litecoin wallet.</p> 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :mnemonic Mnemonic to use for generation of extended public and private keys.
    # @return [Wallet]
    def ltc_generate_wallet(opts = {})
      data, _status_code, _headers = ltc_generate_wallet_with_http_info(opts)
      data
    end

    # Generate Litecoin wallet
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt;&lt;p&gt;Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys.&lt;br/&gt;Each address is identified by 3 main values:&lt;ul&gt;&lt;li&gt;Private Key - your secret value, which should never be revealed&lt;/li&gt;&lt;li&gt;Public Key - public address to be published&lt;/li&gt;&lt;li&gt;Derivation index - index of generated address&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Tatum follows BIP44 specification and generates for Litecoin wallet with derivation path m&#x27;/44&#x27;/2&#x27;/0&#x27;/0. More about BIP44 HD wallets can be found here - &lt;a target&#x3D;\&quot;_blank\&quot; href&#x3D;\&quot;https://github.com/litecoin/bips/blob/master/bip-0044.mediawiki\&quot;&gt;https://github.com/litecoin/bips/blob/master/bip-0044.mediawiki&lt;/a&gt;. Generate BIP44 compatible Litecoin wallet.&lt;/p&gt; 
    # @param [Hash] opts the optional parameters
    # @option opts [String] :mnemonic Mnemonic to use for generation of extended public and private keys.
    # @return [Array<(Wallet, Integer, Hash)>] Wallet data, response status code and response headers
    def ltc_generate_wallet_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_generate_wallet ...'
      end
      # resource path
      local_var_path = '/v3/litecoin/wallet'

      # query parameters
      query_params = opts[:query_params] || {}
      query_params[:'mnemonic'] = opts[:'mnemonic'] if !opts[:'mnemonic'].nil?

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'Wallet' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_generate_wallet\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Litecoin Balance of the address
    # <h4>5 credits per API call.</h4><br/><p>Get Litecoin Balance of the address.</p>
    # @param address Address
    # @param [Hash] opts the optional parameters
    # @return [BtcBasedBalance]
    def ltc_get_balance_of_address(address, opts = {})
      data, _status_code, _headers = ltc_get_balance_of_address_with_http_info(address, opts)
      data
    end

    # Get Litecoin Balance of the address
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt;&lt;p&gt;Get Litecoin Balance of the address.&lt;/p&gt;
    # @param address Address
    # @param [Hash] opts the optional parameters
    # @return [Array<(BtcBasedBalance, Integer, Hash)>] BtcBasedBalance data, response status code and response headers
    def ltc_get_balance_of_address_with_http_info(address, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_get_balance_of_address ...'
      end
      # verify the required parameter 'address' is set
      if @api_client.config.client_side_validation && address.nil?
        fail ArgumentError, "Missing the required parameter 'address' when calling BlockchainLitecoinApi.ltc_get_balance_of_address"
      end
      # resource path
      local_var_path = '/v3/litecoin/address/balance/{address}'.sub('{' + 'address' + '}', address.to_s)

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'BtcBasedBalance' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_get_balance_of_address\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Litecoin Block by hash or height
    # <h4>5 credits per API call.</h4><br/><p>Get Litecoin Block detail by block hash or height.</p>
    # @param hash Block hash or height.
    # @param [Hash] opts the optional parameters
    # @return [LtcBlock]
    def ltc_get_block(hash, opts = {})
      data, _status_code, _headers = ltc_get_block_with_http_info(hash, opts)
      data
    end

    # Get Litecoin Block by hash or height
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt;&lt;p&gt;Get Litecoin Block detail by block hash or height.&lt;/p&gt;
    # @param hash Block hash or height.
    # @param [Hash] opts the optional parameters
    # @return [Array<(LtcBlock, Integer, Hash)>] LtcBlock data, response status code and response headers
    def ltc_get_block_with_http_info(hash, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_get_block ...'
      end
      # verify the required parameter 'hash' is set
      if @api_client.config.client_side_validation && hash.nil?
        fail ArgumentError, "Missing the required parameter 'hash' when calling BlockchainLitecoinApi.ltc_get_block"
      end
      # resource path
      local_var_path = '/v3/litecoin/block/{hash}'.sub('{' + 'hash' + '}', hash.to_s)

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'LtcBlock' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_get_block\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Litecoin Blockchain Information
    # <h4>5 credits per API call.</h4><br/><p>Get Litecoin Blockchain Information. Obtain basic info like testnet / mainnet version of the chain, current block number and it's hash.</p>
    # @param [Hash] opts the optional parameters
    # @return [LtcInfo]
    def ltc_get_block_chain_info(opts = {})
      data, _status_code, _headers = ltc_get_block_chain_info_with_http_info(opts)
      data
    end

    # Get Litecoin Blockchain Information
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt;&lt;p&gt;Get Litecoin Blockchain Information. Obtain basic info like testnet / mainnet version of the chain, current block number and it&#x27;s hash.&lt;/p&gt;
    # @param [Hash] opts the optional parameters
    # @return [Array<(LtcInfo, Integer, Hash)>] LtcInfo data, response status code and response headers
    def ltc_get_block_chain_info_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_get_block_chain_info ...'
      end
      # resource path
      local_var_path = '/v3/litecoin/info'

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'LtcInfo' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_get_block_chain_info\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Litecoin Block hash
    # <h4>5 credits per API call.</h4><br/><p>Get Litecoin Block hash. Returns hash of the block to get the block detail.</p>
    # @param i The number of blocks preceding a particular block on a block chain.
    # @param [Hash] opts the optional parameters
    # @return [InlineResponse20023]
    def ltc_get_block_hash(i, opts = {})
      data, _status_code, _headers = ltc_get_block_hash_with_http_info(i, opts)
      data
    end

    # Get Litecoin Block hash
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt;&lt;p&gt;Get Litecoin Block hash. Returns hash of the block to get the block detail.&lt;/p&gt;
    # @param i The number of blocks preceding a particular block on a block chain.
    # @param [Hash] opts the optional parameters
    # @return [Array<(InlineResponse20023, Integer, Hash)>] InlineResponse20023 data, response status code and response headers
    def ltc_get_block_hash_with_http_info(i, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_get_block_hash ...'
      end
      # verify the required parameter 'i' is set
      if @api_client.config.client_side_validation && i.nil?
        fail ArgumentError, "Missing the required parameter 'i' when calling BlockchainLitecoinApi.ltc_get_block_hash"
      end
      # resource path
      local_var_path = '/v3/litecoin/block/hash/{i}'.sub('{' + 'i' + '}', i.to_s)

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'InlineResponse20023' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_get_block_hash\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Mempool Transactions
    # <h4>1 credit per API call.</h4><br/><p>Get Litecoin Transaction ids in the mempool.</p>
    # @param [Hash] opts the optional parameters
    # @return [Array<String>]
    def ltc_get_mempool(opts = {})
      data, _status_code, _headers = ltc_get_mempool_with_http_info(opts)
      data
    end

    # Get Mempool Transactions
    # &lt;h4&gt;1 credit per API call.&lt;/h4&gt;&lt;br/&gt;&lt;p&gt;Get Litecoin Transaction ids in the mempool.&lt;/p&gt;
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<String>, Integer, Hash)>] Array<String> data, response status code and response headers
    def ltc_get_mempool_with_http_info(opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_get_mempool ...'
      end
      # resource path
      local_var_path = '/v3/litecoin/mempool'

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'Array<String>' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_get_mempool\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Litecoin Transaction by hash
    # <h4>5 credits per API call.</h4><br/><p>Get Litecoin Transaction detail by transaction hash.</p>
    # @param hash Transaction hash
    # @param [Hash] opts the optional parameters
    # @return [LtcTx]
    def ltc_get_raw_transaction(hash, opts = {})
      data, _status_code, _headers = ltc_get_raw_transaction_with_http_info(hash, opts)
      data
    end

    # Get Litecoin Transaction by hash
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt;&lt;p&gt;Get Litecoin Transaction detail by transaction hash.&lt;/p&gt;
    # @param hash Transaction hash
    # @param [Hash] opts the optional parameters
    # @return [Array<(LtcTx, Integer, Hash)>] LtcTx data, response status code and response headers
    def ltc_get_raw_transaction_with_http_info(hash, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_get_raw_transaction ...'
      end
      # verify the required parameter 'hash' is set
      if @api_client.config.client_side_validation && hash.nil?
        fail ArgumentError, "Missing the required parameter 'hash' when calling BlockchainLitecoinApi.ltc_get_raw_transaction"
      end
      # resource path
      local_var_path = '/v3/litecoin/transaction/{hash}'.sub('{' + 'hash' + '}', hash.to_s)

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'LtcTx' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_get_raw_transaction\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Litecoin Transactions by address
    # <h4>5 credits per API call.</h4><br/><p>Get Litecoin Transaction by address.</p>
    # @param address Address
    # @param page_size Max number of items per page is 50.
    # @param [Hash] opts the optional parameters
    # @option opts [BigDecimal] :offset Offset to obtain next page of the data.
    # @return [Array<LtcTx>]
    def ltc_get_tx_by_address(address, page_size, opts = {})
      data, _status_code, _headers = ltc_get_tx_by_address_with_http_info(address, page_size, opts)
      data
    end

    # Get Litecoin Transactions by address
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt;&lt;p&gt;Get Litecoin Transaction by address.&lt;/p&gt;
    # @param address Address
    # @param page_size Max number of items per page is 50.
    # @param [Hash] opts the optional parameters
    # @option opts [BigDecimal] :offset Offset to obtain next page of the data.
    # @return [Array<(Array<LtcTx>, Integer, Hash)>] Array<LtcTx> data, response status code and response headers
    def ltc_get_tx_by_address_with_http_info(address, page_size, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_get_tx_by_address ...'
      end
      # verify the required parameter 'address' is set
      if @api_client.config.client_side_validation && address.nil?
        fail ArgumentError, "Missing the required parameter 'address' when calling BlockchainLitecoinApi.ltc_get_tx_by_address"
      end
      # verify the required parameter 'page_size' is set
      if @api_client.config.client_side_validation && page_size.nil?
        fail ArgumentError, "Missing the required parameter 'page_size' when calling BlockchainLitecoinApi.ltc_get_tx_by_address"
      end
      # resource path
      local_var_path = '/v3/litecoin/transaction/address/{address}'.sub('{' + 'address' + '}', address.to_s)

      # query parameters
      query_params = opts[:query_params] || {}
      query_params[:'pageSize'] = page_size
      query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'Array<LtcTx>' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_get_tx_by_address\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Get Litecoin UTXO of Transaction
    # <h4>5 credits per API call.</h4><br/> <p>Get UTXO of given transaction and output index. UTXO means Unspent Transaction Output, which is in blockchain terminology assets, that user received on the specific address and does not spend it yet.<br/> In bitcoin-like blockchains (BTC, LTC, DOGE, BCH), every transaction is built from the list of previously  not spent transactions connected to the address. If user owns address A, receives in transaciont T1 10 LTC, he can spend in the next transaction UTXO T1 of total value 10 LTC. User can spend multiple UTXOs from different addresses in 1 transaction.<br/> If UTXO is not spent, data are returned, otherwise 404 error code.</p> 
    # @param hash TX Hash
    # @param index Index of tx output to check if spent or not
    # @param [Hash] opts the optional parameters
    # @return [LtcUTXO]
    def ltc_get_utxo(hash, index, opts = {})
      data, _status_code, _headers = ltc_get_utxo_with_http_info(hash, index, opts)
      data
    end

    # Get Litecoin UTXO of Transaction
    # &lt;h4&gt;5 credits per API call.&lt;/h4&gt;&lt;br/&gt; &lt;p&gt;Get UTXO of given transaction and output index. UTXO means Unspent Transaction Output, which is in blockchain terminology assets, that user received on the specific address and does not spend it yet.&lt;br/&gt; In bitcoin-like blockchains (BTC, LTC, DOGE, BCH), every transaction is built from the list of previously  not spent transactions connected to the address. If user owns address A, receives in transaciont T1 10 LTC, he can spend in the next transaction UTXO T1 of total value 10 LTC. User can spend multiple UTXOs from different addresses in 1 transaction.&lt;br/&gt; If UTXO is not spent, data are returned, otherwise 404 error code.&lt;/p&gt; 
    # @param hash TX Hash
    # @param index Index of tx output to check if spent or not
    # @param [Hash] opts the optional parameters
    # @return [Array<(LtcUTXO, Integer, Hash)>] LtcUTXO data, response status code and response headers
    def ltc_get_utxo_with_http_info(hash, index, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_get_utxo ...'
      end
      # verify the required parameter 'hash' is set
      if @api_client.config.client_side_validation && hash.nil?
        fail ArgumentError, "Missing the required parameter 'hash' when calling BlockchainLitecoinApi.ltc_get_utxo"
      end
      # verify the required parameter 'index' is set
      if @api_client.config.client_side_validation && index.nil?
        fail ArgumentError, "Missing the required parameter 'index' when calling BlockchainLitecoinApi.ltc_get_utxo"
      end
      # resource path
      local_var_path = '/v3/litecoin/utxo/{hash}/{index}'.sub('{' + 'hash' + '}', hash.to_s).sub('{' + 'index' + '}', index.to_s)

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] 

      return_type = opts[:return_type] || 'LtcUTXO' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:GET, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_get_utxo\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
    # Send Litecoin to blockchain addresses
    # <h4>10 credits per API call.</h4><br/> <p>Send Litecoin to blockchain addresses. It is possible to build a blockchain transaction in 2 ways: <ul> <li><b>fromAddress</b> - assets will be sent from the list of addresses. For each of the addresses last 100 transactions will be scanned for any unspent UTXO and will be included in the transaction.</li> <li><b>fromUTXO</b> - assets will be sent from the list of unspent UTXOs. Each of the UTXO will be included in the transaction.</li> </ul> In bitcoin-like blockchains, the transaction is created from the list of previously not spent UTXO. Every UTXO contains the number of funds, which can be spent. When the UTXO enters into the transaction, the whole amount is included and must be spent. For example, address A receives 2 transactions, T1 with 1 LTC and T2 with 2 LTC. The transaction, which will consume UTXOs for T1 and T2, will have available amount to spent 3 LTC = 1 LTC (T1) + 2 LTC(T2).<br/><br/> There can be multiple recipients of the transactions, not only one. In the <b>to</b> section, every recipient address has it's corresponding amount. When the amount of funds, that should receive the recipient is lower than the number of funds from the UTXOs, the difference is used as a transaction fee.<br/><br/> This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and losing funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, <a href=\"https://github.com/tatumio/tatum-kms\" target=\"_blank\">Tatum KMS</a> should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. </p> 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [InlineResponse2005]
    def ltc_transfer_blockchain(body, opts = {})
      data, _status_code, _headers = ltc_transfer_blockchain_with_http_info(body, opts)
      data
    end

    # Send Litecoin to blockchain addresses
    # &lt;h4&gt;10 credits per API call.&lt;/h4&gt;&lt;br/&gt; &lt;p&gt;Send Litecoin to blockchain addresses. It is possible to build a blockchain transaction in 2 ways: &lt;ul&gt; &lt;li&gt;&lt;b&gt;fromAddress&lt;/b&gt; - assets will be sent from the list of addresses. For each of the addresses last 100 transactions will be scanned for any unspent UTXO and will be included in the transaction.&lt;/li&gt; &lt;li&gt;&lt;b&gt;fromUTXO&lt;/b&gt; - assets will be sent from the list of unspent UTXOs. Each of the UTXO will be included in the transaction.&lt;/li&gt; &lt;/ul&gt; In bitcoin-like blockchains, the transaction is created from the list of previously not spent UTXO. Every UTXO contains the number of funds, which can be spent. When the UTXO enters into the transaction, the whole amount is included and must be spent. For example, address A receives 2 transactions, T1 with 1 LTC and T2 with 2 LTC. The transaction, which will consume UTXOs for T1 and T2, will have available amount to spent 3 LTC &#x3D; 1 LTC (T1) + 2 LTC(T2).&lt;br/&gt;&lt;br/&gt; There can be multiple recipients of the transactions, not only one. In the &lt;b&gt;to&lt;/b&gt; section, every recipient address has it&#x27;s corresponding amount. When the amount of funds, that should receive the recipient is lower than the number of funds from the UTXOs, the difference is used as a transaction fee.&lt;br/&gt;&lt;br/&gt; This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key. No one should ever send it&#x27;s own private keys to the internet because there is a strong possibility of stealing keys and losing funds. In this method, it is possible to enter privateKey or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production, &lt;a href&#x3D;\&quot;https://github.com/tatumio/tatum-kms\&quot; target&#x3D;\&quot;_blank\&quot;&gt;Tatum KMS&lt;/a&gt; should be used for the highest security standards, and signatureId should be present in the request. Alternatively, using the Tatum client library for supported languages. &lt;/p&gt; 
    # @param body 
    # @param [Hash] opts the optional parameters
    # @return [Array<(InlineResponse2005, Integer, Hash)>] InlineResponse2005 data, response status code and response headers
    def ltc_transfer_blockchain_with_http_info(body, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: BlockchainLitecoinApi.ltc_transfer_blockchain ...'
      end
      # verify the required parameter 'body' is set
      if @api_client.config.client_side_validation && body.nil?
        fail ArgumentError, "Missing the required parameter 'body' when calling BlockchainLitecoinApi.ltc_transfer_blockchain"
      end
      # resource path
      local_var_path = '/v3/litecoin/transaction'

      # query parameters
      query_params = opts[:query_params] || {}

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json'])
      # HTTP header 'Content-Type'
      header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:body] || @api_client.object_to_http_body(body) 

      return_type = opts[:return_type] || 'InlineResponse2005' 

      auth_names = opts[:auth_names] || ['X-Api-Key']
      data, status_code, headers = @api_client.call_api(:POST, local_var_path,
        :header_params => header_params,
        :query_params => query_params,
        :form_params => form_params,
        :body => post_body,
        :auth_names => auth_names,
        :return_type => return_type)

      if @api_client.config.debugging
        @api_client.config.logger.debug "API called: BlockchainLitecoinApi#ltc_transfer_blockchain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
  end
end
