Создаем на Flow | Изучаем FCL — 7. Как запросить учетную запись Flow по адресу
Published: 2022-07-01 16:10:57

## Краткий обзор
[В предыдущем посте](https://dev.to/egormajj/sozdaiem-na-flow-izuchaiem-fcl-6-kak-zaprosit-posliednii-blok-v-sieti-3105) мы рассказали о том, как собирать информацию о блоках в сети. Сегодня мы рассмотрим, как можно запросить информацию о конкретном аккаунте с помощью функции `account`.

Два наиболее распространенных варианта использования, которые вы будете изучать сегодня, это:

- получить текущий баланс аккаунта FLOW
- получить список контрактов, развернутых на аккаунте

## Шаг 1 - Установка
Добавьте "@onflow/fcl": "1.0.0" в качестве зависимости

## Шаг 2 - Настройка
Как и в прошлый раз импортируем необходимые методы и настраиваем FCL:

```javascript
// 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](https://dev.to/egormajj/sozdaiem-na-flow-izuchaiem-fcl-4-kak-prieobrazovat-find-identity-name-v-adries-4595), чтобы использовать ее в нашем примере:

```javascript
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:

```javascript
// 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 });
    }
})();
```
После того как все разрешилось, вы должны увидеть в консоли следующее:

```javascript
{
    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.](https://docs.onflow.org/fcl/reference/api/#blockobject.)

## Другие способы изучения аккаунта
Существуют способы изучения конкретного аккаунта:

- **Flow View Source** - [https://flow-view-source.com/mainnet/account/0x5916e847260714b6](https://flow-view-source.com/mainnet/account/0x5916e847260714b6) - сообщество проекта OG из FCL - James Hunter - [https://github.com/orodio](https://github.com/orodio).
- **FlowScan** - [https://flowscan.org/account/0x5916e847260714b6](https://flowscan.org/account/0x5916e847260714b6) - страница Flowscan будет показывать больше информации о транзакциях и переводах по аккануту, так как они обрабатывают блоки для накопления этой информации.

До следующего раза 👋

## Информационные ресурсы

- **Полный исходный код**
 — [https://codesandbox.io/s/dev-to-fcl-07-get-account-j9rxkm?file=/src/index.js](https://codesandbox.io/s/dev-to-fcl-07-get-account-j9rxkm?file=/src/index.js)


- **(ENG) | Документация Flow** - [https://docs.onflow.org/](https://docs.onflow.org/) - более детальная информации о блокчейне Flow и как взаимодействовать с ним
- **(ENG) | Flow Portal** - [https://flow.com/](https://flow.com/) - your entry point to Flow
- **(ENG) | FCL JS** - [https://github.com/onflow/fcl-js](https://github.com/onflow/fcl-js) - Исходный код и возможность поучаствовать в разработке библиотеки FCL JS library
- **(ENG) | Cadence** - [https://github.com/onflow/fcl-js](https://docs.onflow.org/cadence/) - Введение в язык программирования Cadence
- **Codesandbox** - [https://codesandbox.io](https://codesandbox.io) - Замечательная среда разработки и прототипирования прямо в вашем браузере