This repository contains the source code for contracts and testing suites related to the PRL token migration from MIMO and the way to bridge it. Details documentation can be found under the /docs folder.
- Broadcast folder contains Foundry transactions executed by scripts.
- Contracts folder contains contracts source code.
- Deploy folder contains hardhat deployment scripts.
- Deployments folder contains info of contracts deployed per network.
- Docs folder contains all documentation related to contracts.
- Script folder contains Foundry scripts to interact with onchain contracts.
- Test folder contains all tests related to the contracts with mocks and settings.
- Utils folder contains helper functions.
The repository contains 3 types of contract:
- The
PRLtoken contract that inherit of Openzeppelin ERC20 and ERC20Permit standards. - The Migrations contracts handled by the
PrincipalMigrationContractandPeripheralMigrationContractcontracts that leveraging on LayerZero's OApp standard for migrating Mimo from anychain to PRL on anychain. - The Bridging of PRL, handled by the
LockBoxandPeripheralPRLcontracts that leveraging on fork of LayerZero's OFT standard for allow PRL to be omnichain.
See the documentation for more details.
Foundry is used for testing and scripting. To Install foundry follow the instructions.
bun iThe Foundry script relies solely on the PRIVATE_KEY. The MNEMONIC is used on the Hardhat side and will override the PRIVATE_KEY if it is defined.
MNEMONIC=
PRIVATE_KEY=0x...
ALCHEMY_API_KEY=bun run compilebun run testbun run test:coverage:reportYou will find other useful commands in the package.json file.
All contracts is under the MIT License, see LICENSE.