pyth.spec.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import * as anchor from "@project-serum/anchor";
  2. import { BN, Program, web3 } from "@project-serum/anchor";
  3. import assert from "assert";
  4. import { createPriceFeed, setFeedPrice, getFeedData } from "./oracleUtils";
  5. describe("pyth-oracle", () => {
  6. anchor.setProvider(anchor.Provider.env());
  7. const program = anchor.workspace.Pyth as Program;
  8. it("initialize", async () => {
  9. const price = 50000;
  10. const priceFeedAddress = await createPriceFeed({
  11. oracleProgram: program,
  12. initPrice: price,
  13. expo: -6,
  14. });
  15. const feedData = await getFeedData(program, priceFeedAddress);
  16. assert.ok(feedData.price === price);
  17. });
  18. it("change feed price", async () => {
  19. const price = 50000;
  20. const expo = -7;
  21. const priceFeedAddress = await createPriceFeed({
  22. oracleProgram: program,
  23. initPrice: price,
  24. expo: expo,
  25. });
  26. const feedDataBefore = await getFeedData(program, priceFeedAddress);
  27. assert.ok(feedDataBefore.price === price);
  28. assert.ok(feedDataBefore.exponent === expo);
  29. const newPrice = 55000;
  30. await setFeedPrice(program, newPrice, priceFeedAddress);
  31. const feedDataAfter = await getFeedData(program, priceFeedAddress);
  32. assert.ok(feedDataAfter.price === newPrice);
  33. assert.ok(feedDataAfter.exponent === expo);
  34. });
  35. });