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. })