Skip to content

An implementation of Darknode smart contracts, written in Solidity

License

Notifications You must be signed in to change notification settings

renproject/darknode-sol

Repository files navigation

⚖️ darknode-sol

Ethereum smart contracts for managing darknodes

CircleCI Coverage Status

Ren has two repositories for its Solidity contract:

  • darknode-sol (this repository) - contracts on Ethereum for managing darknode registrations.
  • gateway-sol - contracts on multiple EVM chains for minting and burning of ren-assets.

Ren bootstraps off Ethereum to handle the REN token and darknode registrations.

Development notes

Tests

Install the dependencies.

yarn install

Run the ganache-cli or an alternate Ethereum test RPC server on port 8545. The -d flag will use a deterministic mnemonic for reproducibility.

yarn ganache-cli -d

Run the Truffle test suite.

yarn run test

Coverage

Run the Truffle test suite with coverage.

yarn run coverage

Open the coverage file.

open ./coverage/index.html

Deploying

Add a .env, filling in the mnemonic and Infura key:

MNEMONIC_KOVAN="..."
MNEMONIC_MAINNET="..."
INFURA_KEY="..."

Deploy to Kovan:

NETWORK=kovan yarn run deploy

See 1_darknodes.js for additional instructions.

Verifying Contract Code

Add an Etherscan API key to your .env:

ETHERSCAN_KEY="..."

Run the following (replacing the network and contract name):

NETWORK=mainnet yarn run verify Contract1 Contract2