🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@pear-protocol/symm-shared

Package Overview
Dependencies
Maintainers
3
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pear-protocol/symm-shared - npm Package Compare versions

Comparing version
0.1.2
to
0.1.3
+12
dist/utils/markets.d.ts
/**
* 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"}

@@ -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"}
{
"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",

@@ -27,2 +27,3 @@ /**

calculatePositionValue,
cleanSymbol,
formatAmount,

@@ -29,0 +30,0 @@ formatPrice,

@@ -11,1 +11,3 @@ export {

} from './formatting';
export { cleanSymbol } from './markets';