Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Invoice.where(status: 'wait').each do |invoice|
- if invoice.asset_id == 'usdt' && invoice.commit == 'usdt'
- transfer = Transfer.new
- transfer.amount = invoice.amount
- transfer.asset_id = 'usdt'
- transfer.sender_id = ENV['FA_MEMBER']
- transfer.recipient_id =ENV['MIN_MEMBER_ID']
- transfer.execute!
- invoice.update(status: 'done', )
- MIN::Webhooks.new.invoice(invoice.attributes.merge(price: 1, output_amount: invoice.amount))
- else
- if invoice.order
- order = invoice.order
- if order.state == 'done'
- trades = order.trades.to_a
- price = trades.sum{|trade| trade.price * trade.volume} /trades.sum{|trade| trade.volume}
- trade_volume = trades.sum{|trade| trade.volume}
- volume = order.type == 'OrderAsk' ? trade_volume * price : trade_volume
- if order.type == 'OrderBid'
- transfer = Transfer.new
- transfer.amount = volume
- transfer.asset_id = invoice.asset_id
- transfer.sender_id = ENV['FA_MEMBER']
- transfer.recipient_id =ENV['MIN_MEMBER_ID']
- transfer.execute!
- end
- invoice.update(status: 'done')
- MIN::Webhooks.new.invoice(invoice.attributes.merge(price: price, output_amount: volume))
- # end
- end
- else
- order_base_params = {
- source: 'Invoice',
- ord_type: 'market',
- state: ::Order::WAIT,
- member_id: ENV['FA_MEMBER']
- }
- if invoice.commit == 'usdt'
- order_klass = OrderBid
- order_base_params[:amount] = invoice.amount
- order_base_params[:ask_asset_id] = invoice.asset_id
- order_base_params[:bid_asset_id] = invoice.commit
- order_base_params[:currency] = "#{invoice.asset_id}#{ invoice.commit}"
- else
- order_klass = OrderAsk
- order_base_params[:volume] = invoice.amount
- order_base_params[:origin_volume] = invoice.amount
- order_base_params[:ask_asset_id] = invoice.commit
- order_base_params[:bid_asset_id] = invoice.asset_id
- order_base_params[:currency] = "#{invoice.commit}#{invoice.asset_id}"
- end
- order = order_klass.new(order_base_params)
- market = order.market_obj
- account_balance = Account.find_by(member_id: ENV['FA_MEMBER'], currency: invoice.commit ).balance
- HuobiOrdering.new(order).submit(market, nil, account_balance)
- if order
- invoice.update(order: order)
- AMQPQueue.enqueue(
- :wl_orders,
- action: 'create_order',
- order_id: order.id,
- huobi_id: market.huobi_id,
- account_balance: account_balance
- )
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement