@signals-protocol/v1-sdk
v1.7.0
Published
Signals v1 SDK for CLMSR market calculations and utilities
Readme
Signals v1 SDK
Contract-aligned TypeScript SDK for Signals v1 CLMSR market math. Quote open and close costs, compute inverse quantities, and map subgraph data into calculation types.
Install
npm install @signals-protocol/v1-sdkQuick start
import {
CLMSRSDK,
mapMarket,
mapDistribution,
toMicroUSDC,
} from "@signals-protocol/v1-sdk";
const sdk = new CLMSRSDK();
// Raw data from your subgraph (strings)
const rawMarket = {
liquidityParameter: "1000000000000000000",
minTick: -500,
maxTick: 500,
tickSpacing: 10,
};
const rawDistribution = {
totalSum: "1000000000000000000",
binFactors: ["1000000000000000000", "1000000000000000000"],
};
const market = mapMarket(rawMarket);
const distribution = mapDistribution(rawDistribution);
const quantity = toMicroUSDC(10); // 10 USDC in 6 decimals
const quote = sdk.calculateOpenCost(-100, 100, quantity, distribution, market);
console.log(quote.cost.toString());Common tasks
Quote sell proceeds
import { CLMSRSDK, toMicroUSDC } from "@signals-protocol/v1-sdk";
const sdk = new CLMSRSDK();
const position = {
lowerTick: -100,
upperTick: 100,
quantity: toMicroUSDC(10),
};
const proceeds = sdk.calculateDecreaseProceeds(
position,
toMicroUSDC(5),
distribution,
market
);
console.log(proceeds.proceeds.toString());Inverse: budget to quantity
const result = sdk.calculateQuantityFromCost(
-100,
100,
toMicroUSDC(50),
distribution,
market,
true
);
console.log(result.quantity.toString());Exports
CLMSRSDK/SignalsSDKfor pricing and inverse functionscreateCLMSRSDK,createSignalsSDKconvenience constructorsmapMarket,mapDistributionfor GraphQL-to-SDK conversionsMathUtilsfor WAD/USDC helpers and math utilities- Types in
types.ts(e.g.Market,MarketDistribution,Position,FeeInfo)
Notes
- Amounts are
big.jsvalues (USDC uses 6 decimals, WAD uses 18 decimals). - Fee overlays follow the contract fee policy descriptor when provided.
- The SDK mirrors contract math and overflow guards for compatibility.
