@surec/oracle
Version:
Typescript SDK for the Sure Oracle to be used to bring off-chain data on-chain
62 lines • 2.14 kB
JavaScript
;
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