Создаем на Flow | Изучение FCL 1 — Введение
Tags: javascript, tutorial, blockchain, onflow
Published: 2022-08-22 16:59:00

## Краткий обзор
После работы с кодом в этом посте вы должны знать, как:

- передать простые аргументы - `Int`, `Strin`g и т. д.
- передавать сложные аргументы - `Arrays` и `Dictionaries`
- передавать сложные структуры - массивы словарей и т.п.
💡 Учиться лучше с видео? К счастью для вас, есть видео, которому вы можете следовать вместе с этим руководством. Рассказывает один-единственный защитник разработчиков Flow [Кимкодашян](https://twitter.com/kimcodeashian) !

Kimazing Контент
https://youtu.be/DWz8Plv5n3k
Что такое FCL?
Клиентская библиотека Flow (FCL) — это стандартизированный набор шаблонов связи между кошельками, приложениями и пользователями, который используется для выполнения самых разных действий вашего децентрализованного приложения. Различные языки имеют свои собственные реализации концепции и стандарта FCL.

Что касается Javascript, это пакет NPM, используемый для взаимодействия с пользовательскими кошельками и блокчейном Flow как в браузерной, так и в серверной среде.

Подождите, что такое блокчейн Flow?
Хорошо, что вы спросили! Flow — это блокчейн, созданный для следующего поколения приложений, игр и цифровых активов, на которых они основаны.

Существует множество различных функций, которые делают Flow уникальным. Вот некоторые из них:

- **Cadence**  — новый простой в освоении ресурсно-ориентированный язык программирования, разработанный для dApps и цифровых активов.
- **Обновляемые смарт-контракты**  . Безопасное и прозрачное исправление ошибок и обновление заранее определенных частей смарт-контракта.
- **Быстрая и детерминированная завершенность**  — Flow построен так, чтобы быть быстрым и отзывчивым — достижение глобальной окончательности в течение нескольких секунд

Дополнительную информацию о Flow Blockchain можно найти на  https://flow.com  и  https://docs.onflow.org/.

## Простой пример
В следующих постах мы продемонстрируем более сложные и значимые примеры, а пока давайте попробуем заставить Flow Testnet возвращать нам конкретное число (пожалуйста, потерпите, дальше будет гораздо интереснее 😄)

Мы будем использовать платформу Codesandbox (https://codesandbox.io), чтобы было проще поделиться окончательным решением, в то же время позволяя вам форкнуть Sandbox и попробовать свои собственные идеи.

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

## Шаг 2 — Импорт
FCL JS предоставляет несколько методов из пакета — для «создания» взаимодействий, настройки FCL, взаимодействия с сетью и т. д. Мы импортируем:

- `query` ( https://docs.onflow.org/fcl/reference/api/#query)
- `config`(https://docs.onflow.org/fcl/reference/api/#common-configuration-keys ) методы

```javascript
import { query, config } from "@onflow/fcl";
```

## Шаг 3. Настройка FCL
FCL необходимо знать, куда отправить этот сценарий для выполнения. Следующая строка установит конечную точку узла доступа с помощью `config` метода:

```javascript
const api = "https://rest-testnet.onflow.org"
config().put("accessNode.api", api);

```

## Шаг 4. Выполните скрипт в тестовой сети.
Чтобы выполнить скрипт Cadence на блокчейне Flow, мы можем отправить его с помощью  `query` метода. Наш базовый случай не использует никаких аргументов, поэтому мы будем передавать только одно поле в этом аргументе:

```javascript
  const cadence = `
    pub fun main(): Int{
      return 42
    }
  `;
  const theAnswer = await query({ cadence });
  console.log({ theAnswer });
```

## Наконец - полный код

```javascript
import { query, config } from "@onflow/fcl";

const api = "https://rest-testnet.onflow.org"
config().put("accessNode.api", api);

// We will use IIFE to execute our code right away
(async () => {
  console.clear();

  const cadence = `
    pub fun main(): Int{
      return 42
    }
  `;

  const theAnswer = await query({ cadence });
  console.log({ theAnswer });
})();

```
В следующем посте мы расскажем, как передавать аргументы в ваши скрипты. Следите за обновлениями! 👋

Полная песочница доступна здесь: [Codesandbox | Узнайте FCL - 01. Введение](https://codesandbox.io/s/dev-to-fcl-01-introduction-zbhz0v)

## Ссылка и источники

- **Сайт Flow Docs**  —  https://docs.onflow.org/  — более подробная информация о блокчейне Flow и о том, как с ним взаимодействовать.
- **Портал Flow**  —  https://flow.com/  — ваша точка входа в Flow
- **FCL JS**  —  https://github.com/onflow/fcl-js  — Исходный код и возможность внести свой вклад в библиотеку FCL JS
- **Cadence** — https://docs.onflow.org/cadence/ — Введение в Cadence
- **Codesandbox**  —  https://codesandbox.io  — потрясающая IDE для браузера, позволяющая быстро создавать прототипы.