IAutomationVault
Functions
owner
Returns the owner address
function owner() external view returns (address _owner);
Returns
Name | Type | Description |
---|---|---|
_owner | address | The address of the owner |
NATIVE_TOKEN
Returns the address of the native token
function NATIVE_TOKEN() external view returns (address _nativeToken);
Returns
Name | Type | Description |
---|---|---|
_nativeToken | address | The address of the native token |
pendingOwner
Returns the pending owner address
function pendingOwner() external view returns (address _pendingOwner);
Returns
Name | Type | Description |
---|---|---|
_pendingOwner | address | The address of the pending owner |
getRelayData
Returns the approved relay callers and selectors for a specific relay and job
function getRelayData(address _relay)
external
returns (address[] memory _callers, IAutomationVault.JobData[] memory _jobsData);
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
Returns
Name | Type | Description |
---|---|---|
_callers | address[] | The array of approved relay callers |
_jobsData | IAutomationVault.JobData[] | The array of approved jobs and selectors |
relays
Returns the approved relays
function relays() external view returns (address[] memory _listRelays);
Returns
Name | Type | Description |
---|---|---|
_listRelays | address[] | The array of approved relays |
changeOwner
Propose a new owner for the contract
The new owner will need to accept the ownership before it is transferred
function changeOwner(address _pendingOwner) external;
Parameters
Name | Type | Description |
---|---|---|
_pendingOwner | address | The address of the new owner |
acceptOwner
Accepts the ownership of the contract
function acceptOwner() external;
withdrawFunds
Withdraws funds deposited in the contract
Only the owner can call this function
function withdrawFunds(address _token, uint256 _amount, address _receiver) external;
Parameters
Name | Type | Description |
---|---|---|
_token | address | The address of the token |
_amount | uint256 | The amount of tokens |
_receiver | address | The address of the receiver |
addRelay
Add a new relay to the automation vault with the desired callers, jobs and selectors
If the relay is valid, it can be passed with all the fields or only the necessary ones, passing the empty argument in the unwanted ones
function addRelay(address _relay, address[] calldata _callers, IAutomationVault.JobData[] calldata _jobsData) external;
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
_callers | address[] | The array of callers |
_jobsData | IAutomationVault.JobData[] | The array of job data |
deleteRelay
Revokes the approval of a specific relay
The callers, jobs and selectors will be deleted
function deleteRelay(address _relay) external;
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
modifyRelay
Modify the callers, jobs and selectors of a specific relay
If any of the arguments is empty, the data will be deleted
function modifyRelay(
address _relay,
address[] calldata _callers,
IAutomationVault.JobData[] calldata _jobsData
) external;
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
_callers | address[] | The array of callers |
_jobsData | IAutomationVault.JobData[] | The array of job data |
modifyRelayCallers
Modify the callers of a specific relay
If the array is empty, the data will be deleted
function modifyRelayCallers(address _relay, address[] calldata _callers) external;
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
_callers | address[] | The array of callers |
modifyRelayJobs
Modify the jobs and selectors of a specific relay
If the array is empty, the data will be deleted, also if the function selectors array is empty
function modifyRelayJobs(address _relay, IAutomationVault.JobData[] calldata _jobsData) external;
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
_jobsData | IAutomationVault.JobData[] | The array of job data |
exec
Executes a job and issues a payment to the fee data receivers
The function can be called with only execData, only feeData or both. The strategy of the payment will be different depending on which relay is calling the function
function exec(address _relayCaller, ExecData[] calldata _execData, FeeData[] calldata _feeData) external;
Parameters
Name | Type | Description |
---|---|---|
_relayCaller | address | The address of the relay caller |
_execData | ExecData[] | The array of exec data |
_feeData | FeeData[] | The array of fee data |
Events
ChangeOwner
Emitted when the owner is proposed to change
event ChangeOwner(address indexed _pendingOwner);
Parameters
Name | Type | Description |
---|---|---|
_pendingOwner | address | The address that is being proposed |
AcceptOwner
Emitted when the owner is accepted
event AcceptOwner(address indexed _owner);
Parameters
Name | Type | Description |
---|---|---|
_owner | address | The address of the new owner |
WithdrawFunds
Emitted when funds are withdrawn
event WithdrawFunds(address indexed _token, uint256 _amount, address indexed _receiver);
Parameters
Name | Type | Description |
---|---|---|
_token | address | The address of the token |
_amount | uint256 | The amount of tokens |
_receiver | address | The address of the receiver |
ApproveRelay
Emitted when a relay is approved
event ApproveRelay(address indexed _relay);
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
DeleteRelay
Emitted when a relay is deleted
event DeleteRelay(address indexed _relay);
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
ApproveRelayCaller
Emitted when a relay caller is approved
event ApproveRelayCaller(address indexed _relay, address indexed _caller);
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The address of the relay |
_caller | address | The address of the caller |
ApproveJob
Emitted when job is approved
event ApproveJob(address indexed _job);
Parameters
Name | Type | Description |
---|---|---|
_job | address | The address of the job |
ApproveJobSelector
Emitted when job selector is approved
event ApproveJobSelector(address indexed _job, bytes4 indexed _functionSelector);
Parameters
Name | Type | Description |
---|---|---|
_job | address | The address of the job |
_functionSelector | bytes4 | The function selector |
JobExecuted
Emitted when a job is executed
event JobExecuted(address indexed _relay, address indexed _relayCaller, address indexed _job, bytes _jobData);
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The relay address |
_relayCaller | address | The relay caller address |
_job | address | The address of the job |
_jobData | bytes | The data to execute the job |
IssuePayment
Emitted when a payment is issued
event IssuePayment(
address indexed _relay, address indexed _relayCaller, address indexed _feeRecipient, address _feeToken, uint256 _fee
);
Parameters
Name | Type | Description |
---|---|---|
_relay | address | The relay address |
_relayCaller | address | The relay caller address |
_feeRecipient | address | The recipient address which will receive the fee |
_feeToken | address | The address of the token |
_fee | uint256 | The amount of tokens |
NativeTokenReceived
Emitted when native token is received in the automation vault
event NativeTokenReceived(address indexed _sender, uint256 _amount);
Parameters
Name | Type | Description |
---|---|---|
_sender | address | The sender address |
_amount | uint256 | The amount of native token |
Errors
AutomationVault_RelayZero
Thrown when the the relay is the zero address
error AutomationVault_RelayZero();
AutomationVault_RelayAlreadyApproved
Thrown when the relay is already approved
error AutomationVault_RelayAlreadyApproved();
AutomationVault_NativeTokenTransferFailed
Thrown when ether transfer fails
error AutomationVault_NativeTokenTransferFailed();
AutomationVault_NotApprovedRelayCaller
Thrown when a not approved relay caller is trying to execute a job
error AutomationVault_NotApprovedRelayCaller();
AutomationVault_NotApprovedJobSelector
Thrown when a not approved job selector is trying to be executed
error AutomationVault_NotApprovedJobSelector();
AutomationVault_ExecFailed
Thrown when a job execution fails
error AutomationVault_ExecFailed();
AutomationVault_OnlyOwner
Thrown when the caller is not the owner
error AutomationVault_OnlyOwner();
AutomationVault_OnlyPendingOwner
Thrown when the caller is not the pending owner
error AutomationVault_OnlyPendingOwner();
Structs
ExecData
The data to execute a job
struct ExecData {
address job;
bytes jobData;
}
Properties
Name | Type | Description |
---|---|---|
job | address | The address of the job |
jobData | bytes | The data to execute the job |
FeeData
The data to issue a payment
struct FeeData {
address feeRecipient;
address feeToken;
uint256 fee;
}
Properties
Name | Type | Description |
---|---|---|
feeRecipient | address | The recipient address which will receive the fee |
feeToken | address | The address of the token |
fee | uint256 | The amount of tokens |
JobData
The data of a job
struct JobData {
address job;
bytes4[] functionSelectors;
}
Properties
Name | Type | Description |
---|---|---|
job | address | The address of the job |
functionSelectors | bytes4[] | The array of function selectors |