# Разворачивание контрактов ## Предварительные действия Установить зависимости: ```shell= yarn ``` если выдаст ошибку с чексуммами то: ```shell= YARN_CHECKSUM_BEHAVIOR=update yarn ``` Создать файл .env в корне проекта, ввести мнемоническую фразу. Пример: ```shell= MNEMONIC = inherit winter miracle exercise leader harbor fantasy turkey sponsor danger goose debate ``` Транзакции будут совершаться с первого аккаунта от мнемоники, при необходимости можно переопределить в файле hardhat.config.ts. ## Деплой Для основной сети: ```shell= yarn deploy --network matic ``` Для тестовой сети: ```shell= yarn deploy --network "matic-test" ``` Для деплоев с нуля при наличии предыдущих деплоев добавить флаг `--reset`. Адреса задеплоеных контрактов сохраняются в папке deployments. ## Верификация на polygonscan ```shell= yarn verify --api-key <ввести ключ> --network <ввести сеть> ``` Для верификации прокси скопировать адрес прокси контракта, перейти на https://polygonscan.com/proxyContractChecker для основной сети или https://mumbai.polygonscan.com/proxyContractChecker для тестовой сети, вставить адрес в форму и нажать Verify. ## MetaCore [Предварительные действия](#Предварительные-действия). Задать в файле hardhat.config.ts нужный адрес для root, если ничего не менять будет использован 3й адрес от мнемоники для основной сети и 1й для тестовой сети: ```typescript= root: { default: 2, "matic-test": 0, matic: "0x..." // Основная сеть }, ``` [Вызвать деплой](#Деплой). [Верифицировать контракты](#Верификация-на-polygonscan). ## MetaPayment [Предварительные действия](#Предварительные-действия). Задать в файле hardhat.config.ts адрес MetaCore: ```typescript= metaCore: { default: 2, "matic-test": "0x...", // Тестовая сеть matic: "0x..." // Основная сеть }, ``` [Вызвать деплой](#Деплой). [Верифицировать контракты](#Верификация-на-polygonscan). Установить адрес MetaPayment в MetaCore: - Перейти на страницу MetaCore в polygonscan - Write as proxy - Connect to web3 (с первого кошелька от мнемоники если не переопределен deployer в hardhat.config.ts) - `setPaymentChannelAddress(newAddress: <ввести адрес MetaPayment>)` ## United-Verse [Предварительные действия](#Предварительные-действия). Задать в файле hardhat.config.ts адреса (см. пример выше): - otherPool - metaDevelopmentAndIncentiveFund - teamFund - liquidityListingFund - metaPool - stablecoin - rewardsFund - royaltyNFTGiftsPool - sfcr - sfcr2 - metaCore [Вызвать деплой](#Деплой). [Верифицировать контракты](#Верификация-на-polygonscan). Выдать в MetaPayment META_ROLE роли для Core, Holding, MetaForceContract, RequestMFSContract: - Перейти на страницу MetaPayment в polygonscan - Write as proxy - Connect to web3 (с первого кошелька от мнемоники если не переопределен deployer в hardhat.config.ts) - `grantRole(role: 0xa9ce9b5120c53e0d8b4fe6e0814a47efbead9ebc4d29ec54571f37f0b61ecf0f, account: <ввести адрес контракта>)` Выдать в Energy, MetaForceSpace и HoldMetaForceSpace (8 токенов от 1 до 8 ур.) BURNER_ROLE роль для MetaPayment: - Перейти на страницу токена в polygonscan - Write contract - Connect to web3 (с первого кошелька от мнемоники если не переопределен deployer в hardhat.config.ts) - `grantRole(role: 0x3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848, account: <ввести адрес metaPayment>)` Распределить эмиссию и настроить токены: - Перейти на страницу Core в polygonscan - Write as proxy - Connect to web3 (с любого кошелька) - `setupTokensInMetapayment` Заапрувить токены MFS и Stablecoin от metaPool к Core: - Перейти на страницу токена в polygonscan - Write contract - Connect to web3 (с кошелька metaPool) - `approve(spender: <ввести адрес core>, amount: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)` При необходимости сменить WorkflowStage (появится возможность активировать и продлять пакеты, покупать mfs, создавать заявки на покупку mfs): - Перейти на страницу Core в polygonscan - Write as proxy - Connect to web3 (с первого кошелька от мнемоники если не переопределен deployer в hardhat.config.ts) - `nextWorkflowStage`