diff --git a/src/main/tjava/com/r35157/libs/jupiter/perps/impl/anchoridl/AnchorIdlJupiterPerpsPositionDecoder.tjava b/src/main/tjava/com/r35157/libs/jupiter/perps/impl/anchoridl/AnchorIdlJupiterPerpsPositionDecoder.tjava new file mode 100644 index 0000000..7f501f4 --- /dev/null +++ b/src/main/tjava/com/r35157/libs/jupiter/perps/impl/anchoridl/AnchorIdlJupiterPerpsPositionDecoder.tjava @@ -0,0 +1,16 @@ +package com.r35157.libs.jupiter.perps.impl.anchoridl; + +import com.r35157.libs.jupiter.perps.JupiterPerpsPosition; +import com.r35157.libs.solana.SolanaAccountInfo; + +class AnchorIdlJupiterPerpsPositionDecoder { + + JupiterPerpsPosition decode( + ΩJupiterPerpsPositionAccountΩ positionAccount, + SolanaAccountInfo accountInfo + ) { + throw new UnsupportedOperationException( + "Jupiter Perps position decoding is not implemented yet." + ); + } +} \ No newline at end of file diff --git a/src/main/tjava/com/r35157/libs/jupiter/perps/impl/anchoridl/AnchorIdlJupiterPerpsPositionServiceImpl.tjava b/src/main/tjava/com/r35157/libs/jupiter/perps/impl/anchoridl/AnchorIdlJupiterPerpsPositionServiceImpl.tjava index 7697862..f01b8e5 100644 --- a/src/main/tjava/com/r35157/libs/jupiter/perps/impl/anchoridl/AnchorIdlJupiterPerpsPositionServiceImpl.tjava +++ b/src/main/tjava/com/r35157/libs/jupiter/perps/impl/anchoridl/AnchorIdlJupiterPerpsPositionServiceImpl.tjava @@ -10,28 +10,25 @@ import java.io.IOException; public class AnchorIdlJupiterPerpsPositionServiceImpl implements JupiterPerpsPositionService { private final SolanaBlockChain solanaBlockChain; + private final AnchorIdlJupiterPerpsPositionDecoder positionDecoder; public AnchorIdlJupiterPerpsPositionServiceImpl( SolanaBlockChain solanaBlockChain ) { this.solanaBlockChain = solanaBlockChain; + this.positionDecoder = new AnchorIdlJupiterPerpsPositionDecoder(); } @Override - public JupiterPerpsPosition getPosition( - ΩJupiterPerpsPositionAccountΩ positionAccount - ) throws IOException, InterruptedException { - SolanaAccountInfo accountInfo = - solanaBlockChain.getAccountInfo(positionAccount); + public JupiterPerpsPosition getPosition(ΩJupiterPerpsPositionAccountΩ positionAccount) + throws IOException, InterruptedException { + SolanaAccountInfo accountInfo = solanaBlockChain.getAccountInfo(positionAccount); if (accountInfo == null) { - throw new IllegalArgumentException( - "Jupiter Perps position account does not exist: " + positionAccount - ); + throw new IllegalArgumentException("Jupiter Perps position account does not exist: " + positionAccount); } - throw new UnsupportedOperationException( - "Jupiter Perps position account decoding is not implemented yet." - ); + JupiterPerpsPosition pos = positionDecoder.decode(positionAccount, accountInfo); + return pos; } } \ No newline at end of file