UNPKG

@renec-foundation/redex-sdk

Version:

Typescript SDK to interact with Orca's Whirlpool program.

37 lines (36 loc) 1.89 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.WhirlpoolContext = void 0; const anchor_1 = require("@project-serum/anchor"); const whirlpool_json_1 = __importDefault(require("./artifacts/whirlpool.json")); const public_1 = require("./network/public"); /** * @category Core */ class WhirlpoolContext { constructor(provider, wallet, program, fetcher, opts) { this.connection = provider.connection; this.wallet = wallet; this.opts = opts; // It's a hack but it works on Anchor workspace *shrug* this.program = program; this.provider = provider; this.fetcher = fetcher; } static from(connection, wallet, programId, fetcher = new public_1.AccountFetcher(connection), opts = anchor_1.AnchorProvider.defaultOptions()) { const anchorProvider = new anchor_1.AnchorProvider(connection, wallet, opts); const program = new anchor_1.Program(whirlpool_json_1.default, programId, anchorProvider); return new WhirlpoolContext(anchorProvider, anchorProvider.wallet, program, fetcher, opts); } static fromWorkspace(provider, program, fetcher = new public_1.AccountFetcher(provider.connection), opts = anchor_1.AnchorProvider.defaultOptions()) { return new WhirlpoolContext(provider, provider.wallet, program, fetcher, opts); } static withProvider(provider, programId, fetcher = new public_1.AccountFetcher(provider.connection), opts = anchor_1.AnchorProvider.defaultOptions()) { const program = new anchor_1.Program(whirlpool_json_1.default, programId, provider); return new WhirlpoolContext(provider, provider.wallet, program, fetcher, opts); } } exports.WhirlpoolContext = WhirlpoolContext;