This commit is contained in:
mis_mueller committed 2026-04-12 19:59:00 +02:00
1 parent f066040415
commit 3845bf12c1
4 files changed
+26 -17

No files matched your search

+19 -10
View File
@@ -4,6 +4,7 @@ namespace Msr\LaravelBitunixApi;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use Msr\LaravelBitunixApi\Contracts\RateLimiterContract as RateLimiter;
use Msr\LaravelBitunixApi\Requests\ChangeLeverageRequestContract;
use Msr\LaravelBitunixApi\Requests\ChangeMarginModeRequestContract;
use Msr\LaravelBitunixApi\Requests\FlashClosePositionRequestContract;
@@ -19,19 +20,14 @@ use Msr\LaravelBitunixApi\Requests\PlacePositionTpSlOrderRequestContract;
use Msr\LaravelBitunixApi\Requests\PlaceTpSlOrderRequestContract;
use Psr\Http\Message\ResponseInterface;
class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginModeRequestContract,
FlashClosePositionRequestContract, FutureKLineRequestContract,
GetPendingPositionsRequestContract, GetSingleAccountRequestContract,
GetTradingPairsRequestContract, PlaceOrderRequestContract,
PlacePositionTpSlOrderRequestContract, PlaceTpSlOrderRequestContract,
GetHistoryPositionsRequestContract, GetHistoryTradesRequestContract
class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginModeRequestContract, FlashClosePositionRequestContract, FutureKLineRequestContract, GetHistoryPositionsRequestContract, GetHistoryTradesRequestContract, GetPendingPositionsRequestContract, GetSingleAccountRequestContract, GetTradingPairsRequestContract, PlaceOrderRequestContract, PlacePositionTpSlOrderRequestContract, PlaceTpSlOrderRequestContract
{
private Client $publicFutureClient;
public function __construct()
public function __construct(protected RateLimiter $rateLimiter)
{
$this->publicFutureClient = new Client([
'base_uri' => config('bitunix-api.future_base_uri') . '/api/v1/futures/market/',
'base_uri' => config('bitunix-api.future_base_uri').'/api/v1/futures/market/',
]);
}
@@ -41,7 +37,7 @@ class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginMo
$headers = Header::generateHeaders($queryParams, $bodyString);
return new Client([
'base_uri' => config('bitunix-api.future_base_uri') . '/api/v1/futures/',
'base_uri' => config('bitunix-api.future_base_uri').'/api/v1/futures/',
'headers' => $headers,
]);
}
@@ -211,6 +207,13 @@ class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginMo
int $skip = 0,
int $limit = 100
): ResponseInterface {
$this->rateLimiter->throttle(
'futures::get_history_trades',
$this->resolveRateLimitIdentity(),
maxRequests: 8,
perSeconds: 1
);
$queryParams = [
'skip' => $skip,
'limit' => $limit,
@@ -243,7 +246,6 @@ class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginMo
return $response;
}
public function getPendingPositions(?string $symbol = null, ?string $positionId = null): ResponseInterface
{
$queryParams = [];
@@ -273,6 +275,13 @@ class LaravelBitunixApi implements ChangeLeverageRequestContract, ChangeMarginMo
int $skip = 0,
int $limit = 100
): ResponseInterface {
$this->rateLimiter->throttle(
'futures::get_history_positions',
$this->resolveRateLimitIdentity(),
maxRequests: 8,
perSeconds: 1
);
$queryParams = [
'skip' => $skip,
'limit' => $limit,