Inherits: Initializable, ERC20Upgradeable, AccessControlUpgradeable, ERC20PermitUpgradeable, UUPSUpgradeable, PausableUpgradeable
This contract implements a bond token with upgradeable capabilities, access control, and pausability. It includes functionality for managing indexed user assets and global asset pools.
The global asset pool
IndexedGlobalAssetPool public globalPool;
Mapping of user addresses to their indexed assets
mapping(address => IndexedUserAssets) public userAssets;
Role identifier for accounts with minting privileges
bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
Role identifier for accounts with governance privileges
bytes32 public constant GOV_ROLE = keccak256("GOV_ROLE");
Role identifier for the distributor
bytes32 public constant DISTRIBUTOR_ROLE = keccak256("DISTRIBUTOR_ROLE");