Создание простого контракта с мультиподписью с помощью fift
Эта информация очень низкого уровня. Может быть сложной для понимания новичками и предназначена для продвинутых пользователей, которые хотят понять работу fift. Использование fift не требуется в повседневных задачах.
💡 Общие сведения
Это руководство поможет вам узнать, как использовать ваш контракт с мультиподписью. Напомним, что (n, k)-контракт с мультиподписью – это мультиподписной кошелек с n держателями закрытых ключей, который принимает запросы на отправку сообщений, если запрос, заявка, собирает не менее k подписей держателей.
На основе оригинального кода контракта мультиподписи и обновлений от akifoq:
- оригинальный multisig-code.fc блокчейна TON
- akifoq/multisig с fift библиотекой для работы с мультиподписью.
Для тех, кто впервые работает с мультиподписью: Что такое технология мультиподписи? (видео)
📖 Чему вы научитесь
- Как создать и настроить простой кошелек с мультиподписью.
- Как развернуть кошелек с мультиподписью с помощью lite-client.
- Как подписать запрос и отправить его в сообщении в блокчейн.
⚙ Настройте свое окружение
Прежде чем мы начнем наше путешествие, проверьте и подготовьте ваше окружение.
- Установите двоичные файлы
func
,fift
,lite-client
иfiftlib
из раздела установки. - Клонируйте репозиторий и откройте каталог в CLI.
git clone https://github.com/akifoq/multisig.git
cd ~/multisig
🚀 Давайте начнем!
- Скомпилируйте код в fift.
- Подготовьте ключи для владельцев мультиподписи.
- Разверните контракт.
- Взаимодействуйте с развернутым кошельком с мультиподписью в блокчейне.
Скомпилируйте контракт
Скомпилируйте контракт в Fift с помощью:
func -o multisig-code.fif -SPA stdlib.fc multisig-code.fc
Подготовьте ключи владельцев мультиподписи
Создайте ключи участников
Чтобы создать ключ, вам нужно запустить:
fift -s new-key.fif $KEY_NAME$
- Где
KEY_NAME
- это имя файла, в который будет записан закрытый ключ.
Например:
fift -s new-key.fif multisig_key
Мы получим файл multisig_key.pk
с закрытым ключом внутри.
Соберите открытые ключи
Также скрипт выдаст открытый ключ в формате:
Public key = Pub5XqPLwPgP8rtryoUDg2sadfuGjkT4DLRaVeIr08lb8CB5HW
Все, что после "Public key = "
, нужно где-то сохранить!
Давайте сохраним в файле keys.txt
. Важно, чтобы каждый открытый ключ был указан с новой строки.