@orca-so/whirlpool-sdk
Version:
Whirlpool SDK for the Orca protocol.
145 lines (144 loc) • 4.89 kB
JavaScript
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.ParsableMintInfo = exports.ParsableTokenInfo = exports.ParsableTickArray = exports.ParsablePosition = exports.ParsableWhirlpool = exports.ParsableWhirlpoolsConfig = void 0;
const whirlpool_client_sdk_1 = require("@orca-so/whirlpool-client-sdk");
const spl_token_1 = require("@solana/spl-token");
const web3_js_1 = require("@solana/web3.js");
const deserialize_token_account_1 = require("../utils/web3/deserialize-token-account");
let ParsableWhirlpoolsConfig = class ParsableWhirlpoolsConfig {
constructor() { }
static parse(data) {
if (!data) {
return null;
}
try {
return (0, whirlpool_client_sdk_1.parseWhirlpoolsConfig)(data);
}
catch (e) {
console.error(`error while parsing WhirlpoolsConfig: ${e}`);
return null;
}
}
};
ParsableWhirlpoolsConfig = __decorate([
staticImplements()
], ParsableWhirlpoolsConfig);
exports.ParsableWhirlpoolsConfig = ParsableWhirlpoolsConfig;
let ParsableWhirlpool = class ParsableWhirlpool {
constructor() { }
static parse(data) {
if (!data) {
return null;
}
try {
return (0, whirlpool_client_sdk_1.parseWhirlpool)(data);
}
catch (e) {
console.error(`error while parsing Whirlpool: ${e}`);
return null;
}
}
};
ParsableWhirlpool = __decorate([
staticImplements()
], ParsableWhirlpool);
exports.ParsableWhirlpool = ParsableWhirlpool;
let ParsablePosition = class ParsablePosition {
constructor() { }
static parse(data) {
if (!data) {
return null;
}
try {
return (0, whirlpool_client_sdk_1.parsePosition)(data);
}
catch (e) {
console.error(`error while parsing Position: ${e}`);
return null;
}
}
};
ParsablePosition = __decorate([
staticImplements()
], ParsablePosition);
exports.ParsablePosition = ParsablePosition;
let ParsableTickArray = class ParsableTickArray {
constructor() { }
static parse(data) {
if (!data) {
return null;
}
try {
return (0, whirlpool_client_sdk_1.parseTickArray)(data);
}
catch (e) {
console.error(`error while parsing TickArray: ${e}`);
return null;
}
}
};
ParsableTickArray = __decorate([
staticImplements()
], ParsableTickArray);
exports.ParsableTickArray = ParsableTickArray;
let ParsableTokenInfo = class ParsableTokenInfo {
constructor() { }
static parse(data) {
if (!data) {
return null;
}
try {
return (0, deserialize_token_account_1.deserializeTokenAccount)(data);
}
catch (e) {
console.error(`error while parsing TokenAccount: ${e}`);
return null;
}
}
};
ParsableTokenInfo = __decorate([
staticImplements()
], ParsableTokenInfo);
exports.ParsableTokenInfo = ParsableTokenInfo;
let ParsableMintInfo = class ParsableMintInfo {
constructor() { }
static parse(data) {
if (!data) {
return null;
}
try {
const buffer = spl_token_1.MintLayout.decode(data);
const mintInfo = {
mintAuthority: buffer.mintAuthorityOption === 0 ? null : new web3_js_1.PublicKey(buffer.mintAuthority),
supply: spl_token_1.u64.fromBuffer(buffer.supply),
decimals: buffer.decimals,
isInitialized: buffer.isInitialized !== 0,
freezeAuthority: buffer.freezeAuthority === 0 ? null : new web3_js_1.PublicKey(buffer.freezeAuthority),
};
return mintInfo;
}
catch (e) {
console.error(`error while parsing MintInfo: ${e}`);
return null;
}
}
};
ParsableMintInfo = __decorate([
staticImplements()
], ParsableMintInfo);
exports.ParsableMintInfo = ParsableMintInfo;
/**
* Class decorator to define an interface with static methods
* Reference: https://github.com/Microsoft/TypeScript/issues/13462#issuecomment-295685298
*/
function staticImplements() {
return (constructor) => {
constructor;
};
}
;