Разработка

Подготовка

  1. Установить трюфель

    npm install -g truffle
  2. Установить зависимости

    npm install
  3. Установите ioctl -инструмент командной строки для взаимодействия с блокчейном IoTeX

установите ioctl, следуя инструкциям: https://docs.iotex.io/developer/ioctl/install.html

Составляем контракты

npm run build:contract

Развернуть контракты

  • CycloneToken

  1. Развернуть CycloneToken ct

ioctl contract deploy bytecode CYCLONETOKEN_BYTECODE ABI_PATH '{"_operator": "OPERATOR_ADDRESS", "_lp": "INITIAL_LP_ADDRESS"}'
  • Timelock & GovernorAlpha

  1. Развертывать Timelock tl

2. Развертывать GorvernorAlpha ga (например, продолжительность голосования: 3 дня)

3. Установите ожидающего администратора Timelock на GovernorAlpha ga

4. Accept Admin from GovernorAlpha ga triggered by guardian

  • Aeolus

  1. Добавьте ликвидность для CYC / IOTX на MimoFactory и получите токен CYC-IOTX LP

  2. Разверните Aeolus as с ct адресом

3. Вызовите ct.addMinter (), чтобы установить as в качестве минтеров для токена CYC

  • CoinCyclone, ERC20Cyclone

  1. Развертывать Hasher hr

  2. Развертывать Verifier vr

  3. Развертывать CoinCyclone cc, ERC20Cyclone ec связано с Hasher hr с as, vr, ct, mfи при необходимости адрес токена XRC20

  4. Вызовите ct.addMinter (), чтобы установить cc и ec в качестве minters для токена CYC

  5. Вызов as.addAddressToWhitelist (), чтобы установить cc и ec в белые списки для Aeolus, чтобы вызвать addReward ()

Контракты на тестирование

  1. версия узла nvm use 11.15.0

  2. построить схемы zk npm run build

  3. если вы хотите использовать test сеть, просто запустите npm run test (дефолт).

    Если вы хотите использовать developmentсеть,

    • изменить truffle-config.js (раскомментировать сеть разработки)

    • пробег ganache-cli i 1337

    • пробегnpm run test

Взаимодействие с контрактами Cyclone [Анонимность Майнинг]

  1. Требования

  2. nvm use 11.15.0

  3. npm install -g npx

  4. Настроить файл .env

    • cp .env.example .env

    • vi .env - добавьте свой закрытый ключ, развернутый адрес контракта и номинал

  5. Построить схемы zk: npm run build. Обратите внимание, что если вы хотите создавать схемы zk (включая verifier.sol, proof / verify-keys) локально, вам необходимо:

    • npm uninstall websnark

    • npm install websnark@"git+https://github.com/tornadocash/websnark.git#2041cfa5fa0b71cd5cca9022a4eeea4afe28c9f7"

    • npm run build:local - Это может занять более 10 минут, поскольку установка доверия выполняется локально.

  6. Депозит

    • Тестовая сеть

      ./client.js deposit IOTX|XRC20 --rpc http://api.testnet.iotex.one:80

    • Mainnet

      ./client.js deposit IOTX|XRC20 --rpc http://api.iotex.one:80

  7. Снять со счета

    • Тестовая сеть

      ./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.testnet.iotex.one:80 --relayer RELAYER_URL

    • Mainnet

      ./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.iotex.one:80 --relayer RELAYER_URL

Взаимодействие с контрактом Aeolus [Ликвидность Майнинг]

  1. Добавьте ликвидность для CYC / IOTX на MimoFactory и получите токен CYC-IOTX LP

  2. Депозит

  • Утвердить токен CYC-IOTX LP

  • Депозит CYC-IOTX LP Token

3. Снять со счета

Взаимодействие с GovernorAlpha контракт [Управление]

1.Самостоятельно делегируйте или делегируйте свой токен CYC для управления. Если вы не делегируете свои голоса, жетон не будет считаться правом голоса.

2. Предложите новое изменение в контрактах циклонов, таких как updateConfig, changeGovDAO и updateVerifier. У предлагающего должно быть более 1000 токенов CYC. Голосование продлится 3 дня. - Используйте abi-encoder, чтобы получить закодированные данные аргумента.

3. В течение 3 дней, в течение которых проводится голосование, держатели токенов, которые делегируют или делегируют собственные полномочия, могут голосовать за определенное предложение.

4. Если после 3 дней голосования, если предложение набирает более 4000 голосов CYC, предлагающий может поставить транзакцию в очередь в Timelock.

5. После задержки временной привязки предлагающий может выполнить транзакцию с временной привязкой.

Last updated

Was this helpful?