Прежде чем начать
- Access key от Tenderly. Экспортируйте его как
TENDERLY_ACCESS_KEYв вашем шелле. - Слаги вашего аккаунта и проекта, доступные в URL Tenderly Dashboard.
Создание одиночной Virtual Environment
RESPONSE=$(curl --request POST \
--url https://api.tenderly.co/api/v1/account/me/project/project/vnets \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Access-Key: ${TENDERLY_ACCESS_KEY}" \
--data '{
"slug": "my-staging-testnet-25",
"display_name": "My Staging TestNet",
"fork_config": { "network_id": 1, "block_number": "latest" },
"virtual_network_config": { "chain_config": { "chain_id": 73571 } },
"sync_state_config": { "enabled": false, "commitment_level": "latest" },
"explorer_page_config": { "enabled": false, "verification_visibility": "bytecode" }
}')
Массив
rpcs в ответе содержит Admin и Public RPC URL. Извлеките Admin RPC для дальнейшего использования в скрипте:Создание Multichain Virtual Environment
Multichain Virtual Environment создаётся одним вызовом через эндпоинтmultivnets. Все сети в вызове группируются под одним stack_id, что и делает возможным межцепочечное мостостроение между ними.
multivnet-create.sh
vnets создаёт одну сеть внутри Multichain Virtual Environment. Ответ возвращает stack_id и массив объектов Virtual Environment, каждый со своими RPC-эндпоинтами.
Схему по полям см. в справочнике REST API.
Дальнейшие шаги
- Настройте GitHub Actions с Foundry или Hardhat, чтобы разворачивать Virtual Environments для каждого pull request.
- Стейджинг контрактов в только что созданной Virtual Environment.
- Просмотрите полный справочник REST API.