Interactuando con Oracle en WasmVM

Descripción general

Este tutorial lo guía a través de la obtención de precios de Oracle en un entorno WasmVM en Minitia utilizando la consulta Stargate. Siguiendo este tutorial, los desarrolladores pueden entender cómo integrar y recuperar datos financieros en tiempo real dentro de sus contratos inteligentes en la cadena de bloques Minitia.

Implementación de contrato de muestra

Utilizando el repositorio wasm-slinky-query , puede obtener precios de Oracle a través de un contrato CosmWasm.

En esta sección, proporcionaremos un contrato de ejemplo y mostraremos cómo implementarlo para que pueda llamar a Stargate Query o implementarlo directamente en su contrato.

Obtenga todos los pares de divisas

Función para recuperar todos los pares de divisas disponibles en Oracle.

fn get_all_currency_pairs(&self, deps: Deps, _env: Env) -> StdResult<GetAllCurrencyPairsResponse> {
    let request = GetAllCurrencyPairsRequest { 
        special_fields: ::protobuf::SpecialFields::new()
    };
    let bytes = request.write_to_bytes().unwrap();

    let data = Binary::from(bytes);
    let request = QueryRequest::<Empty>::Stargate{path: "/slinky.oracle.v1.Query/GetAllCurrencyPairs".to_string(), data};
    let res: GetAllCurrencyPairsResponse = deps.querier.query(&request)?;
    Ok(res)
}

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[allow(non_snake_case)]
pub struct CurrencyPair {
    pub Base: String,
    pub Quote: String,
}

Obtener precio

Función para obtener el precio de un par de divisas específico. pair_idestá en un formato de {Base}/{Quote}.

Obtener precios

Función para obtener precios de múltiples pares de divisas.

Conclusión

Este contrato proporciona una base para integrar datos de Oracle en tiempo real en sus aplicaciones blockchain, aprovechando los oráculos basados ​​en Cosmos dentro de un contexto WasmVM. Es adecuado para aplicaciones financieras que requieren acceso a precios de divisas actualizados y puede ampliarse o modificarse para adaptarse a requisitos específicos o funcionalidades adicionales.

Last updated