| 123456789101112131415161718192021222324252627 |
- module example::example {
- use pyth::pyth;
- use pyth::price::Price;
- use pyth::price_identifier;
- use aptos_framework::coin;
- /// Updates the Pyth price feeds using the given pyth_update_data, and then returns
- /// the BTC/USD price.
- ///
- /// https://github.com/pyth-network/pyth-js/tree/main/pyth-aptos-js should be used to
- /// fetch the pyth_update_data off-chain and pass it in. More information about how this
- /// works can be found at https://docs.pyth.network/consume-data
- public fun get_btc_usd_price(user: &signer, pyth_update_data: vector<vector<u8>>): Price {
- // First update the Pyth price feeds
- let coins = coin::withdraw(user, pyth::get_update_fee(&pyth_update_data));
- pyth::update_price_feeds(pyth_update_data, coins);
- // Price Feed Identifier of BTC/USD in Testnet
- let btc_price_identifier = x"f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b";
- // Now we can use the prices which we have just updated
- let btc_usd_price_id = price_identifier::from_byte_vec(btc_price_identifier);
- pyth::get_price(btc_usd_price_id)
- }
- }
|