Usa Oráculos en tus Aplicaciones Aptos
Esta guía de referencia presenta varios Oráculos que puedes utilizar al construir en Aptos. Los oráculos suministran datos offchain a la blockchain, permitiendo que los contratos inteligentes accedan a una amplia gama de información.
Pyth Network
Sección titulada «Pyth Network»La Pyth Network es una de las redes de oráculos de primera parte más grandes, entregando datos en tiempo real a través de una gran cantidad de cadenas.
La red está compuesta por algunos de los mayores exchanges, creadores de mercado y proveedores de servicios financieros del mundo. Estos publican datos propietarios on-chain para su agregación y distribución a aplicaciones de contratos inteligentes.
Cómo Usar Datos en Tiempo Real de Pyth en Contratos Aptos
Sección titulada «Cómo Usar Datos en Tiempo Real de Pyth en Contratos Aptos»Esta guía explica cómo usar datos en tiempo real de Pyth en aplicaciones Aptos.
Configurando el archivo Move.toml
Sección titulada «Configurando el archivo Move.toml»Agrega el contrato de Pyth a las dependencias de tu proyecto en el archivo Move.toml
:
[dependencies]Pyth = { git = "https://github.com/pyth-network/pyth-crosschain.git", subdir = "target_chains/aptos/contracts", rev = "main" }
Las direcciones nombradas de pyth
, wormhole
y deployers
deben definirse en tiempo de compilación. Estas direcciones se usan para interactuar con el contrato de Pyth en Aptos.
[addresses]pyth = "0x7e783b349d3e89cf5931af376ebeadbfab855b3fa239b7ada8f5a92fbea6b387"deployer = "0xb31e712b26fd295357355f6845e77c888298636609e93bc9b05f0f604049f434"wormhole = "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625"
Consulta Direcciones de Contrato de Aptos para la lista completa de direcciones de contrato en diferentes redes de Aptos.
Escribir Código de Contrato
Sección titulada «Escribir Código de Contrato»El fragmento de código a continuación proporciona un módulo de ejemplo que obtiene el precio BTC/USD de los feeds de precios de Pyth:
module example::example { use pyth::pyth; use pyth::price::Price; use pyth::price_identifier; use aptos_framework::coin;
// Agrega el argumento pyth_price_update a cualquier método en tu contrato que necesite leer el precio de Pyth. // Consulta https://docs.pyth.network/price-feeds/fetch-price-updates para más información sobre cómo obtener el pyth_price_update. public fun get_btc_usd_price(user: &signer, pyth_price_update: vector<vector<u8>>): Price {
// Primero actualiza los feeds de precios de Pyth let coins = coin::withdraw(user, pyth::get_update_fee(&pyth_price_update)); pyth::update_price_feeds(pyth_price_update, coins);
// Lee el precio actual de un feed de precios. // Cada feed de precios (ej., BTC/USD) se identifica por un ID de feed de precios. // La lista completa de IDs de feed está disponible en https://pyth.network/developers/price-feed-ids // Nota: Aptos usa el ID de feed de precios de Pyth sin el prefijo `0x`. let btc_price_identifier = x"e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"; let btc_usd_price_id = price_identifier::from_byte_vec(btc_price_identifier); pyth::get_price(btc_usd_price_id) }}
El fragmento de código anterior hace las siguientes cosas:
- Llama
pyth::get_update_fee
para obtener la tarifa requerida para actualizar los feeds de precios de Pyth. - Llama
pyth::update_price_feeds
y pasapyth_price_update
para actualizar los feeds de precios de Pyth. - Llama
pyth::get_price
para leer el precio actual, proporcionando el ID de feed de precios que deseas leer.
Recursos Adicionales
Sección titulada «Recursos Adicionales»Puedes encontrar estos recursos adicionales útiles para desarrollar tu aplicación Aptos.
Feeds Patrocinados en Aptos
Sección titulada «Feeds Patrocinados en Aptos»Los feeds de precios listados en la tabla a continuación están actualmente patrocinados en Aptos mainnet.
Parámetros de Actualización: 1 segundo de heartbeat o 0.5% de desviación de precio
Nombre | ID de Feed de Precios |
---|---|
APT/USD | 03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5 |
BTC/USD | e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43 |
ETH/USD | ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace |
SOL/USD | ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d |
USDC/USD | eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a |
USDT/USD | 2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b |
CAKE/USD | 2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9 |
SUI/USD | 23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744 |
CETUS/USD | e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef |
BNB/USD | 2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f |
WBTC/USD | c9d8b075a5c69303365ae23633d4e085199bf5c520a3b90fed1322a0342ffc33 |
THL/USD | 74e3fbb0d33e0ed8c0078b56134dcebdae38852f0858a8ea4de4c5ea7474bd42 |
USDY/USD | e393449f6aff8a4b6d3e1165a7c9ebec103685f3b41e60db4277b5b6d10e7326 |
WETH/USD | 9d4294bbcd1174d6f2003ec365831e64cc31d9f6f15a2b85399db8d5000960f6 |
THAPT/USD | b29276972267db5d64ae718fb7f107ad9e72a79cabf9992f0e9bc75ad451a7f6 |
EZETH/USD | 06c217a791f5c4f988b36629af4cb88fad827b2485400a358f3b02886b54de92 |
WEETH/USD | 9ee4e7c60b940440a261eb54b6d8149c23b580ed7da3139f7f08f4ea29dad395 |
USDM/USD | a6a0dfa49b6b3a93510658245618099f5e842514970f596cf64fad9e0d658193 |
STONE/USD | 4dcc2fb96fb89a802ef9712f6bd2246d3607cf95ca5540cb24490d37003f8c46 |
Para más detalles sobre feeds patrocinados, consulta aquí
Referencia de API
Sección titulada «Referencia de API»La referencia de API de Aptos te permite explorar interactivamente la API completa del contrato de Pyth.
Aplicaciones de Ejemplo
Sección titulada «Aplicaciones de Ejemplo»- Contrato on-chain mínimo, que actualiza y devuelve el precio BTC/USD de los feeds de precios de Pyth.
- Acuñar NFT que usa feeds de precios de Pyth para acuñar un NFT.