63 lines
1.7 KiB
TypeScript
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);
|
|
});
|