RegenEarningPowerCalculatorFactory
Title: RegenEarningPowerCalculatorFactory
Author: Golem Foundation
Factory for deterministic RegenEarningPowerCalculator deployment via CREATE2
Final salt = keccak256(salt, owner). Ownership is set in the calculator's constructor.
Note: security-contact: [email protected]
State Variables
calculators
Tracks deployed calculators per deployer
mapping(address => CalculatorInfo[]) public calculators
Functions
deploy
Deploy a new RegenEarningPowerCalculator with deterministic address
function deploy(bytes32 salt, address owner, IAddressSet allowset, IAddressSet blockset, AccessMode accessMode)
external
returns (address calculator);
Parameters
| Name | Type | Description |
|---|---|---|
salt | bytes32 | Salt for CREATE2 address derivation |
owner | address | Address that will own the calculator (Ownable admin) |
allowset | IAddressSet | Allowset contract address (active in ALLOWSET mode) |
blockset | IAddressSet | Blockset contract address (active in BLOCKSET mode) |
accessMode | AccessMode | Initial access mode (NONE, ALLOWSET, or BLOCKSET) |
Returns
| Name | Type | Description |
|---|---|---|
calculator | address | Deployed calculator address |
predictAddress
Predict deployment address before calling deploy
function predictAddress(
bytes32 salt,
address owner,
IAddressSet allowset,
IAddressSet blockset,
AccessMode accessMode
) external view returns (address predicted);
Parameters
| Name | Type | Description |
|---|---|---|
salt | bytes32 | Salt for CREATE2 address derivation |
owner | address | Address that will own the calculator |
allowset | IAddressSet | Allowset contract address |
blockset | IAddressSet | Blockset contract address |
accessMode | AccessMode | Access mode |
Returns
| Name | Type | Description |
|---|---|---|
predicted | address | Predicted deployment address |
getCalculatorsByDeployer
Returns all calculators deployed by a specific address
function getCalculatorsByDeployer(address deployer) external view returns (CalculatorInfo[] memory);
Parameters
| Name | Type | Description |
|---|---|---|
deployer | address | Deployer address |
_recordCalculator
function _recordCalculator(address owner, address deployedCalculator, bytes32 salt) internal;
Events
CalculatorDeployed
Emitted when a new RegenEarningPowerCalculator is deployed
event CalculatorDeployed(address indexed deployer, address indexed calculator, address indexed owner, bytes32 salt);
Parameters
| Name | Type | Description |
|---|---|---|
deployer | address | Address that called deploy |
calculator | address | Deployed calculator address |
owner | address | Address that owns the calculator |
salt | bytes32 | Salt used for CREATE2 derivation |
Structs
CalculatorInfo
Information about a deployed RegenEarningPowerCalculator
struct CalculatorInfo {
address deployerAddress;
uint256 timestamp;
address owner;
address calculatorAddress;
bytes32 salt;
}