peatio-coinpaymentnew 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/peatio/coinpaymentnew/client.rb +0 -30
- data/lib/peatio/coinpaymentnew/version.rb +1 -1
- data/lib/peatio/coinpaymentnew/wallet.rb +54 -128
- data/peatio-coinpaymentnew-0.0.5.gem +0 -0
- data/peatio-coinpaymentnew-0.0.6.gem +0 -0
- data/peatio-coinpaymentnew-0.0.7.gem +0 -0
- metadata +4 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 89cb0e3405cea75e5abcd3aa418743b6779b0673
         | 
| 4 | 
            +
              data.tar.gz: 50491be28e5d7f2b96f038696175a23d2df3862d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 61a1d5a62f4698313b97f6182042403bf398c937bbe15a2d2ff32d73cc622597e945fc5d9636e53a0a3ea235fe04648bf0576fdb8124e4014fe66a5c6b38edbd
         | 
| 7 | 
            +
              data.tar.gz: 2df07c66ee90855ecdf4b91585fbc124a0f20ece5faa50b99af4408c2c1e3a3a9e62d3ecebe1e326a48132ec9edacae625d278ddfca36793458f58f445d13c48
         | 
| @@ -25,41 +25,11 @@ module Peatio | |
| 25 25 | 
             
                          { version: 1, key: @access_token }
         | 
| 26 26 | 
             
                        end
         | 
| 27 27 |  | 
| 28 | 
            -
                        # def rest_api(verb, path, data = nil)
         | 
| 29 28 | 
             
                        def rest_api(args)
         | 
| 30 | 
            -
                          # args = [@endpoint.to_s + path]
         | 
| 31 | 
            -
                  
         | 
| 32 | 
            -
                          # if data
         | 
| 33 | 
            -
                          #   if %i[post put patch].include?(verb)
         | 
| 34 | 
            -
                          #     args << data.compact.to_json
         | 
| 35 | 
            -
                          #     args << { 'Content-Type' => 'application/json' }
         | 
| 36 | 
            -
                          #   else
         | 
| 37 | 
            -
                          #     args << data.compact
         | 
| 38 | 
            -
                          #     args << {}
         | 
| 39 | 
            -
                          #   end
         | 
| 40 | 
            -
                          # else
         | 
| 41 | 
            -
                          #   args << nil
         | 
| 42 | 
            -
                          #   args << {}
         | 
| 43 | 
            -
                          # end
         | 
| 44 29 | 
             
                          body = required_params.merge!(args)
         | 
| 45 | 
            -
                          # args.last['Accept']        = 'application/json'
         | 
| 46 | 
            -
                          # args.last['hmac'] = hmac(body)
         | 
| 47 | 
            -
                  
         | 
| 48 | 
            -
                          # body = required_params.merge!(cmd: caller[0][/`.*'/][1..-2]).merge!(args)
         | 
| 49 30 | 
             
                          response = HTTParty.post(@endpoint.to_s, body: body, headers: {'hmac' => hmac(body)})
         | 
| 50 31 | 
             
                          response['error'] == 'ok' ? Hashie::Mash.new(response['result']) : response['error']
         | 
| 51 32 |  | 
| 52 | 
            -
                          # response = Faraday.send(verb, *args)
         | 
| 53 | 
            -
                          # response.assert_success!
         | 
| 54 | 
            -
                          # response = JSON.parse(response.body)
         | 
| 55 | 
            -
                          # response['error'].tap { |error| raise ResponseError.new(error) if error }
         | 
| 56 | 
            -
                          # response
         | 
| 57 | 
            -
                        rescue Faraday::Error => e
         | 
| 58 | 
            -
                          if e.is_a?(Faraday::ConnectionFailed) || e.is_a?(Faraday::TimeoutError)
         | 
| 59 | 
            -
                            raise ConnectionError, e
         | 
| 60 | 
            -
                          else
         | 
| 61 | 
            -
                            raise ConnectionError, JSON.parse(e.response.body)['message']
         | 
| 62 | 
            -
                          end
         | 
| 63 33 | 
             
                        end
         | 
| 64 34 | 
             
                    end
         | 
| 65 35 | 
             
                end
         | 
| @@ -30,56 +30,20 @@ module Peatio | |
| 30 30 | 
             
                    currency = erc20_currency_id
         | 
| 31 31 | 
             
                    options.deep_symbolize_keys!
         | 
| 32 32 |  | 
| 33 | 
            -
                     | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
                      args = { cmd: 'get_deposit_address', currency: currency.code }.merge!(options)
         | 
| 37 | 
            -
                      response = client.rest_api(args)
         | 
| 38 | 
            -
                      { address: response['address'], secret: coinpayment_wallet_passphrase }
         | 
| 39 | 
            -
                    elsif options.dig(:pa_details, :address_id).blank?
         | 
| 40 | 
            -
                      args = { cmd: 'get_deposit_address', currency: currency.code }.merge!(options)
         | 
| 41 | 
            -
                      response = client.rest_api(args)
         | 
| 42 | 
            -
                      # response = client.rest_api(:post, "#{currency}/wallet/#{wallet_id}/address")
         | 
| 43 | 
            -
                      { address: response['address'], secret: coinpayment_wallet_passphrase, details: { address_id: response['address'] }}
         | 
| 44 | 
            -
                    end
         | 
| 33 | 
            +
                    args = { cmd: 'get_deposit_address', currency: currency.upcase }.merge!(options)
         | 
| 34 | 
            +
                    response = client.rest_api(args)
         | 
| 35 | 
            +
                    { address: response['address'] }
         | 
| 45 36 | 
             
                  rescue Coinpayment::Client::Error => e
         | 
| 46 37 | 
             
                    raise Peatio::Wallet::ClientError, e
         | 
| 47 38 | 
             
                  end
         | 
| 48 39 |  | 
| 49 40 | 
             
                  def create_transaction!(transaction, options = {})
         | 
| 50 41 | 
             
                    currency_options = @currency.fetch(:options).slice(:gas_limit, :gas_price, :erc20_contract_address)
         | 
| 51 | 
            -
             | 
| 52 | 
            -
                     | 
| 53 | 
            -
                     | 
| 54 | 
            -
                     | 
| 55 | 
            -
                     | 
| 56 | 
            -
                      amount = convert_to_base_unit(transaction.amount)
         | 
| 57 | 
            -
             | 
| 58 | 
            -
                      # if options[:subtract_fee].to_s == 'true'
         | 
| 59 | 
            -
                      #   fee = build_raw_transaction(transaction)
         | 
| 60 | 
            -
                      #   baseFeeInfo = fee['tx_fee']
         | 
| 61 | 
            -
                      #   # fee = baseFeeInfo.present? ? baseFeeInfo : fee.dig('txInfo','Fee')
         | 
| 62 | 
            -
                      #   amount -= fee.to_i
         | 
| 63 | 
            -
                      # end
         | 
| 64 | 
            -
             | 
| 65 | 
            -
                      args = { cmd: "create_transaction", amount: amount, currency1: "USD", currency2: currency.code, buyer_email: "joshirockstar007@gmail.com", address: normalize_address(transaction.to_address.to_s) }
         | 
| 66 | 
            -
                      response = client.rest_api(args)
         | 
| 67 | 
            -
                      # response = client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/sendcoins", {
         | 
| 68 | 
            -
                      #                        address: normalize_address(transaction.to_address.to_s),
         | 
| 69 | 
            -
                      #                        amount: amount.to_s,
         | 
| 70 | 
            -
                      #                        walletPassphrase: coinpayment_wallet_passphrase,
         | 
| 71 | 
            -
                      #                        memo: xlm_memo(transaction.to_address.to_s)
         | 
| 72 | 
            -
                      # }.compact)
         | 
| 73 | 
            -
             | 
| 74 | 
            -
                      if response['feeString'].present?
         | 
| 75 | 
            -
                        fee = convert_from_base_unit(response['feeString'])
         | 
| 76 | 
            -
                        transaction.fee = fee
         | 
| 77 | 
            -
                      end
         | 
| 78 | 
            -
             | 
| 79 | 
            -
                      transaction.hash = normalize_txid(response['txn_id'])
         | 
| 80 | 
            -
                      transaction.fee_currency_id = erc20_currency_id
         | 
| 81 | 
            -
                      transaction
         | 
| 82 | 
            -
                    # end
         | 
| 42 | 
            +
                    amount = convert_to_base_unit(transaction.amount)
         | 
| 43 | 
            +
                    args = { cmd: "create_transaction", amount: amount, currency1: "USD", currency2: currency_id.upcase, buyer_email: "joshirockstar007@gmail.com", address: normalize_address(transaction.to_address.to_s) }
         | 
| 44 | 
            +
                    response = client.rest_api(args)
         | 
| 45 | 
            +
                    transaction.hash = normalize_txid(response['txn_id'])
         | 
| 46 | 
            +
                    transactio
         | 
| 83 47 | 
             
                  rescue Coinpayment::Client::Error => e
         | 
| 84 48 | 
             
                    raise Peatio::Wallet::ClientError, e
         | 
| 85 49 | 
             
                  end
         | 
| @@ -88,13 +52,7 @@ module Peatio | |
| 88 52 | 
             
                  def build_raw_transaction(transaction)
         | 
| 89 53 | 
             
                    args = { cmd: "rates" }
         | 
| 90 54 | 
             
                    response = client.rest_api(args)
         | 
| 91 | 
            -
                    response[ | 
| 92 | 
            -
                    # client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/tx/build", {
         | 
| 93 | 
            -
                    #   recipients: [{
         | 
| 94 | 
            -
                    #     address: transaction.to_address,
         | 
| 95 | 
            -
                    #     amount: convert_to_base_unit(transaction.amount).to_s
         | 
| 96 | 
            -
                    #   }]
         | 
| 97 | 
            -
                    # }.compact)
         | 
| 55 | 
            +
                    response[currency_id.upcase]
         | 
| 98 56 | 
             
                  end
         | 
| 99 57 |  | 
| 100 58 | 
             
                  # def create_eth_transaction(transaction, options = {})
         | 
| @@ -136,13 +94,7 @@ module Peatio | |
| 136 94 | 
             
                  def load_balance!
         | 
| 137 95 | 
             
                    args = { cmd: "balances" }
         | 
| 138 96 | 
             
                    response = client.rest_api(args)
         | 
| 139 | 
            -
                    response[ | 
| 140 | 
            -
                    # if @currency.fetch(:options).slice(:erc20_contract_address).present?
         | 
| 141 | 
            -
                    #   load_erc20_balance!
         | 
| 142 | 
            -
                    # else
         | 
| 143 | 
            -
                    #   response = client.rest_api(:get, "#{currency_id}/wallet/#{wallet_id}")
         | 
| 144 | 
            -
                    #   convert_from_base_unit(response.fetch('balanceString'))
         | 
| 145 | 
            -
                    # end
         | 
| 97 | 
            +
                    response[currency_id.upcase]['balancef']
         | 
| 146 98 | 
             
                  rescue Coinpayment::Client::Error => e
         | 
| 147 99 | 
             
                    raise Peatio::Wallet::ClientError, e
         | 
| 148 100 | 
             
                  end
         | 
| @@ -155,27 +107,24 @@ module Peatio | |
| 155 107 | 
             
                  # end
         | 
| 156 108 |  | 
| 157 109 | 
             
                  def trigger_webhook_event(request)
         | 
| 158 | 
            -
                    currency = @wallet.fetch(:testnet).present? ? 't' + @currency.fetch(:id) : @currency.fetch(:id)
         | 
| 159 | 
            -
                    if request.params['ipn_type'] == ' | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
                    else
         | 
| 163 | 
            -
             | 
| 164 | 
            -
                    end
         | 
| 110 | 
            +
                    # currency = @wallet.fetch(:testnet).present? ? 't' + @currency.fetch(:id) : @currency.fetch(:id)
         | 
| 111 | 
            +
                    # if request.params['ipn_type'] == 'deposit'
         | 
| 112 | 
            +
                    #   return unless currency == request.params['coin'] &&
         | 
| 113 | 
            +
                    #                 @wallet.fetch(:wallet_id) == request.params['wallet']
         | 
| 114 | 
            +
                    # else
         | 
| 115 | 
            +
                    #   return unless @wallet.fetch(:wallet_id) == request.params['walletId']
         | 
| 116 | 
            +
                    # end
         | 
| 165 117 |  | 
| 166 | 
            -
                    if request.params['ipn_type'] == ' | 
| 118 | 
            +
                    if request.params['ipn_type'] == 'deposit'
         | 
| 167 119 | 
             
                      transactions = fetch_transfer!(request.params['txn_id'])
         | 
| 168 120 | 
             
                      return transactions
         | 
| 169 | 
            -
                    # elsif request.params['type'] == 'address_confirmation'
         | 
| 170 | 
            -
                    #   address_id = fetch_address_id(request.params['address'])
         | 
| 171 | 
            -
                    #   return { address_id: address_id, address: request.params['address'], currency_id: currency_id }
         | 
| 172 121 | 
             
                    end
         | 
| 173 122 | 
             
                  end
         | 
| 174 123 |  | 
| 175 | 
            -
                  def register_webhooks!(url)
         | 
| 176 | 
            -
             | 
| 177 | 
            -
             | 
| 178 | 
            -
                  end
         | 
| 124 | 
            +
                  # def register_webhooks!(url)
         | 
| 125 | 
            +
                  #   transfer_webhook(url)
         | 
| 126 | 
            +
                  #   address_confirmation_webhook(url)
         | 
| 127 | 
            +
                  # end
         | 
| 179 128 |  | 
| 180 129 | 
             
                  # def fetch_address_id(address)
         | 
| 181 130 | 
             
                  #   currency = erc20_currency_id
         | 
| @@ -188,64 +137,43 @@ module Peatio | |
| 188 137 | 
             
                  def fetch_transfer!(id)
         | 
| 189 138 | 
             
                    args = { cmd: "get_tx_info", txid: id }
         | 
| 190 139 | 
             
                    response = client.rest_api(args)
         | 
| 191 | 
            -
                     | 
| 192 | 
            -
                     | 
| 193 | 
            -
             | 
| 194 | 
            -
                       | 
| 195 | 
            -
                       | 
| 196 | 
            -
                       | 
| 197 | 
            -
                       | 
| 198 | 
            -
                       | 
| 199 | 
            -
                       | 
| 200 | 
            -
                       | 
| 201 | 
            -
                      state | 
| 202 | 
            -
             | 
| 203 | 
            -
             | 
| 204 | 
            -
             | 
| 205 | 
            -
                      #   txout = output['index'] if output.present?
         | 
| 206 | 
            -
                      # end
         | 
| 207 | 
            -
             | 
| 208 | 
            -
                      # if response['feeString'].present?
         | 
| 209 | 
            -
                      #   fee = convert_from_base_unit(response['feeString']) / response['entries'].count
         | 
| 210 | 
            -
                      # end
         | 
| 211 | 
            -
             | 
| 212 | 
            -
                      transaction = Peatio::Transaction.new(
         | 
| 213 | 
            -
                        currency_id: @currency.fetch(:id),
         | 
| 214 | 
            -
                        amount: convert_from_base_unit(response['amountf']),
         | 
| 215 | 
            -
                        fee: 0,
         | 
| 216 | 
            -
                        fee_currency_id: response["coin"],
         | 
| 217 | 
            -
                        hash: normalize_txid(response['txid']),
         | 
| 218 | 
            -
                        to_address: response["payment_address"],
         | 
| 219 | 
            -
                        block_number: 0,
         | 
| 220 | 
            -
                        txout: 0,
         | 
| 221 | 
            -
                        status: state
         | 
| 222 | 
            -
                      )
         | 
| 223 | 
            -
             | 
| 224 | 
            -
                      transaction if transaction.valid?
         | 
| 225 | 
            -
                    # end.compact
         | 
| 140 | 
            +
                    state = define_transaction_state(response['status'])
         | 
| 141 | 
            +
                    transaction = Peatio::Transaction.new(
         | 
| 142 | 
            +
                      currency_id: @currency.fetch(:id),
         | 
| 143 | 
            +
                      amount: convert_from_base_unit(response['amountf']),
         | 
| 144 | 
            +
                      fee: 0,
         | 
| 145 | 
            +
                      fee_currency_id: response["coin"],
         | 
| 146 | 
            +
                      hash: normalize_txid(response['txid']),
         | 
| 147 | 
            +
                      to_address: response["payment_address"],
         | 
| 148 | 
            +
                      block_number: 0,
         | 
| 149 | 
            +
                      txout: 0,
         | 
| 150 | 
            +
                      status: state
         | 
| 151 | 
            +
                    )
         | 
| 152 | 
            +
             | 
| 153 | 
            +
                    transaction
         | 
| 226 154 | 
             
                  rescue Coinpayment::Client::Error => e
         | 
| 227 155 | 
             
                    raise Peatio::Wallet::ClientError, e
         | 
| 228 156 | 
             
                  end
         | 
| 229 157 |  | 
| 230 | 
            -
                  def transfer_webhook(url)
         | 
| 231 | 
            -
             | 
| 232 | 
            -
             | 
| 233 | 
            -
             | 
| 234 | 
            -
             | 
| 235 | 
            -
             | 
| 236 | 
            -
             | 
| 237 | 
            -
             | 
| 238 | 
            -
                  end
         | 
| 158 | 
            +
                  # def transfer_webhook(url)
         | 
| 159 | 
            +
                  #   client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/webhooks", {
         | 
| 160 | 
            +
                  #     type: 'transfer',
         | 
| 161 | 
            +
                  #     allToken: true,
         | 
| 162 | 
            +
                  #     url: url,
         | 
| 163 | 
            +
                  #     label: "webhook for #{url}",
         | 
| 164 | 
            +
                  #     listenToFailureStates: false
         | 
| 165 | 
            +
                  #   })
         | 
| 166 | 
            +
                  # end
         | 
| 239 167 |  | 
| 240 | 
            -
                  def address_confirmation_webhook(url)
         | 
| 241 | 
            -
             | 
| 242 | 
            -
             | 
| 243 | 
            -
             | 
| 244 | 
            -
             | 
| 245 | 
            -
             | 
| 246 | 
            -
             | 
| 247 | 
            -
             | 
| 248 | 
            -
                  end
         | 
| 168 | 
            +
                  # def address_confirmation_webhook(url)
         | 
| 169 | 
            +
                  #   client.rest_api(:post, "#{currency_id}/wallet/#{wallet_id}/webhooks", {
         | 
| 170 | 
            +
                  #     type: 'address_confirmation',
         | 
| 171 | 
            +
                  #     allToken: true,
         | 
| 172 | 
            +
                  #     url: url,
         | 
| 173 | 
            +
                  #     label: "webhook for #{url}",
         | 
| 174 | 
            +
                  #     listenToFailureStates: false
         | 
| 175 | 
            +
                  #   })
         | 
| 176 | 
            +
                  # end
         | 
| 249 177 |  | 
| 250 178 | 
             
                  def parse_entries(entries)
         | 
| 251 179 | 
             
                    entries.map do |e|
         | 
| @@ -258,8 +186,6 @@ module Peatio | |
| 258 186 | 
             
                    access_token = @wallet.fetch(:access_token) { raise Peatio::Wallet::MissingSettingError, :access_token }
         | 
| 259 187 | 
             
                    access_token2 = @wallet.fetch(:access_token2) { raise Peatio::Wallet::MissingSettingError, :access_token2 }
         | 
| 260 188 |  | 
| 261 | 
            -
                    currency_code_prefix = @wallet.fetch(:testnet) ? 't' : ''
         | 
| 262 | 
            -
                    uri = uri.gsub(/\/+\z/, '') + '/' + currency_code_prefix
         | 
| 263 189 | 
             
                    @client ||= Client.new(uri, access_token, access_token2)
         | 
| 264 190 | 
             
                  end
         | 
| 265 191 |  | 
| Binary file | 
| Binary file | 
| Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: peatio-coinpaymentnew
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Harishankar Joshi
         | 
| @@ -215,6 +215,9 @@ files: | |
| 215 215 | 
             
            - peatio-coinpaymentnew-0.0.2.gem
         | 
| 216 216 | 
             
            - peatio-coinpaymentnew-0.0.3.gem
         | 
| 217 217 | 
             
            - peatio-coinpaymentnew-0.0.4.gem
         | 
| 218 | 
            +
            - peatio-coinpaymentnew-0.0.5.gem
         | 
| 219 | 
            +
            - peatio-coinpaymentnew-0.0.6.gem
         | 
| 220 | 
            +
            - peatio-coinpaymentnew-0.0.7.gem
         | 
| 218 221 | 
             
            - peatio-coinpaymentnew.gemspec
         | 
| 219 222 | 
             
            homepage: https://openware.com/
         | 
| 220 223 | 
             
            licenses:
         |