Welcome! This repo hosts development of all solidity smart contracts that actualize our Interlock token model and DeSec infrastructure. It exists to be transparent about our contract development.
Contracts are written in solidity and are currently hosted on the Arbitrum blockchain.
Interlock Network has been and always will be, blockchain agnostic. The first phase of our web3 launch involves positioning for future security staking, as well as maximizing the likelihood of successful token value hike.
The ILOCK token will be deployed on Ethereum's Arbitrum layer 2 EVM. Vesting and rewards will be maintained on this network. Security staking will be implemented on Arbitrum, taking advantage of its improved transaction fees and throughput compared to the Ethereum mainnet.
This is our EVM (ERC20) token contract written for Arbitrum. It implements the ILOCK token with the following features:
- Standard ERC20 functionality
- Pausable operations for emergency situations
- Role-based access control for administrative functions
- Cooldown mechanism for large transfers
The contract employs Solidity, drawing directly from the standard (audited) OpenZeppelin 5 contract suite.
This contract manages the security staking mechanism for the ThreatSlayer and ILOCK token. Key features include:
- Voting on malicious/non-malicious urls
- Locking ILOCK tokens for staking
- Reward distribution
- Slashing mechanism for misbehavior
Both contracts are designed to be upgradeable, allowing for future improvements and additions to functionality while maintaining contract addresses and state.
We have enabled discussions and will be open to feedback throughout the development process. Please feel free to chime in on a discussion or open an issue.
Likewise, feel free to comment on issues as they come up. We use an org-wide labeling system, but will have specific labels for this repository to denote contract type, client tooling, etc.
Enjoy!
We are open to contributions from the community. Please open an issue or pull request if you have any suggestions or improvements.
Packages are managed with pnpm. To install dependencies, run:
pnpm install
To compile the contracts, run:
pnpm compile
To run the tests, run:
pnpm test
To deploy the contracts, run:
npx hardhat run --network NETWORK_NAME scripts/CONTRACT_NAME/deploy.ts
To upgrade the contracts, run:
npx hardhat run --network NETWORK_NAME scripts/CONTRACT_NAME/upgrade.ts
To verify the contracts, run:
pnpm verify --network NETWORK_NAME CONTRACT_ADDRESS