Как получить данные хранилища смарт-контрактов?
3 ответ
- голосов
-
- 2019-05-06
Я нашел решение!
Для меня это:
function httpGet() { let xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", 'https://alphanet-node.tzscan.io/chains/main/blocks/head/context/contracts/<CONTRACT_ADDRESS>/storage', false ); // false for synchronous request xmlHttp.send( null ); return JSON.parse(xmlHttp.responseText) }
Он возвращает объект JSON с данными хранилища.
I found the solution!
For me it:
function httpGet() { let xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", 'https://alphanet-node.tzscan.io/chains/main/blocks/head/context/contracts/<CONTRACT_ADDRESS>/storage', false ); // false for synchronous request xmlHttp.send( null ); return JSON.parse(xmlHttp.responseText) }
It returns JSON object with storage data.
-
- 2020-03-15
Tzscan присоединился к сети Dune,и API-интерфейсы могут сильно измениться,что приведет к поломке вашего приложения. Почему бы не использовать Taquito?Это просто и элегантно,и пакет,поставляемый вместе с вашим приложением,не сломается,если будет обновление.
import { Tezos } from "@taquito/taquito"; [...] Tezos.setProvider({...}); const contract = await Tezos.contract.at(contractAddress) const storage = await contract.storage();
И все,помимо легкого доступа к хранилищу,вы также можете искать ключи/значения на своих картах/больших картах :)
Tzscan has joined the Dune network and APIs can change quite dramatically, which will break your app. Why not using Taquito? It is simple and elegant and the package being bundled with your app, it won't break if there is an update.
import { Tezos } from "@taquito/taquito"; [...] Tezos.setProvider({...}); const contract = await Tezos.contract.at(contractAddress) const storage = await contract.storage();
And that's it, in addition of having an easy access to the storage, you can also search your Maps/BigMaps for keys/values :)
-
- 2020-03-30
Вы можете использовать функциюeztz,поскольку она сработала для меня,
storage = await eztz.contract.storage(contractAddress);
Вывод будет в формате JSON,вы можете преобразовать вывод как,
JSON.stringify(storage);
Надеюсь,это вам поможет.Удачи ...
You can use eztz function as that worked for me,
storage = await eztz.contract.storage(contractAddress);
The output will be in JSON format, you can stringify the output as,
JSON.stringify(storage);
Hope that will help you. Good luck...
Я пытаюсь получить данные хранилища смарт-контрактов:
Но возникла ошибка:
TypeError: contract.storage is not a function
Также я пытался найти метод API для этого наtzscan.
Есть идеи для получения данных хранилища?
Заранее благодарим за помощь