JSPM

@switchboard-xyz/switchboard-v2

0.0.174
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 487
    • Score
      100M100P100Q25139F
    • License MIT

    API wrapper for intergating with the Switchboardv2 program

    Package Exports

    • @switchboard-xyz/switchboard-v2
    • @switchboard-xyz/switchboard-v2/package.json

    Readme

    Switchboard-v2 API module

    GitHub   npm   twitter  

    A library of utility functions to interact with the Switchboardv2 program

    Install

    npm i @switchboard-xyz/switchboard-v2

    Creating Feeds

    import * as anchor from "@project-serum/anchor";
    import { clusterApiUrl, Connection, Keypair, PublicKey } from "@solana/web3.js";
    import {
      AggregatorAccount,
      OracleQueueAccount,
      loadSwitchboardProgram,
    } from "@switchboard-xyz/switchboard-v2";
    
    const payerKeypair = Keypair.fromSecretKey(
      JSON.parse(fs.readFileSync("../keypair-path.json", "utf-8"))
    );
    const program = await loadSwitchboardProgram(
      "devnet",
      new Connection(clusterApiUrl("devnet")),
      payerKeypair
    );
    const queueAccount = new OracleQueueAccount({
      program: program,
      // devnet permissionless queue
      publicKey: new PublicKey("F8ce7MsckeZAbAGmxjJNetxYXQa9mKr9nnrC3qKubyYy"),
    });
    
    const aggregatorAccount = await AggregatorAccount.create(program, {
      name: Buffer.from("FeedName"),
      batchSize: 6,
      minRequiredJobResults: 1,
      minRequiredOracleResults: 1,
      minUpdateDelaySeconds: 30,
      queueAccount,
    });

    Updating Feeds

    import * as anchor from "@project-serum/anchor";
    import {
      AggregatorAccount,
      OracleQueueAccount,
    } from "@switchboard-xyz/switchboard-v2";
    
    const program: anchor.Program;
    const queueAccount: OracleQueueAccount;
    
    await aggregatorAccount.openRound({
      oracleQueueAccount: queueAccount,
      payoutWallet: tokenAccount,
    });

    Reading Feeds

    import { AggregatorAccount } from "@switchboard-xyz/switchboard-v2";
    import { Big } from "big.js";
    
    const aggregatorAccount: AggregatorAccount;
    const result: Big = await aggregatorAccount.getLatestValue();
    
    console.log(result.toNumber());