ethereum-sdk README

The project's README from github.com/QuipNetwork/ethereum-sdk. As one markdown file: README.md.

Quip Network SDK

This project contains the smart contracts and TypeScript SDK for interacting with the Quip Network EVM Smart Contracts.

NOTICE: This project is currently in active development and is not yet ready for production use.

Prerequisites

Environment Setup

Copy .env.example to .env and fill in:

ALCHEMY_API_KEY=your_alchemy_key
API_URL_SEPOLIA=your_sepolia_url
API_URL_BASE_SEPOLIA=your_base_sepolia_url
API_URL_OP_SEPOLIA=your_optimism_sepolia_url
API_URL_MAINNET=your_mainnet_url
API_URL_BASE=your_base_url
API_URL_OPTIMISM=your_optimism_url
PRIVATE_KEY=your_wallet_private_key
DEPLOYER_ADDRESS=quip_deployer_contract_address

For running addNetwork, additional variables are required (contact Rick):

DEPLOYER_PRIVATE_KEY=
DEPLOYER_PUBLIC_KEY=

Contract Development

Testing Contracts

npx hardhat test
# With gas reporting:
REPORT_GAS=true npx hardhat test

Local Development

npx hardhat node

Deployment

Adding New Networks (deploying the Deployer contract)

Important: Only authorized personnel should run these commands. Contact Rick first.

npx hardhat run scripts/addNetwork.ts
npx hardhat run scripts/addNetwork.ts --network sepolia
npx hardhat run scripts/addNetwork.ts --network sepolia_base
npx hardhat run scripts/addNetwork.ts --network sepolia_optimism

After deploying, you can drain remaining funds from the wallet to the one owned by PRIVATE_KEY:

npx hardhat run scripts/drainDeployer.ts
npx hardhat run scripts/drainDeployer.ts --network sepolia
npx hardhat run scripts/drainDeployer.ts --network sepolia_base
npx hardhat run scripts/drainDeployer.ts --network sepolia_optimism

Deploying Contracts

INITIAL_OWNER=<initial_owner_address> npx hardhat run scripts/deploy.ts --network <network_name>

Note that the initial owner address will change the deployment address.

SDK Development

Building the SDK

bun run build

Testing the SDK

bun run test

Publishing

npm publish

Contract Verification

Assuming the following is in your addresses.json folder:

Deployer: 0xF768b4E4A314C9119587b8Cd35a89bDC228290b5
WOTSPlus: 0x1Ad02caBfc65ed65FDF6da64108f04f71E2e8991
QuipFactory: 0x4a5A444F3B12342Dc50E34f562DfFBf0152cBb99

Deployer:

npx hardhat verify --network mainnet 0xF768b4E4A314C9119587b8Cd35a89bDC228290b5
npx hardhat verify --network optimism 0xF768b4E4A314C9119587b8Cd35a89bDC228290b5
npx hardhat verify --network base 0xF768b4E4A314C9119587b8Cd35a89bDC228290b5
npx hardhat verify --network degen 0xF768b4E4A314C9119587b8Cd35a89bDC228290b5
...

WOTSPlus:

npx hardhat verify --network mainnet 0x1Ad02caBfc65ed65FDF6da64108f04f71E2e8991
npx hardhat verify --network degen 0x1Ad02caBfc65ed65FDF6da64108f04f71E2e8991
...

QuipFactory:

npx hardhat verify --network base 0x4a5A444F3B12342Dc50E34f562DfFBf0152cBb99 "0x4971905b8741BDbE1Ba008f73C28C82DE9d95dF9" "0x1Ad02caBfc65ed65FDF6da64108f04f71E2e8991"
npx hardhat verify --network degen 0x4a5A444F3B12342Dc50E34f562DfFBf0152cBb99 "0x4971905b8741BDbE1Ba008f73C28C82DE9d95dF9" "0x1Ad02caBfc65ed65FDF6da64108f04f71E2e8991"
...

Where 0x4971905b8741BDbE1Ba008f73C28C82DE9d95dF9 is the initial owner address.

Available Networks

License

Copyright (C) 2024 quip.network

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

See COPYING for the full license text.

ethereum-sdk (QuipNetwork/ethereum-sdk)

Searching Database…

Что это?Quip Network SDK предоставляет смарт-контракты и TypeScript SDK для взаимодействия с EVM-совместимыми смарт-контрактами Quip Network, которые используют постквантовые хеш-подписи (WOTS+) вместо обычных ключей ECDSA.
Это репозиторий с контрактами на Solidity, TypeScript SDK или и то, и другое?И то, и другое: это кодовая база с контрактами на Solidity, которая собирается с помощью Hardhat (контракты 'Deployer', 'WOTSPlus' и 'QuipFactory'), а также TypeScript SDK, который компилируется и публикуется для вызова уже развёрнутых контрактов.
Как запустить SDK и контракты?Склонируйте репозиторий, установите зависимости через npm, bun или yarn, скопируйте '.env.example' в '.env' и заполните обязательные значения, затем соберите проект командой 'npm run build' (она запускает 'hardhat compile' и 'tsc').
Что нужно установить перед началом?Нужны Node.js и менеджер пакетов (npm, bun или yarn), а также настроенный файл .env; для развёртывания в новых сетях требуются дополнительные переменные окружения с ограниченным доступом.
Можно ли уже использовать это в продакшене?Нет: в README прямо предупреждается, что проект всё ещё находится в активной разработке, а добавление новых сетей и вывод средств с кошелька деплоера разрешены только уполномоченным сотрудникам, которые сначала должны связаться с Rick.
Какие условия лицензии?Лицензия AGPL-3.0 — это сильный копилефт: производные работы, в том числе предоставляемые как сетевой сервис, также должны распространяться на тех же условиях.
Что такое WOTSPlus?WOTSPlus (Winternitz One-Time Signature Plus) — основанная на хешах схема подписи, устойчивая к квантовым атакам; контракты Quip проверяют такие подписи прямо в блокчейне вместо обычных подписей ECDSA.
Какие блокчейн-сети поддерживаются?Сейчас поддерживаются тестовые сети Ethereum Sepolia, Base Sepolia и Optimism Sepolia, а также основные сети Ethereum, Base и Optimism.
Могу ли я сам развернуть контракты в совершенно новой сети?Не так просто: добавление сети означает развёртывание контракта Deployer с дополнительными переменными окружения с ограниченным доступом, и в README сказано, что эти команды может выполнять только уполномоченный персонал после связи с Rick.
Что SDK реально позволяет делать моему коду?Он оборачивает контракты QuipFactory, Deployer и WOTSPlus, чтобы TypeScript-код мог компилировать, тестировать и взаимодействовать с EVM-контрактами, защищёнными постквантовой криптографией, в поддерживаемых сетях.
Size
9.2 MB
Stars
11.3K
Updated
CommitOct 16
Age
1y
Commits · 90 Days