@panoptic-xyz/sdk
v0.0.1-alpha.5
Published
Typescript SDK for Panoptic.
Downloads
7
Readme
Panoptic SDK
Typescript SDK for Panoptic.
Overview
This SDK aims to provide a developer friendly, performant, and robust way to access the Panoptic protocol. An extension is used to provide a seamless extension to Viem. The main entities of the SDK are:
- get functions: Gather data by reading from the blockchain
- utility functions: Perform off-chain calculations
- simulate functions: Estimate gas and return a formatted transaction for a specific action
Example
import { createPublicClient, http } from 'viem'
import { sepolia } from 'viem/chains'
import {
publicActionsPanoptic,
sepoliaPanoptic,
createPanopticPosition
} from '@panoptic-xyz/sdk'
export const publicClient = createPublicClient({
chain: mainnet,
transport: http(),
}).extend(publicActionsReverseMirage)
// Pass in or read a uniswap pool
const uniswapPool = ...
// Read the data from the corresponding panoptic pool
const panopticPool = await publicClient.getPanopticPool({
uniswapPool,
factory: sepoliaPanoptic.factory,
})
// Create a new position, specifying legs
const newPosition = createPanopticPosition(panopticPool, [
{
asset: "token0",
optionRatio: 1,
position: "long",
tokenType: "token0",
riskPartnerIndex: 0,
tickLower: 0,
tickUpper: 300
},
undefined,
undefined,
undefined,
])
// Mint the new position from the panoptic pool
const { result } = await publicClient.simulatePanopticMintOptions({
position: newPosition,
amount: 10n ** 18n
});
API
Entities
- [x]
PanopticFactory: The factory contract in the Panoptic protocol - [x]
PanopticSemiFungiblePositionManager: The semi-fungible position manager in the Panoptic protocol - [x]
PanopticPool: A pool created byPanopticFactory - [x]
PanopticPoolData: The state of aPanopticPool - [x]
PanopticCollateral: A collateral tracker in aPanopticPool - [x]
PanopticCollateralData: The state of aPanopticCollateral - [x]
PanopticPosition: A user position in aPanopticPool - [x]
PanopticPositionData: The state of aPanopticPosition - [x]
PanopticCollateralPosition: A user position in aPanopticCollateral - [x]
PanopticCollateralPositionData: The state of aPanopticCollateralPosition
- [x]
Utilities
- [x]
createPanopticPool - [x]
createPanopticCollateral - [x]
createPanopticPosition - [x]
createPanopticSemiFungiblePosition - [x]
calculatePanopticTokenID - [x]
calculatePanopticPositionKey
- [x]
Public Actions
- [x]
getPanopticPool - [x]
getPanopticPoolData - [x]
getPanopticCollateralData - [x]
getPanopticCollateralPositionData - [x]
getPanoptionLegData - [x]
getPanopticPositionData - [x]
getPanopticSemiFungiblePositionData - [x]
getPanopticCheckCollateral - [x]
simulatePanopticDeployNewPool - [x]
simulatePanopticMintOptions - [x]
simulatePanopticBurnOptions - [x]
simulatePanopticRollOptions - [x]
simulatePanopticForceExercise - [x]
simulatePanopticLiquidateAccount - [x]
simulatePanopticCollateralMint - [x]
simulatePanopticCollateralDeposit - [x]
simulatePanopticCollateralRedeem - [x]
simulatePanopticCollateralWithdraw - [x]
simulatePanopticSFPMInitializeAMMPool - [x]
simulatePanopticSFPMMintTokenizedPosition - [x]
simulatePanopticSFPMBurnTokenizedPosition - [x]
simulatePanopticSFPMRollTokenizedPositions
- [x]
Chains
- [x]
sepoliaPanoptic
- [x]
ABIs
- [x]
panopticFactoryABI - [x]
panopticCollateralTrackerABI - [x]
panopticPoolABI - [x]
panopticSemiFuniblePositionManagerABI
- [x]
