@renec-foundation/redex-sdk
Version:
Typescript SDK to interact with Orca's Whirlpool program.
37 lines (36 loc) • 1.89 kB
JavaScript
;
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;