@pear-protocol/symm-shared
Advanced tools
| /** | ||
| * Derive a clean token symbol from a raw hedger/contract ticker name. | ||
| * | ||
| * Examples: | ||
| * "ROBOUSDT" → "ROBO" | ||
| * "1000chemusdt_bybit" → "1000CHEM" | ||
| * "BTCUSDT" → "BTC" | ||
| * "ETHUSDC" → "ETH" | ||
| * "BTC" → "BTC" | ||
| */ | ||
| export declare function cleanSymbol(raw: string): string; | ||
| //# sourceMappingURL=markets.d.ts.map |
| {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../src/utils/markets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoB/C"} |
| /** | ||
| * Derive a clean token symbol from a raw hedger/contract ticker name. | ||
| * | ||
| * Examples: | ||
| * "ROBOUSDT" → "ROBO" | ||
| * "1000chemusdt_bybit" → "1000CHEM" | ||
| * "BTCUSDT" → "BTC" | ||
| * "ETHUSDC" → "ETH" | ||
| * "BTC" → "BTC" | ||
| */ | ||
| export function cleanSymbol(raw: string): string { | ||
| let cleaned = raw.trim(); | ||
| if (!cleaned) return cleaned; | ||
| // Strip trailing exchange suffixes (e.g., ROBOUSDT_bybit -> ROBOUSDT) | ||
| const underscoreIdx = cleaned.indexOf('_'); | ||
| if (underscoreIdx > 0) { | ||
| cleaned = cleaned.slice(0, underscoreIdx); | ||
| } | ||
| // Strip trailing quote-currency suffixes (e.g., ROBOUSDT -> ROBO) | ||
| const upper = cleaned.toUpperCase(); | ||
| for (const suffix of ['USDT', 'USDC', 'USDH']) { | ||
| if (upper.endsWith(suffix) && cleaned.length > suffix.length) { | ||
| cleaned = cleaned.slice(0, -suffix.length); | ||
| break; | ||
| } | ||
| } | ||
| return cleaned.toUpperCase(); | ||
| } |
+1
-1
@@ -6,3 +6,3 @@ /** | ||
| export { type ApiResponse, type LockedParams, type Market, type OrderStatus, type PositionStatus, PositionType, SlippageMode, type SupportedChainId, type TpslConfig, type TpslEntry, TpslOrderType, TpslStatus, type TpslTriggerType, type TriggerDirection, type TriggerStatus, type TriggerType, } from './types'; | ||
| export { calculatePositionValue, formatAmount, formatPrice, fromWei, getPositionTypeByIndex, getQuoteStatusByIndex, QuoteStatus, toWei, } from './utils'; | ||
| export { calculatePositionValue, cleanSymbol, formatAmount, formatPrice, fromWei, getPositionTypeByIndex, getQuoteStatusByIndex, QuoteStatus, toWei, } from './utils'; | ||
| export type { BasketLegInput } from './utils/basket'; | ||
@@ -9,0 +9,0 @@ export { computeBasketSignature, extractBasketLegs } from './utils/basket'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,YAAY,EACZ,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,aAAa,EACb,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,KAAK,GACN,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,YAAY,EACZ,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,aAAa,EACb,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,OAAO,EACP,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,KAAK,GACN,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC"} |
+19
-0
@@ -91,2 +91,20 @@ // src/types/positions.ts | ||
| } | ||
| // src/utils/markets.ts | ||
| function cleanSymbol(raw) { | ||
| let cleaned = raw.trim(); | ||
| if (!cleaned) | ||
| return cleaned; | ||
| const underscoreIdx = cleaned.indexOf("_"); | ||
| if (underscoreIdx > 0) { | ||
| cleaned = cleaned.slice(0, underscoreIdx); | ||
| } | ||
| const upper = cleaned.toUpperCase(); | ||
| for (const suffix of ["USDT", "USDC", "USDH"]) { | ||
| if (upper.endsWith(suffix) && cleaned.length > suffix.length) { | ||
| cleaned = cleaned.slice(0, -suffix.length); | ||
| break; | ||
| } | ||
| } | ||
| return cleaned.toUpperCase(); | ||
| } | ||
| // src/utils/basket.ts | ||
@@ -1739,2 +1757,3 @@ import { createHash } from "node:crypto"; | ||
| computeBasketSignature, | ||
| cleanSymbol, | ||
| calculatePositionValue, | ||
@@ -1741,0 +1760,0 @@ calculateMinPositionValue, |
| export { calculatePositionValue, formatAmount, formatPrice, fromWei, getPositionTypeByIndex, getQuoteStatusByIndex, QuoteStatus, toWei, } from './formatting'; | ||
| export { cleanSymbol } from './markets'; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,KAAK,GACN,MAAM,cAAc,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"} |
+1
-1
| { | ||
| "name": "@pear-protocol/symm-shared", | ||
| "version": "0.1.2", | ||
| "version": "0.1.3", | ||
| "description": "Shared types and utilities for Symm Engine and SDK", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
+1
-0
@@ -27,2 +27,3 @@ /** | ||
| calculatePositionValue, | ||
| cleanSymbol, | ||
| formatAmount, | ||
@@ -29,0 +30,0 @@ formatPrice, |
@@ -11,1 +11,3 @@ export { | ||
| } from './formatting'; | ||
| export { cleanSymbol } from './markets'; |
101345
2.19%41
7.89%2899
2.15%