
SupraOracles to nowatorskie, wysokoprzepustowe rozwiązanie Oracle i IntraLayer: pionowo zintegrowany zestaw narzędzi do rozwiązywania międzyłańcuchowego (wyrocznia danych, mosty zasobów, sieć automatyzacji i inne), które łączą wszystkie łańcuchy bloków, publiczne (L1 i L2) lub prywatne (przedsiębiorstwa).
Integracja z Cenami SupraOracle jest szybka i łatwa. SupraOracles obsługuje obecnie kilka sieci opartych na Solidity/EVM, takich jak Shardeum, oraz sieci innych niż EVM, takie jak Sui, Aptos.
Aby zobaczyć wszystkie sieci, w których działa SupraOracles, odwiedź stronę SupraOracles' Networks!
Aby rozpocząć, odwiedź stronę dokumentacji SupraOracle i przejrzyj dokumentację lub postępuj zgodnie z tym przewodnikiem, aby szybko rozpocząć.
Dodaj następujący kod do inteligentnej umowy solidity, którą chcesz pobrać wartość S.
Solidność
interface ISupraSValueFeed {
function checkPrice(string memory marketPair) external view returns (int256 price, uint256 timestamp);
}
Spowoduje to utworzenie interfejsu, który później zastosujesz, aby pobrać cenę od SupraOracles.
Aby pobrać wartość S z inteligentnego kontraktu SupraOracles, należy najpierw znaleźć adres kanału danych S-Value dla wybranego łańcucha.
W przypadku Shardeum Liberty 2.X i 1.X AlphaNet adres to 0x700a89Ba8F908af38834B9Aba238b362CFfB665F
Gdy masz właściwy adres, utwórz instancję S-Value Feed, korzystając z interfejsu, który wcześniej zdefiniowaliśmy dla Shardeum Liberty 2.X lub 1.X AlphaNet:
Solidność
contract ISupraSValueFeedExample {
ISupraSValueFeed internal sValueFeed;
constructor() {
sValueFeed = ISupraSValueFeed(0x700a89Ba8F908af38834B9Aba238b362CFfB665F);
}
}
Teraz możesz po prostu uzyskać dostęp do ceny kryptowaluty o wartości S naszych obsługiwanych par rynkowych. W tym kroku uzyskamy cenę ETH / USDT (eth_usdt), stosując następujący kod do naszego Smart Contract.
Solidność
function getEthUsdtPrice() external view returns (int) {
(
int price,
/* uint timestamp */
) = sValueFeed.checkPrice("eth_usdt");
return price;
}
Oto przykład tego, jak powinna wyglądać Twoja implementacja:
Solidność
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
interface ISupraSValueFeed {
function checkPrice(string memory marketPair) external view returns (int256 price, uint256 timestamp);
}
contract ISupraSValueFeedExample {
ISupraSValueFeed internal sValueFeed;
constructor() {
sValueFeed = ISupraSValueFeed(0x700a89Ba8F908af38834B9Aba238b362CFfB665F);
}
function getEthUsdtPrice() external view returns (int) {
(
int price,
/* uint timestamp */
) = sValueFeed.checkPrice("eth_usdt");
return price;
}
}
Tada! You now have a method in your Smart Contract that you can call at any time to retrieve the price of ETH in USDT!
Javascript
// example assumes that the ethers library has been imported and is accessible within your scope
const getEthUsdtPrice = async () => {
const provider = new ethers.providers.JsonRpcProvider('https://data-seed-prebsc-1-s1.binance.org:8545/')
const abi = [{ "inputs": [ { "internalType": "string", "name": "marketPair", "type": "string" } ], "name": "checkPrice", "outputs": [ { "internalType": "int256", "name": "price", "type": "int256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
const address = '0x700a89Ba8F908af38834B9Aba238b362CFfB665F'
const sValueFeed = new ethers.Contract(address, abi, provider)
const price = (await sValueFeed.checkPrice('eth_usdt')).price
console.log(`The price is: ${price.toString()}`)
}
getEthUsdtPrice()
Jeśli chcesz zrobić kolejny krok, rozważ zarejestrowanie się w programie Supra Network Activate Program (SNAP).
Program Supra Network Activate Program (SNAP) oferuje firmom zniżki na kredyty Oracle, dokumentację techniczną i obsługę klienta w celu osadzenia bardzo potrzebnych wyroczni i VRF/RNG. SNAP obsługuje skalowanie i wzrost Web3 w celu buforowania kosztów, które zazwyczaj mogą hamować sukces firmy.
Program SNAP współpracuje z jednymi z najbardziej płodnych nazwisk Web3, które pomagają w wyborze i kwalifikacji projektów.
