UNPKG

@orca-so/whirlpools-sdk

Version:

Typescript SDK to interact with Orca's Whirlpool program.

43 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TickArrayIndex = void 0; const public_1 = require("../../types/public"); class TickArrayIndex { arrayIndex; offsetIndex; tickSpacing; static fromTickIndex(index, tickSpacing) { const arrayIndex = Math.floor(Math.floor(index / tickSpacing) / public_1.TICK_ARRAY_SIZE); let offsetIndex = Math.floor((index % (tickSpacing * public_1.TICK_ARRAY_SIZE)) / tickSpacing); if (offsetIndex < 0) { offsetIndex = public_1.TICK_ARRAY_SIZE + offsetIndex; } return new TickArrayIndex(arrayIndex, offsetIndex, tickSpacing); } constructor(arrayIndex, offsetIndex, tickSpacing) { this.arrayIndex = arrayIndex; this.offsetIndex = offsetIndex; this.tickSpacing = tickSpacing; if (offsetIndex >= public_1.TICK_ARRAY_SIZE) { throw new Error("Invalid offsetIndex - value has to be smaller than TICK_ARRAY_SIZE"); } if (offsetIndex < 0) { throw new Error("Invalid offsetIndex - value is smaller than 0"); } if (tickSpacing < 0) { throw new Error("Invalid tickSpacing - value is less than 0"); } } toTickIndex() { return (this.arrayIndex * public_1.TICK_ARRAY_SIZE * this.tickSpacing + this.offsetIndex * this.tickSpacing); } toNextInitializableTickIndex() { return TickArrayIndex.fromTickIndex(this.toTickIndex() + this.tickSpacing, this.tickSpacing); } toPrevInitializableTickIndex() { return TickArrayIndex.fromTickIndex(this.toTickIndex() - this.tickSpacing, this.tickSpacing); } } exports.TickArrayIndex = TickArrayIndex; //# sourceMappingURL=tick-array-index.js.map