48 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| // SPDX-License-Identifier: MIT
 | |
| pragma solidity ^0.8.19;
 | |
| 
 | |
| abstract contract Constants {
 | |
|     /// ███ Constants ██████████████████████████████████████████████████████████
 | |
| 
 | |
|     uint256 constant _ROOT_UPDATED_EVENT_SIGNATURE =
 | |
|         0x0b294da292f26e55fd442b5c0164fbb9013036ff00c5cfdde0efd01c1baaf632;
 | |
|     uint256 constant _ALLOWED_ERC20_UPDATED_EVENT_SIGNATURE =
 | |
|         0x5d6e86e5341d57a92c49934296c51542a25015c9b1782a1c2722a940131c3d9a;
 | |
|     uint256 constant _TRUSTED_FORWARDER_UPDATED_EVENT_SIGNATURE =
 | |
|         0xbee55516e29d3969d3cb8eb01351eb3c52d06f9e2435bd5a8bfe3647e185df92;
 | |
| 
 | |
|     /// @dev Seller casted to key => Seller's allowlist merkleroot.
 | |
|     /// mapping(uint256 => bytes32) public sellerAllowList;
 | |
|     uint256 constant _SELLER_ALLOWLIST_SLOT_SEED = 0x74dfee70;
 | |
|     /// @dev Tokens allowed to serve as the underlying amount of a deposit.
 | |
|     /// mapping(ERC20 => bool) public allowedERC20s;
 | |
|     uint256 constant _ALLOWED_ERC20_SLOT_SEED = 0xcbc9d1c4;
 | |
| 
 | |
|     /// @dev `balance` max. value = 10**26.
 | |
|     /// @dev `pixTarget` keys are restricted to 160 bits.
 | |
|     ///     mapping(uint256 => mapping(ERC20 => { `uint256`, `uint96` } )) public sellerBalance;
 | |
| 
 | |
|     /// @dev Bits layout:
 | |
|     /// `bytes32` [0...255] := pixTarget
 | |
|     /// `uint96`  [0...94]   := balance
 | |
|     /// `bool`    [95]       := valid
 | |
| 
 | |
|     /// @dev Value in custom storage slot given by:
 | |
|     ///     mstore(0x20, token)
 | |
|     ///     mstore(0x0c, _SELLER_BALANCE_SLOT_SEED)
 | |
|     ///     mstore(0x00, seller)
 | |
|     ///     let value := sload(keccak256(0x0c, 0x34)).
 | |
|     uint256 constant _SELLER_BALANCE_SLOT_SEED = 0x739094b1;
 | |
| 
 | |
|     /// @dev The bitmask of `sellerBalance` entry.
 | |
|     uint256 constant BITMASK_SB_ENTRY = (1 << 94) - 1;
 | |
|     /// @dev The bit position of `valid` in `sellerBalance`.
 | |
|     uint256 constant BITPOS_VALID = 95;
 | |
| 
 | |
|     /// @dev The scalar of BRZ token.
 | |
|     uint256 constant WAD = 1e18;
 | |
|     uint256 constant MAXBALANCE_UPPERBOUND = 1e8 ether;
 | |
|     uint256 constant REPUTATION_LOWERBOUND = 1e2 ether;
 | |
|     uint256 constant LOCKAMOUNT_UPPERBOUND = 1e6 ether;
 | |
| }
 |