UNPKG

@surec/oracle

Version:

Typescript SDK for the Sure Oracle to be used to bring off-chain data on-chain

62 lines 2.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SureOracleSDK = exports.Provider = void 0; const tslib_1 = require("tslib"); const anchor = tslib_1.__importStar(require("@project-serum/anchor")); const solanaContrib = tslib_1.__importStar(require("@saberhq/solana-contrib")); const oracle_js_1 = require("./idls/oracle.js"); const proposal_js_1 = require("./proposal.js"); const vote_js_1 = require("./vote.js"); const pda_js_1 = require("./pda.js"); const constants_js_1 = require("./constants.js"); const config_js_1 = require("./config.js"); // checkpoint : generate oracle idl and use it in sdk class Provider { constructor(connection, wallet, opts) { this.connection = connection; this.wallet = wallet; this.opts = opts; } static init({ connection, wallet, opts }) { return new Provider(connection, wallet, opts); } } exports.Provider = Provider; class SureOracleSDK { constructor(provider, program, pda) { this.provider = provider; this.program = program; this.pda = pda; } static init({ connection, wallet, opts, }) { const oracleProvider = solanaContrib.SolanaProvider.init({ connection, wallet: wallet, opts, }); const anchorProvider = new anchor.AnchorProvider(connection, wallet, { skipPreflight: true, }); // get anchorprogram properly const program = new anchor.Program(oracle_js_1.IDL, constants_js_1.SURE_ADDRESSES.Oracle, anchorProvider); const pda = new pda_js_1.PDA(); return new SureOracleSDK(new solanaContrib.SolanaAugmentedProvider(oracleProvider), program, pda); } static pda() { return new pda_js_1.PDA(); } config() { return new config_js_1.Config(this); } proposal() { return new proposal_js_1.Proposal(this); } vote() { return new vote_js_1.Vote(this); } executeTransactionInstructions(tx) { return this.provider.newTX(tx); } } exports.SureOracleSDK = SureOracleSDK; //# sourceMappingURL=sdk.js.map