2.2.5 • Published 8 months ago

@switchboard-xyz/near.js v2.2.5

Weekly downloads
-
License
ISC
Repository
github
Last release
8 months ago

Switchboard Logo

@switchboard-xyz/near.js

A Typescript client to interact with Switchboard on NEAR.

NPM Badge

Install

npm i --save @switchboard-xyz/near.js

Usage

Directory

Load Switchboard Program

import { SwitchboardProgram } from "@switchboard-xyz/near.js";

// from filesystem keypair
const program = await SwitchboardProgram.loadFromFs(
  "testnet", // Network ID
  "https://rpc.testnet.near.org", // RPC URL
  accountId // Near Account name
);
// from browser
const program = await SwitchboardProgram.loadFromBrowser(
  "testnet", // Network ID
  "https://rpc.testnet.near.org", // RPC URL
  accountId // Near Account name
);

Create a Queue

import { QueueAccount } from "@switchboard-xyz/near.js";

const queue = await QueueAccount.create(program, {
  authority: program.account.accountId,
  mint: "wrap.test",
  reward: 0,
  minStake: 100,
  queueSize: 100,
  oracleTimeout: 180,
  unpermissionedFeeds: true,
});
console.log(await queue.loadData());

Create a Data Feed

import { AggregatorAccount } from "@switchboard-xyz/near.js";

const aggregator = await AggregatorAccount.create(program, {
  authority: program.account.accountId,
  queue: queue.address,
  name: Buffer.from(""),
  metadata: Buffer.from(""),
  batchSize: 1,
  minOracleResults: 1,
  minJobResults: 1,
  minUpdateDelaySeconds: 5,
  startAfter: 0,
  varianceThreshold: sbv2.SwitchboardDecimal.fromBig(new Big(0)),
  forceReportPeriod: 0,
  crank: crank.address,
  rewardEscrow: escrow.address,
  historyLimit: 1000,
});
console.log(await aggregator.loadData());

Create a Job

import { JobAccount } from "@switchboard-xyz/near.js";

const job = await JobAccount.create(program, {
  data: Buffer.from(OracleJob.encodeDelimited(oracleJob).finish()),
  name: Buffer.from("Job1"),
  metadata: Buffer.from("Job1 - FtxUS BTC/USD"),
});
console.log(await job.loadData());

Add Job to Data Feed

await aggregator.addJob({
  job: job.address,
  weight: 1,
});

Create Feed Permissions

import { PermissionAccount } from "@switchboard-xyz/near.js";

const permission = await PermissionAccount.create(program, {
  authority: program.account.accountId,
  granter: queue.address,
  grantee: aggregator.address,
});

Set Feed Permissions

await permission.set({
  permission: SwitchboardPermission.PERMIT_ORACLE_QUEUE_USAGE,
  enable: true,
});

Add Feed to Crank

import { CrankAccount } from "@switchboard-xyz/near.js";

const crank = new CrankAccount({ program, address: crankAddress });
await crank.push({
  aggregator: aggregatorAccount.address,
});

Request a Feed Update

import { EscrowAccount } from "@switchboard-xyz/near.js";

const escrowAccount = await EscrowAccount.getOrCreateStaticAccount(program);
await aggregatorAccount.openRound({
  rewardRecipient: escrowAccount.address,
});
2.2.5

8 months ago

2.2.4

12 months ago

2.0.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

2.2.3

1 year ago

2.2.2

1 year ago

2.1.2

1 year ago

2.1.0

1 year ago

2.0.77

1 year ago

2.0.77-beta.0

1 year ago

2.0.75-beta

1 year ago

2.0.75

1 year ago

2.0.76

1 year ago

2.0.75-beta-4

1 year ago

2.0.75-beta-2

1 year ago

2.0.75-beta-3

1 year ago

2.0.75-beta-0

1 year ago

2.0.75-beta-1

1 year ago

2.0.28

2 years ago

2.0.29

2 years ago

2.0.37

2 years ago

2.0.38

2 years ago

2.0.35

2 years ago

2.0.36

2 years ago

2.0.33

2 years ago

2.0.34

2 years ago

2.0.31

2 years ago

2.0.32

2 years ago

2.0.30

2 years ago

2.0.39

2 years ago

2.0.48

2 years ago

2.0.49

2 years ago

2.0.46

2 years ago

2.0.47

2 years ago

2.0.44

2 years ago

2.0.45

2 years ago

2.0.42

2 years ago

2.0.43

2 years ago

2.0.40

2 years ago

2.0.41

2 years ago

2.0.59

2 years ago

2.0.57

2 years ago

2.0.58

2 years ago

2.0.55

2 years ago

2.0.56

2 years ago

2.0.53

2 years ago

2.0.54

2 years ago

2.0.51

2 years ago

2.0.52

2 years ago

2.0.50

2 years ago

2.0.68

2 years ago

2.0.69

2 years ago

2.0.66

2 years ago

2.0.67

2 years ago

2.0.64

2 years ago

2.0.65

2 years ago

2.0.62

2 years ago

2.0.63

2 years ago

2.0.60

2 years ago

2.0.61

2 years ago

2.0.73

2 years ago

2.0.74

2 years ago

2.0.71

2 years ago

2.0.72

2 years ago

2.0.70

2 years ago

2.0.19

2 years ago

2.0.26

2 years ago

2.0.27

2 years ago

2.0.24

2 years ago

2.0.25

2 years ago

2.0.22

2 years ago

2.0.23

2 years ago

2.0.20

2 years ago

2.0.21

2 years ago

2.0.18

2 years ago

2.0.17

2 years ago

2.0.16

2 years ago

2.0.15

2 years ago

2.0.14

2 years ago

2.0.13

2 years ago

2.0.12

2 years ago

2.0.12-beta.8

2 years ago

2.0.12-beta.7

2 years ago

2.0.12-beta.6

2 years ago

2.0.12-beta.5

2 years ago

2.0.12-beta.4

2 years ago

2.0.12-beta.3

2 years ago

2.0.12-beta.2

2 years ago

2.0.12-beta.1

2 years ago

2.0.12-beta.0

2 years ago

2.0.11

2 years ago

2.0.11-beta.0

2 years ago

2.0.10

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.2-beta.10

2 years ago

2.0.2-beta.9

2 years ago

2.0.2-beta.8

2 years ago

2.0.2-beta.7

2 years ago

2.0.2-beta.6

2 years ago

2.0.2-beta.5

2 years ago

2.0.2-beta.4

2 years ago

2.0.2-beta.3

2 years ago

2.0.2-beta.2

2 years ago

2.0.2-beta.1

2 years ago

2.0.2-beta.0

2 years ago

2.0.1

2 years ago

2.0.1-beta.9

2 years ago

2.0.1-beta.8

2 years ago

2.0.1-beta.7

2 years ago

2.0.1-beta.6

2 years ago

2.0.1-beta.5

2 years ago

2.0.1-beta.4

2 years ago

2.0.1-beta.3

2 years ago

2.0.1-beta.2

2 years ago

2.0.1-beta.1

2 years ago

2.0.0-beta.1

2 years ago

2.0.0-beta.0

2 years ago