Создаем на Flow | Изучаем FCL — 7. Как запросить учетную запись Flow по адресу
EgorMajj
Posted on July 1, 2022
Краткий обзор
В предыдущем посте мы рассказали о том, как собирать информацию о блоках в сети. Сегодня мы рассмотрим, как можно запросить информацию о конкретном аккаунте с помощью функции account
.
Два наиболее распространенных варианта использования, которые вы будете изучать сегодня, это:
- получить текущий баланс аккаунта FLOW
- получить список контрактов, развернутых на аккаунте
Шаг 1 - Установка
Добавьте "@onflow/fcl": "1.0.0" в качестве зависимости
Шаг 2 - Настройка
Как и в прошлый раз импортируем необходимые методы и настраиваем FCL:
// Import methods from FCL
import { account, query, config } from "@onflow/fcl";
// Specify the API endpoint - this time we will use Mainnet
const api = "https://rest-mainnet.onflow.org";
// Configure FCL to use mainnet as the access node
config().put("accessNode.api", api);
Шаг 3 - Копирование Resolver
Всегда приятно применять ранее приобретенные знания и практику. Поэтому давайте вернем функцию resolver из урока 4, чтобы использовать ее в нашем примере:
const resolveName = async (name) => {
const cadence = `
import FIND from 0x097bafa4e0b48eef
pub fun main(name: String): Address?{
return FIND.lookupAddress(name)
}
`;
const args = (arg, t) => [arg(name, t.String)];
return await query({ cadence, args });
};
Шаг 4 - Поиск учетной записи
Давайте попробуем преобразовать identity name flovatar
и изучим, что оно нам предлагает 😊.
Как всегда, мы будем использовать наш блок IIFE:
// We will use IIFE to execute our code right away
(async () => {
console.clear();
const address = await resolveName("flovatar")
// it's possible that name will be resolved to "null"
// so let's add some basic protection here
if (address){
const accountInfo = await account(address);
console.log({ accountInfo });
}
})();
После того как все разрешилось, вы должны увидеть в консоли следующее:
{
address: "921ea449dffec68a",
balance: 13052726819120,
code: "",
contracts: Object,
keys: Array(2),
}
Эти 5 строк соответственно:
-
address
- адрес аккаунта (обратите внимание на отсутствие префикса0x
, если вы захотите использовать его в будущем) -
balance
- количество токенов FLOW в формате UFix64. Разделите наMath.pow(10,8)
, чтобы получить фиксированное значение -
code
- это устаревшее значение, которое ранее использовалось для хранения кода контракта, развернутого на аккаунте. Раньше можно было хранить только один контракт для каждого аккаунта. -
contracts
- объект, представляющий развернутые контракты. Ключи - это название контракта, а значения - Cadence-код уважаемого контракта. -
keys
- набор ключей, привязанных к аккаунту
Более подробную информацию о них вы можете найти на сайте Flow Docs - https://docs.onflow.org/fcl/reference/api/#blockobject.
Другие способы изучения аккаунта
Существуют способы изучения конкретного аккаунта:
- Flow View Source - https://flow-view-source.com/mainnet/account/0x5916e847260714b6 - сообщество проекта OG из FCL - James Hunter - https://github.com/orodio.
- FlowScan - https://flowscan.org/account/0x5916e847260714b6 - страница Flowscan будет показывать больше информации о транзакциях и переводах по аккануту, так как они обрабатывают блоки для накопления этой информации.
До следующего раза 👋
Информационные ресурсы
Полный исходный код
— https://codesandbox.io/s/dev-to-fcl-07-get-account-j9rxkm?file=/src/index.js(ENG) | Документация Flow - https://docs.onflow.org/ - более детальная информации о блокчейне Flow и как взаимодействовать с ним
(ENG) | Flow Portal - https://flow.com/ - your entry point to Flow
(ENG) | FCL JS - https://github.com/onflow/fcl-js - Исходный код и возможность поучаствовать в разработке библиотеки FCL JS library
(ENG) | Cadence - https://github.com/onflow/fcl-js - Введение в язык программирования Cadence
Codesandbox - https://codesandbox.io - Замечательная среда разработки и прототипирования прямо в вашем браузере
Posted on July 1, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.