-
Notifications
You must be signed in to change notification settings - Fork 0
/
ToucanCarbonOffsetsFactoryStorage.sol
42 lines (35 loc) · 1.51 KB
/
ToucanCarbonOffsetsFactoryStorage.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// SPDX-FileCopyrightText: 2021 Toucan Labs
//
// SPDX-License-Identifier: UNLICENSED
// If you encounter a vulnerability or an issue, please contact <[email protected]> or visit security.toucan.earth
pragma solidity 0.8.14;
/// @dev V1 Storage contract for ToucanCarbonOffsetsFactory v.1.0
abstract contract ToucanCarbonOffsetsFactoryStorageV1 {
address public contractRegistry;
address[] public deployedContracts;
mapping(uint256 => address) public pvIdtoERC20;
}
/// @dev V2 Storage contract for ToucanCarbonOffsetsFactory v.1.1
abstract contract ToucanCarbonOffsetsFactoryStorageV2 {
address public beacon;
address public bridgeFeeReceiver;
uint256 public bridgeFeePercentageInBase;
address public bridgeFeeBurnAddress;
uint256 public bridgeFeeBurnPercentageInBase;
uint256 public totalRetired;
}
/// @dev V3 Storage contract for ToucanCarbonOffsetsFactory v.1.2
abstract contract ToucanCarbonOffsetsFactoryStorageV3 {
/// @notice meant to be used only for cross-chain bridging
mapping(address => bool) public allowedBridges;
}
/// @dev Main storage contract inheriting new versions
/// @dev V1 is not inherited as it was inherited in the main contract
abstract contract ToucanCarbonOffsetsFactoryStorage is
ToucanCarbonOffsetsFactoryStorageV2,
ToucanCarbonOffsetsFactoryStorageV3
{
/// @dev add a storage gap so future upgrades can introduce new variables
/// This is also allows for other dependencies to be inherited after this one
uint256[44] private __gap;
}