UNPKG

@orca-so/whirlpools-sdk

Version:

Typescript SDK to interact with Orca's Whirlpool program.

248 lines 9.35 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParsableOracle = exports.ParsableAdaptiveFeeTier = exports.ParsableLockConfig = exports.ParsableTokenBadge = exports.ParsableWhirlpoolsConfigExtension = exports.ParsablePositionBundle = exports.ParsableFeeTier = exports.ParsableTickArray = exports.ParsablePosition = exports.ParsableWhirlpool = exports.ParsableWhirlpoolsConfig = void 0; const anchor_1 = require("@coral-xyz/anchor"); const idl_1 = require("@coral-xyz/anchor/dist/cjs/idl"); const common_sdk_1 = require("@orca-so/common-sdk"); const public_1 = require("../../types/public"); let ParsableWhirlpoolsConfig = class ParsableWhirlpoolsConfig { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.WhirlpoolsConfig, accountData); } catch (e) { console.error(`error while parsing WhirlpoolsConfig: ${e}`); return null; } } }; exports.ParsableWhirlpoolsConfig = ParsableWhirlpoolsConfig; exports.ParsableWhirlpoolsConfig = ParsableWhirlpoolsConfig = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableWhirlpoolsConfig); let ParsableWhirlpool = class ParsableWhirlpool { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.Whirlpool, accountData); } catch (e) { console.error(`error while parsing Whirlpool: ${e}`); return null; } } }; exports.ParsableWhirlpool = ParsableWhirlpool; exports.ParsableWhirlpool = ParsableWhirlpool = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableWhirlpool); let ParsablePosition = class ParsablePosition { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.Position, accountData); } catch (e) { console.error(`error while parsing Position: ${e}`); return null; } } }; exports.ParsablePosition = ParsablePosition; exports.ParsablePosition = ParsablePosition = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsablePosition); let ParsableTickArray = class ParsableTickArray { static parse(address, accountData) { if (!accountData?.data) { return null; } const discriminator = accountData.data.subarray(0, 8); if (discriminator.equals(WhirlpoolCoder.accountDiscriminator(public_1.AccountName.DynamicTickArray))) { try { const tickArray = parseAnchorAccount(public_1.AccountName.DynamicTickArray, accountData); const ticks = tickArray.ticks.map(public_1.toTick); return { whirlpool: tickArray.whirlpool, startTickIndex: tickArray.startTickIndex, ticks, }; } catch (e) { console.error(`error while parsing DynamicTickArray: ${e}`); return null; } } if (discriminator.equals(WhirlpoolCoder.accountDiscriminator(public_1.AccountName.TickArray))) { try { return parseAnchorAccount(public_1.AccountName.TickArray, accountData); } catch (e) { console.error(`error while parsing TickArray: ${e}`); return null; } } console.error(`unknown discriminator during parsing: ${discriminator}`); return null; } }; exports.ParsableTickArray = ParsableTickArray; exports.ParsableTickArray = ParsableTickArray = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableTickArray); let ParsableFeeTier = class ParsableFeeTier { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.FeeTier, accountData); } catch (e) { console.error(`error while parsing FeeTier: ${e}`); return null; } } }; exports.ParsableFeeTier = ParsableFeeTier; exports.ParsableFeeTier = ParsableFeeTier = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableFeeTier); let ParsablePositionBundle = class ParsablePositionBundle { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.PositionBundle, accountData); } catch (e) { console.error(`error while parsing PositionBundle: ${e}`); return null; } } }; exports.ParsablePositionBundle = ParsablePositionBundle; exports.ParsablePositionBundle = ParsablePositionBundle = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsablePositionBundle); let ParsableWhirlpoolsConfigExtension = class ParsableWhirlpoolsConfigExtension { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.WhirlpoolsConfigExtension, accountData); } catch (e) { console.error(`error while parsing WhirlpoolsConfigExtension: ${e}`); return null; } } }; exports.ParsableWhirlpoolsConfigExtension = ParsableWhirlpoolsConfigExtension; exports.ParsableWhirlpoolsConfigExtension = ParsableWhirlpoolsConfigExtension = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableWhirlpoolsConfigExtension); let ParsableTokenBadge = class ParsableTokenBadge { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.TokenBadge, accountData); } catch (e) { console.error(`error while parsing TokenBadge: ${e}`); return null; } } }; exports.ParsableTokenBadge = ParsableTokenBadge; exports.ParsableTokenBadge = ParsableTokenBadge = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableTokenBadge); let ParsableLockConfig = class ParsableLockConfig { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.LockConfig, accountData); } catch (e) { console.error(`error while parsing LockConfig: ${e}`); return null; } } }; exports.ParsableLockConfig = ParsableLockConfig; exports.ParsableLockConfig = ParsableLockConfig = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableLockConfig); let ParsableAdaptiveFeeTier = class ParsableAdaptiveFeeTier { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.AdaptiveFeeTier, accountData); } catch (e) { console.error(`error while parsing AdaptiveFeeTier: ${e}`); return null; } } }; exports.ParsableAdaptiveFeeTier = ParsableAdaptiveFeeTier; exports.ParsableAdaptiveFeeTier = ParsableAdaptiveFeeTier = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableAdaptiveFeeTier); let ParsableOracle = class ParsableOracle { static parse(address, accountData) { if (!accountData?.data) { return null; } try { return parseAnchorAccount(public_1.AccountName.Oracle, accountData); } catch (e) { console.error(`error while parsing Oracle: ${e}`); return null; } } }; exports.ParsableOracle = ParsableOracle; exports.ParsableOracle = ParsableOracle = __decorate([ (0, common_sdk_1.staticImplements)() ], ParsableOracle); const WhirlpoolCoder = new anchor_1.BorshAccountsCoder((0, idl_1.convertIdlToCamelCase)(public_1.WHIRLPOOL_IDL)); function parseAnchorAccount(accountName, accountData) { const data = accountData.data; const discriminator = WhirlpoolCoder.accountDiscriminator(accountName); if (discriminator.compare(data.subarray(0, 8))) { console.error("incorrect account name during parsing"); return null; } try { return WhirlpoolCoder.decode(accountName, data); } catch (_e) { console.error("unknown account name during parsing"); return null; } } //# sourceMappingURL=parsing.js.map