Giter VIP home page Giter VIP logo

laravel-binance-api's Introduction

GitHub release GitHub issues Software License Total Downloads

This package provides a Laravel Wrapper for the Binance API and allows you to easily communicate with it.


Important Note

This package is in early development stage. It is not advisable to use it in a production app until v1.0 is released. Feel free to open a PR to contribute to this project and help me reach a production ready build.


Installation

You can install the package via composer:

composer require techtailor/laravel-binance-api

You can publish the config file with:

php artisan vendor:publish --tag="binance-api-config"

Open your .env file and add the following (replace YOUR_API_KEY and YOUR_SECRET with the API Key & Secret you received from Binance) -

BINANCE_KEY=YOUR_API_KEY
BINANCE_SECRET=YOUR_SECRET

Or

Open the published config file available at config/binance-api.php and add your API and Secret Keys:

return [
    'auth' => [
        'key'        => env('BINANCE_KEY', 'YOUR_API_KEY'),
        'secret'     => env('BINANCE_SECRET', 'YOUR_SECRET')
    ],
];

Usage

Using this package is very simple. Just initialize the Api and call one of the available methods:

use TechTailor\BinanceApi\BinanceAPI;

$binance = new BinanceAPI();

$time = $binance->getTime();

You can also set an API & Secret for a user by passing it after initalization (useful when you need to isolate api keys for individual users):

$binance = new BinanceApi();

$binance->setApi($apiKey, $secretKey);

$accountInfo = $binance->getAccountInfo();

Available Methods

Available Public Methods (Security Type : NONE) [API Keys Not Required]

- getSystemStatus()         // returns system status, expect msg to be "normal".
- getTime()                 // returns server timestamp.
- getExchangeInfo($symbol)  // returns current exchange trading rules and symbol information.
- getOrderBook($symbol)     // returns the order book for the symbol.
- getAvgPrice($symbol)      // returns the average price for a symbol.
- getTicker($symbol)        // returns the 24hr ticker for a symbol (if no symbol provided, returns an array of all symbols).

Available Private Methods (Security Type : USER_DATA) [API Keys Required]

- getAccountInfo()          // returns current account information.
- getAllOrders()            // return all current account orders (active, canceled or filled).
- getOpenOrders($symbol)    // returns all current account open orders (Careful when accessing without symbol).
- getTrades($symbol)        // returns all trades for a symbol.
- getOrderStatus($symbol, $orderId) // returns status of a given order.
- getUserCoinsInfo()        // returns information of all coins available to the user.
- getDepositHistory()       // returns the user's deposit history.
- getWithdrawHistory()      // returns the user's withdraw history.

TODO

List of features or additional functionality we are working on (in no particular order) -

- Improve exception handling.
- Add rate limiting to API Calls.
- Add response for API ban/blacklisting response.
- Improve ReadMe.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

laravel-binance-api's People

Contributors

techtailor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

laravel-binance-api's Issues

New Order

Hello I need to create new order function with your class.
I tried that but its not work for me

`
/**
* Create a new order.
*
* @throws Exception
*
* @param string $symbol Exchange Pair Symbol
* @param string $side Order side (BUY or SELL)
* @param string $type Order type (LIMIT, MARKET, STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT, LIMIT_MAKER)
* @param string $timeInForce (GTC, IOC)
* @param float $quantity Order quantity
* @param float $price Order price
* @param float $stopPrice (for STOP_LOSS and TAKE_PROFIT orders)
* @param float $icebergQty (for LIMIT orders)
* @param float $newOrderResprice (for STOP_LOSS and TAKE_PROFIT orders)
* @param float $newOrderResptime (for STOP_LOSS and TAKE_PROFIT orders)
* @param string $recvWindow (optional)
* @param string $timing (optional)
*
* @return mixed
*/
// public function createOrder($symbol, $side, $type, $timeInForce, $quantity, $price, $stopPrice = null, $icebergQty = null, $newOrderResprice = null, $newOrderResptime = null, $recvWindow = null, $timing = null)
public function createOrder()
{
$data = [
// 'symbol' => $symbol ? strtoupper($symbol) : null,
// 'side' => $side ? strtoupper($side) : null,
// 'type' => $type ? strtoupper($type) : null,
// 'timeInForce' => $timeInForce ? strtoupper($timeInForce) : null,
// 'quantity' => $quantity ? $quantity : null,
// 'price' => $price ? $price : null,
// 'stopPrice' => $stopPrice ? $stopPrice : null,
// 'icebergQty' => $icebergQty ? $icebergQty : null,
// 'newOrderResprice' => $newOrderResprice ? $newOrderResprice : null,
// 'newOrderResptime' => $newOrderResptime ? $newOrderResptime : null,
// 'recvWindow' => $recvWindow ? $recvWindow : $this->recvWindow,
// 'timestamp' => $this->milliseconds(),

          'symbol' => 'BNBUSDT',
          'side' => 'BUY',
          'type' => 'LIMIT',
          'timeInForce' => 'GTC',
          'quantity' => "1",
          'price' => "41",
      ];

      $response = $this->privateRequest('v3/order', $data, 'POST');

      return $response;
  }

error is :
array:3 [โ–ผ
"code" => "-1104"
"error" => "INVALID_REQUEST"
"message" => "Not all sent parameters were read; read 1 parameter(s) but was sent 2."
]
`
Can you help me about it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.