UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 5.96 kB
{"version":3,"sources":["../../../src/raydium/liquidity/serum.ts","../../../src/common/logger.ts","../../../src/raydium/liquidity/constant.ts"],"sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\nimport { createLogger } from \"../../common/logger\";\nimport { SerumVersion } from \"../serum\";\nimport { LIQUIDITY_VERSION_TO_SERUM_VERSION } from \"./constant\";\n\nconst logger = createLogger(\"Raydium_liquidity_serum\");\n\nexport function getSerumVersion(version: number): SerumVersion {\n const serumVersion = LIQUIDITY_VERSION_TO_SERUM_VERSION[version];\n if (!serumVersion) logger.logWithError(\"invalid version\", \"version\", version);\n\n return serumVersion;\n}\n\nexport function getSerumAssociatedAuthority({ programId, marketId }: { programId: PublicKey; marketId: PublicKey }): {\n publicKey: PublicKey;\n nonce: number;\n} {\n const seeds = [marketId.toBuffer()];\n\n let nonce = 0;\n let publicKey: PublicKey;\n\n while (nonce < 100) {\n try {\n const seedsWithNonce = seeds.concat(Buffer.from([nonce]), Buffer.alloc(7));\n publicKey = PublicKey.createProgramAddressSync(seedsWithNonce, programId);\n } catch (err) {\n if (err instanceof TypeError) {\n throw err;\n }\n nonce++;\n continue;\n }\n return { publicKey, nonce };\n }\n\n logger.logWithError(\"unable to find a viable program address nonce\", \"params\", {\n programId,\n marketId,\n });\n throw new Error(\"unable to find a viable program address nonce\");\n}\n","import { get, set } from \"lodash\";\n\nexport type ModuleName = \"Common.Api\";\n\nexport enum LogLevel {\n Error,\n Warning,\n Info,\n Debug,\n}\nexport class Logger {\n private logLevel: LogLevel;\n private name: string;\n constructor(params: { name: string; logLevel?: LogLevel }) {\n this.logLevel = params.logLevel !== undefined ? params.logLevel : LogLevel.Error;\n this.name = params.name;\n }\n\n set level(logLevel: LogLevel) {\n this.logLevel = logLevel;\n }\n get time(): string {\n return Date.now().toString();\n }\n get moduleName(): string {\n return this.name;\n }\n\n private isLogLevel(level: LogLevel): boolean {\n return level <= this.logLevel;\n }\n\n public error(...props): Logger {\n if (!this.isLogLevel(LogLevel.Error)) return this;\n console.error(this.time, this.name, \"sdk logger error\", ...props);\n return this;\n }\n\n public logWithError(...props): Logger {\n // this.error(...props)\n const msg = props.map((arg) => (typeof arg === \"object\" ? JSON.stringify(arg) : arg)).join(\", \");\n throw new Error(msg);\n }\n\n public warning(...props): Logger {\n if (!this.isLogLevel(LogLevel.Warning)) return this;\n console.warn(this.time, this.name, \"sdk logger warning\", ...props);\n return this;\n }\n\n public info(...props): Logger {\n if (!this.isLogLevel(LogLevel.Info)) return this;\n console.info(this.time, this.name, \"sdk logger info\", ...props);\n return this;\n }\n\n public debug(...props): Logger {\n if (!this.isLogLevel(LogLevel.Debug)) return this;\n console.debug(this.time, this.name, \"sdk logger debug\", ...props);\n return this;\n }\n}\n\nconst moduleLoggers: { [key in ModuleName]?: Logger } = {};\nconst moduleLevels: { [key in ModuleName]?: LogLevel } = {};\n\nexport function createLogger(moduleName: string): Logger {\n let logger = get(moduleLoggers, moduleName);\n if (!logger) {\n // default level is error\n const logLevel = get(moduleLevels, moduleName);\n\n logger = new Logger({ name: moduleName, logLevel });\n set(moduleLoggers, moduleName, logger);\n }\n\n return logger;\n}\n\nexport function setLoggerLevel(moduleName: string, level: LogLevel): void {\n set(moduleLevels, moduleName, level);\n\n const logger = get(moduleLoggers, moduleName);\n if (logger) logger.level = level;\n}\n","import BN from \"bn.js\";\nimport { SerumVersion } from \"../serum\";\n\nexport const LIQUIDITY_FEES_NUMERATOR = new BN(25);\nexport const LIQUIDITY_FEES_DENOMINATOR = new BN(10000);\n\n// liquidity version => serum version\nexport const LIQUIDITY_VERSION_TO_SERUM_VERSION: {\n [key in 4 | 5]?: SerumVersion;\n} = {\n 4: 3,\n 5: 3,\n};\n"],"mappings":"AAAA,4CCAA,sCAUO,WAAa,CAGlB,YAAY,EAA+C,CACzD,KAAK,SAAW,EAAO,WAAa,OAAY,EAAO,SAAW,EAClE,KAAK,KAAO,EAAO,IACrB,IAEI,OAAM,EAAoB,CAC5B,KAAK,SAAW,CAClB,IACI,OAAe,CACjB,MAAO,MAAK,IAAI,EAAE,SAAS,CAC7B,IACI,aAAqB,CACvB,MAAO,MAAK,IACd,CAEQ,WAAW,EAA0B,CAC3C,MAAO,IAAS,KAAK,QACvB,CAEO,SAAS,EAAe,CAC7B,MAAK,MAAK,WAAW,CAAc,EACnC,SAAQ,MAAM,KAAK,KAAM,KAAK,KAAM,mBAAoB,GAAG,CAAK,EACzD,MAFsC,IAG/C,CAEO,gBAAgB,EAAe,CAEpC,GAAM,GAAM,EAAM,IAAI,AAAC,GAAS,MAAO,IAAQ,SAAW,KAAK,UAAU,CAAG,EAAI,CAAI,EAAE,KAAK,IAAI,EAC/F,KAAM,IAAI,OAAM,CAAG,CACrB,CAEO,WAAW,EAAe,CAC/B,MAAK,MAAK,WAAW,CAAgB,EACrC,SAAQ,KAAK,KAAK,KAAM,KAAK,KAAM,qBAAsB,GAAG,CAAK,EAC1D,MAFwC,IAGjD,CAEO,QAAQ,EAAe,CAC5B,MAAK,MAAK,WAAW,CAAa,EAClC,SAAQ,KAAK,KAAK,KAAM,KAAK,KAAM,kBAAmB,GAAG,CAAK,EACvD,MAFqC,IAG9C,CAEO,SAAS,EAAe,CAC7B,MAAK,MAAK,WAAW,CAAc,EACnC,SAAQ,MAAM,KAAK,KAAM,KAAK,KAAM,mBAAoB,GAAG,CAAK,EACzD,MAFsC,IAG/C,CACF,EAEM,EAAkD,CAAC,EACnD,EAAmD,CAAC,EAEnD,WAAsB,EAA4B,CACvD,GAAI,GAAS,EAAI,EAAe,CAAU,EAC1C,GAAI,CAAC,EAAQ,CAEX,GAAM,GAAW,EAAI,EAAc,CAAU,EAE7C,EAAS,GAAI,GAAO,CAAE,KAAM,EAAY,UAAS,CAAC,EAClD,EAAI,EAAe,EAAY,CAAM,CACvC,CAEA,MAAO,EACT,CC7EA,qBAGO,GAAM,GAA2B,GAAI,GAAG,EAAE,EACpC,EAA6B,GAAI,GAAG,GAAK,EAGzC,EAET,CACF,EAAG,EACH,EAAG,CACL,EFPA,GAAM,GAAS,EAAa,yBAAyB,EAE9C,WAAyB,EAA+B,CAC7D,GAAM,GAAe,EAAmC,GACxD,MAAK,IAAc,EAAO,aAAa,kBAAmB,UAAW,CAAO,EAErE,CACT,CAEO,WAAqC,CAAE,YAAW,YAGvD,CACA,GAAM,GAAQ,CAAC,EAAS,SAAS,CAAC,EAE9B,EAAQ,EACR,EAEJ,KAAO,EAAQ,KAAK,CAClB,GAAI,CACF,GAAM,GAAiB,EAAM,OAAO,OAAO,KAAK,CAAC,CAAK,CAAC,EAAG,OAAO,MAAM,CAAC,CAAC,EACzE,EAAY,EAAU,yBAAyB,EAAgB,CAAS,CAC1E,OAAS,EAAP,CACA,GAAI,YAAe,WACjB,KAAM,GAER,IACA,QACF,CACA,MAAO,CAAE,YAAW,OAAM,CAC5B,CAEA,QAAO,aAAa,gDAAiD,SAAU,CAC7E,YACA,UACF,CAAC,EACK,GAAI,OAAM,+CAA+C,CACjE","names":[]}