Functions
updatePolicy
Updates a policy in storage. Updates the policy type, calling functions, and associated rules.Name | Type | Description |
---|---|---|
policyId | uint256 | The ID of the policy to update. |
callingFunctions | bytes4[] | The function signatures of the calling functions in the policy. |
callingFunctionIds | uint256[] | The IDs of the calling functions. |
ruleIds | uint256[][] | A two-dimensional array of rule IDs associated with the policy. |
policyType | PolicyType | The type of the policy (CLOSED_POLICY or OPEN_POLICY). |
Name | Type | Description |
---|---|---|
<none> | uint256 | policyId The updated policy ID. |
closePolicy
Closes a policy by changing its type to CLOSED_POLICY. This function ensures that only policy admins can close a policy and that the policy is not cemented.Name | Type | Description |
---|---|---|
policyId | uint256 | The ID of the policy to close. |
openPolicy
Opens a policy by changing its type to OPEN_POLICY. This function ensures that only policy admins can open a policy and that the policy is not cemented.Name | Type | Description |
---|---|---|
policyId | uint256 | The ID of the policy to open. |
cementPolicy
Marks a policy as cemented, preventing further modifications.Name | Type | Description |
---|---|---|
policyId | uint256 | The ID of the policy to cement. |
deletePolicy
Deletes a policy from storage. Removes the policy and all associated rules, trackers, and foreign calls. Ensures the policy is not cemented.Name | Type | Description |
---|---|---|
policyId | uint256 | The ID of the policy to delete. |
applyPolicy
Applies policies to a specified contract. Ensures that only calling contract admins can apply policies and validates policy types.Name | Type | Description |
---|---|---|
contractAddress | address | The address of the contract to apply policies to. |
policyIds | uint256[] | The IDs of the policies to apply. |
unapplyPolicy
Unapplies policies from a specified contract. Ensures that only calling contract admins can unapply policies. Removes associations between the contract and the specified policies.Name | Type | Description |
---|---|---|
_contractAddress | address | The address of the contract from which policies will be unapplied. |
_policyIds | uint256[] | The IDs of the policies to unapply. |
createPolicy
Creates a new policy and assigns a policy admin. Generates a policy ID and initializes the policy with the specified type.Name | Type | Description |
---|---|---|
policyType | PolicyType | The type of the policy (CLOSED_POLICY or OPEN_POLICY). |
Name | Type | Description |
---|---|---|
<none> | uint256 | uint256 The generated policy ID. |
getAppliedPolicyIds
Retrieves the IDs of policies applied to a specific contract.Name | Type | Description |
---|---|---|
contractAddress | address | The address of the contract. |
Name | Type | Description |
---|---|---|
<none> | uint256[] | uint256[] An array of applied policy IDs. |
isClosedPolicy
Checks if a policy is closed.Name | Type | Description |
---|---|---|
policyId | uint256 | The ID of the policy to check. |
Name | Type | Description |
---|---|---|
<none> | bool | bool True if the policy is closed, false otherwise. |
getPolicy
Retrieves a policy from storage. SincePolicy
contains nested mappings, the data is broken into arrays for external return.
Name | Type | Description |
---|---|---|
policyId | uint256 | The ID of the policy. |
Name | Type | Description |
---|---|---|
callingFunctions | bytes4[] | The calling functions within the policy. |
callingFunctionIds | uint256[] | The calling function IDs corresponding to each calling function. |
ruleIds | uint256[][] | The rule IDs corresponding to each calling function. |
_storePolicyData
Internal helper function for creating and updating policy data. This function processes and stores policy data, including calling functions, rules, and policy type. The parameters are complex because nested structs are not allowed for externally facing functions.Name | Type | Description |
---|---|---|
_policyId | uint256 | The ID of the policy. |
_callingFunctions | bytes4[] | All callingFunctions in the policy. |
_callingFunctionIds | uint256[] | Corresponding Calling Function IDs in the policy. Each element matches one-to-one with the elements in _callingFunctions . |
_ruleIds | uint256[][] | A two-dimensional array of rule IDs. The first level represents calling functions, and the second level contains rule IDs for each calling function. |
_policyType | PolicyType | The type of the policy (OPEN or CLOSED). |
Name | Type | Description |
---|---|---|
<none> | uint256 | policyId The updated policy ID. |
_processPolicyTypeChange
Internal helper function to handle data cleanup during policy type changes. This function removes applied contract associations when transitioning to a CLOSED policy.Name | Type | Description |
---|---|---|
_policyId | uint256 | The ID of the policy. |
_policyType | PolicyType | The new type of the policy (OPEN or CLOSED). |