sbv2-solana/examples/functions/01_basic_oracle/scripts/fnCreate.ts

63 lines
1.7 KiB
TypeScript

import type { BasicOracle } from "../target/types/basic_oracle";
import * as anchor from "@coral-xyz/anchor";
import { Connection, PublicKey } from "@solana/web3.js";
import * as sb from "@switchboard-xyz/solana.js";
const rpcUrl =
"https://api.devnet.solana.com";
const kp = sb.loadKeypair(
"~/switchboard_environments_v2/devnet/upgrade_authority/upgrade_authority.json"
);
const DEFAULT_DEVNET_QUEUE = "CkvizjVnm2zA5Wuwan34NhVT3zFc7vqUyGnA6tuEF5aE";
const DEFAULT_MAINNET_QUEUE = "2ie3JZfKcvsRLsJaP5fSo43gUo1vsurnUAtAgUdUAiDG";
async function main() {
const con = new Connection(rpcUrl);
const switchboardProgram = await sb.SwitchboardProgram.load(
"mainnet-beta",
con,
kp
);
const attestationProgram = await sb.SwitchboardProgram.loadAnchorProgram(
"mainnet-beta",
con,
kp,
switchboardProgram.attestationProgramId
);
console.log(`ProgramID: ${switchboardProgram}`);
const recentSlot = (
await con.getLatestBlockhashAndContext({
commitment: "finalized",
})
).context.slot;
console.log(recentSlot);
const [fn, tx] = await sb.FunctionAccount.create(switchboardProgram, {
container: "t1",
recentSlot: recentSlot,
attestationQueue: new sb.AttestationQueueAccount(
switchboardProgram,
new PublicKey(DEFAULT_DEVNET_QUEUE)
),
mrEnclave: Buffer.from(
"63ba8df478b4a74795a79a73b8f0a6f792f88e95f9ed6202289091e6e1b65fa1",
"hex"
),
requestsDisabled: false,
requestsRequireAuthorization: false,
requestsDefaultSlotsUntilExpiration: new anchor.BN("0"),
requestsFee: 0,
});
// console.log("Your transaction signature", tx);
console.log("Your transaction signature", tx);
}
main().catch((err) => {
console.error(err);
process.exit(1);
});