The USTB Token project is a Solidity-based smart contract system designed to provide a rebase token with cross-chain and Layer Zero functionalities. It's built with upgradeability in mind, ensuring that the token logic can evolve over time.
CrossChainToken.sol: Defines basic cross-chain functionalities.CrossChainRebaseTokenUpgradeable.sol: Manages cross-chain functionalities for a rebase token.LayerZeroRebaseTokenUpgradeable.sol: Adds LayerZero functionalities to a rebase token.RebaseTokenUpgradeable.sol: Base contract for a rebase token with upgradeability features.USTB.sol: The main contract for the USTB token, inheriting features from the above contracts.LzAppUpgradeable.solandNonblockingLzAppUpgradeable.sol: Manage LayerZero applications with upgradeability.OFTCoreUpgradeable.solandOFTUpgradeable.sol: Define OFT functionalities with upgradeability.
IUSDM.sol: Defines functionalities related to USDM.IUSTB.sol: Defines functionalities related to USTB.
RebaseTokenMath.sol: Provides mathematical operations for rebase tokens.
- Clone the repository
- Create an
.envfile based on.env.example - Compile the contracts using Foundry (
forge build)
Run the tests using the following command:
forge test# deploy on testnets
FOUNDRY_PROFILE=optimized forge script ./script/DeployAllTestnet.s.sol --legacy --broadcast
# deploy on mainnets
FOUNDRY_PROFILE=optimized forge script ./script/DeployAll.s.sol --legacy --broadcastThis project is licensed under the terms specified in the LICENSE file.