Портал разработчика

Деплой контрактов

Компиляция Solidity на стороне сервера и деплой в testnet и mainnet.

Как это работает#

Вы загружаете исходник на Solidity — сервер компилирует его и деплоит с вашего кастодиального кошелька. Не нужны Hardhat/Foundry, приватные ключи или управление газом локально.

Компилятор и окружение#

ПараметрЗначение
Версия solc0.8.20
Целевой EVMparis
Библиотеки@openzeppelin/contracts 5.4.0
Разрешённые импортытолько @openzeppelin/contracts
Безопасность компиляции
Разрешён импорт только из @openzeppelin/contracts. Произвольные внешние импорты блокируются — это защищает сборку и сеть.

Компиляция (без деплоя)#

POST/api/devportal/contracts/compilepublic
sourcestringrequired
Исходный код Solidity.
fileNamestringoptional
Имя файла (опционально).
Ответ
{
  "compilerVersion": "0.8.20",
  "evmVersion": "paris",
  "warnings": [],
  "contracts": [
    { "name": "MyToken", "abi": [ ... ], "bytecodeSize": 4821 }
  ]
}

Деплой#

POST/api/devportal/contracts/deployBearer (dev)
sourcestringrequired
Исходный код Solidity.
contractNamestringoptional
Имя контракта, если в файле их несколько.
constructorArgsunknown[]optional
Аргументы конструктора в порядке объявления.
network"testnet" | "mainnet"optional
По умолчанию testnet.
projectIdstringoptional
Привязать контракт к проекту.
Запрос
curl -X POST https://kazsmartchain.org/api/devportal/contracts/deploy \
  -H "Authorization: Bearer <JWT>" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "<SOLIDITY>",
    "contractName": "MyToken",
    "constructorArgs": [],
    "network": "testnet"
  }'
Ответ (объект контракта)
{
  "id": "9f1c...",
  "name": "MyToken",
  "network": "testnet",
  "status": "deployed",
  "address": "0x...",
  "deployTxHash": "0x...",
  "deployedBlock": 5530,
  "compilerVersion": "0.8.20",
  "evmVersion": "paris",
  "abi": [ ... ]
}

Жизненный цикл и статусы#

СтатусЗначение
compiledСкомпилирован, ожидает одобрения (mainnet)
deployedУспешно задеплоен on-chain
failedДеплой завершился ошибкой (см. поле error)

Mainnet и одобрение#

  • Testnet — деплой выполняется сразу, контракт получает статус deployed.
  • Mainnet — контракт сначала компилируется и переходит в статус compiled, ожидая ручного одобрения оператором; после одобрения выполняется деплой.
Редактор кода в портале
Код в онлайн-редакторе портала не сохраняется автоматически между страницами. Сохраняйте исходник локально перед навигацией, чтобы не потерять изменения.