diff --git a/src/Managing.Application.Tests/PositionTests.cs b/src/Managing.Application.Tests/PositionTests.cs index 2445c98..934b929 100644 --- a/src/Managing.Application.Tests/PositionTests.cs +++ b/src/Managing.Application.Tests/PositionTests.cs @@ -43,8 +43,8 @@ public class PositionTests : BaseTests // var hexPositions = "000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000425deab364e9121f7ca284129da854fd5cf22ed00000000000000000000000070d95587d40a2caf56bd97485ab3eec10bee6336000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e583100000000000000000000000000000000000000fc11babdd3961cb7d1bacca000000000000000000000000000000000000000000000000000002049cca7c844e20000000000000000000000000000000000000000000000000000000000986f7e0000000000000000000000000000000000000001df508d0801ecf73c8058280500000000000000000000000000000000000000000000000df3ff1939e2b50cdd0000000000000000000000000000000000000000026bf951a8f07f8cc891bf920000000000000000000000000000000000000000000000001ac6ce5c364c6c570000000000000000000000000000000000000000000000000000000066db675e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425deab364e9121f7ca284129da854fd5cf22ed0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024d78200000000000000000000000000000000000000000000000000000b8a74a0cf2200000000000000000000000000000000000000000000000000000000000034ea00000000000000000000000000000000000000000000001481cd70725c3c1c03000000000000000000000000000000000000000004798d9b51ab57ddc2209ef50000000000000000000000000000000000000000000000002430a13e0606cefd000000000000000000000000000000000000000df008568002fcb46874db7fa100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000004ab88d39efb5958075000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c9f4c00dde985003ca14b5000000000000000000000000000000000000000000c9f4c00dde985003ca14b5000000000000000000000000000000000000000000001f04ef12cb04cf15800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ab88d39efb5958075000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000024d7830000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffbd4eecf9670c9bc2d3c2942e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a323f06526aa4eff43bd81573b1d00000000000000000000001031bcf5ca9bcbacd1e14f4423ec048d2860e6be400000000000000000000000149385b7c14fb69bfecc8920f26e8908c05b23600000000000000000000000001031bcf5ca9bcbacd19e9e311d531128eb34a9526e0000000000000000000000000425deab364e9121f7ca284129da854fd5cf22ed00000000000000000000000047c031236e19d024b42f8ae6780e44a573170703000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000000000000000052c3a7bfeaccb2af542a7eec1f000000000000000000000000000000000000000000000000000000000000184e100000000000000000000000000000000000000000000000000000000031fce8100000000000000000000000000000000000000026bdba31976b8f5eb6839942f000000000000000000000000000000000000000000000013051f6fe1b99e5f29000000000000000000000000000000000000000000000000002318fb454fb7ef000000000000000000000000000000000000000000000000a633867ed0a624d5000000000000000000000000000000000000000000000000000000006793580e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000425deab364e9121f7ca284129da854fd5cf22ed0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000008d16000000000000000000000000000000000000000000000013051f6fe1b99e5f290000000000000000000000000000000000000000000000000023aeb7ce5e2ae0000000000000000000000000000000000000000000000000aafa986b91e6895200000000000000000000000000000000000000007044e6adc56544d604423d6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ab88d39efb5958075000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c9f4c00dde985003ca14b5000000000000000000000000000000000000000000c9f4c00dde985003ca14b50000000000000000000000000000000000000000000014adf4b7320334b9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ab88d39efb595807500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064db77dc6667d396fff8db0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014285629eea2ec15d977e8b13dec5d0000000000000000000000000000001e9eda061bea538c139c4c474bf9c33e100000000000000000000000000000001e9eda061bea538c139c4c474bf9c33e100000000000000000000000000000001e9eda061c4f2f03f002b41ae2f9bc191a"; // _ = new GetAccountPositioqwnInfoListOutputDTO().DecodeOutput(hexPositions).d // - var openTrade = await _exchangeService.GetTrade(_account, "", Ticker.BTC); - var position = new Position("", "", TradeDirection.Long, Ticker.BTC, MoneyManagement, PositionInitiator.User, + var openTrade = await _exchangeService.GetTrade(_account, "", Ticker.GMX); + var position = new Position("", "", TradeDirection.Long, Ticker.GMX, MoneyManagement, PositionInitiator.User, DateTime.UtcNow, new User()) { Open = openTrade diff --git a/src/Managing.Infrastructure.Web3/EvmManager.cs b/src/Managing.Infrastructure.Web3/EvmManager.cs index cd6bb33..8ac4466 100644 --- a/src/Managing.Infrastructure.Web3/EvmManager.cs +++ b/src/Managing.Infrastructure.Web3/EvmManager.cs @@ -182,9 +182,11 @@ public class EvmManager : IEvmManager var web3 = new Web3(chain.RpcUrl); var etherBalance = Web3.Convert.FromWei(await web3.Eth.GetBalance.SendRequestAsync(account)); var lastCandle = await GetCandle(Ticker.ETH); - + return new EvmBalance() - { Balance = etherBalance, Price = lastCandle.Close, TokenName = "ETH", Value = etherBalance * lastCandle.Close }; + { + Balance = etherBalance, Price = lastCandle.Close, TokenName = "ETH", Value = etherBalance * lastCandle.Close + }; } public async Task> GetAllBalances(Chain chain, string publicAddress) @@ -401,10 +403,10 @@ public class EvmManager : IEvmManager var lastCandles = await GetCandles(ticker, DateTime.UtcNow.AddMinutes(-5), Timeframe.OneMinute); cachedCandle = lastCandles.Last(); - + _cacheService.SaveValue(key, cachedCandle, TimeSpan.FromMinutes(5)); } - + return cachedCandle; } @@ -499,7 +501,7 @@ public class EvmManager : IEvmManager { try { - var response = await _web3ProxyService.CallGmxServiceAsync("/cancel-orders", + var response = await _web3ProxyService.CallGmxServiceAsync("/cancel-orders", new { account = account.Key, @@ -507,7 +509,7 @@ public class EvmManager : IEvmManager ticker = ticker.ToString() }); - return response.success ?? false; + return response.Success; } catch (Exception ex) { @@ -727,11 +729,11 @@ public class EvmManager : IEvmManager var result = await _web3ProxyService.GetGmxServiceAsync( "/positions", new { account = account.Key }); - - + + return GmxV2Mappers.Map(result.Positions); } - + throw new NotImplementedException(); } diff --git a/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/orders.ts b/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/orders.ts index e738ad2..8b2af1b 100644 --- a/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/orders.ts +++ b/src/Managing.Web3Proxy/src/generated/gmxsdk/modules/orders/orders.ts @@ -357,7 +357,7 @@ export class Orders extends Module { skipSimulation: true, indexToken: marketInfo.indexToken, tokensData, - autoCancel: autoCancelOrdersLimit > 0, + autoCancel: autoCancelOrdersLimit > 0 }); } diff --git a/src/Managing.Web3Proxy/src/plugins/custom/gmx.ts b/src/Managing.Web3Proxy/src/plugins/custom/gmx.ts index 1e645fc..12eeb8b 100644 --- a/src/Managing.Web3Proxy/src/plugins/custom/gmx.ts +++ b/src/Managing.Web3Proxy/src/plugins/custom/gmx.ts @@ -161,7 +161,7 @@ export const openGmxPositionImpl = async ( allowedSlippageBps: 100, // 1% slippage leverage: leverageBps, skipSimulation: true, - limitPrice: limitPrice, + limitPrice: null, referralCodeForTxn: encodeReferralCode("kaigen_ai"), stopLossPrice: stopLossPrice ? numberToBigint(stopLossPrice, 30) : undefined, takeProfitPrice: takeProfitPrice ? numberToBigint(takeProfitPrice, 30) : undefined @@ -440,7 +440,7 @@ export const closeGmxPositionImpl = async ( sizeDeltaInTokens: position.sizeInTokens, collateralDeltaUsd: position.remainingCollateralAmount, collateralDeltaAmount: position.remainingCollateralAmount, - acceptablePriceDeltaBps: 0n, + acceptablePriceDeltaBps: 30n, recommendedAcceptablePriceDeltaBps: 0n, estimatedPnl: 0n, estimatedPnlPercentage: 0n, @@ -464,7 +464,7 @@ export const closeGmxPositionImpl = async ( indexPrice: 0n, collateralPrice: 0n, acceptablePrice: position.markPrice, - triggerOrderType: OrderType.MarketDecrease, + triggerOrderType: OrderType.LimitDecrease, triggerPrice: position.markPrice, } @@ -475,7 +475,7 @@ export const closeGmxPositionImpl = async ( marketsInfoData, tokensData, isLong: direction === TradeDirection.Short, - allowedSlippage: 0, + allowedSlippage: 30, decreaseAmounts, collateralToken: position.marketInfo.shortToken, referralCodeForTxn: encodeReferralCode("kaigen_ai"),