Skip to main content

IPCVGuardian

an interface for defining how the PCVGuardian functions

any implementation of this contract should be granted the roles of Guardian and PCVController in order to work correctly

Functions

isSafeAddress

function isSafeAddress(
address pcvDeposit
) external returns (bool)

returns true if the the provided address is a valid destination to withdraw funds to

Parameters

NameTypeDescription
pcvDepositaddressthe address to check

getSafeAddresses

function getSafeAddresses() external returns (address[])

returns all safe addresses

setSafeAddress

function setSafeAddress(
address pcvDeposit
) external

governor-only method to set an address as "safe" to withdraw funds to

Parameters

NameTypeDescription
pcvDepositaddressthe address to set as safe

setSafeAddresses

function setSafeAddresses(
address[] safeAddresses
) external

batch version of setSafeAddress

Parameters

NameTypeDescription
safeAddressesaddress[]the addresses to set as safe, as calldata

unsetSafeAddress

function unsetSafeAddress(
address pcvDeposit
) external

governor-or-guardian-only method to un-set an address as "safe" to withdraw funds to

Parameters

NameTypeDescription
pcvDepositaddressthe address to un-set as safe

unsetSafeAddresses

function unsetSafeAddresses(
address[] safeAddresses
) external

batch version of unsetSafeAddresses

Parameters

NameTypeDescription
safeAddressesaddress[]the addresses to un-set as safe

withdrawToSafeAddress

function withdrawToSafeAddress(
address pcvDeposit,
address safeAddress,
uint256 amount,
bool pauseAfter,
bool depositAfter
) external

governor-or-guardian-only method to withdraw funds from a pcv deposit, by calling the withdraw() method on it

Parameters

NameTypeDescription
pcvDepositaddressthe address of the pcv deposit contract
safeAddressaddressthe destination address to withdraw to
amountuint256the amount to withdraw
pauseAfterboolif true, the pcv contract will be paused after the withdraw
depositAfterboolif true, attempts to deposit to the target PCV deposit

withdrawETHToSafeAddress

function withdrawETHToSafeAddress(
address pcvDeposit,
address payable safeAddress,
uint256 amount,
bool pauseAfter,
bool depositAfter
) external

governor-or-guardian-only method to withdraw funds from a pcv deposit, by calling the withdraw() method on it

Parameters

NameTypeDescription
pcvDepositaddressthe address of the pcv deposit contract
safeAddressaddress payablethe destination address to withdraw to
amountuint256the amount of tokens to withdraw
pauseAfterboolif true, the pcv contract will be paused after the withdraw
depositAfterboolif true, attempts to deposit to the target PCV deposit

withdrawERC20ToSafeAddress

function withdrawERC20ToSafeAddress(
address pcvDeposit,
address safeAddress,
address token,
uint256 amount,
bool pauseAfter,
bool depositAfter
) external

governor-or-guardian-only method to withdraw funds from a pcv deposit, by calling the withdraw() method on it

Parameters

NameTypeDescription
pcvDepositaddressthe deposit to pull funds from
safeAddressaddressthe destination address to withdraw to
tokenaddressthe token to withdraw
amountuint256the amount of funds to withdraw
pauseAfterboolwhether to pause the pcv after withdrawing
depositAfterboolif true, attempts to deposit to the target PCV deposit

Events

SafeAddressAdded

event SafeAddressAdded(
address safeAddress
)

Parameters

NameTypeDescription
safeAddressaddress

SafeAddressRemoved

event SafeAddressRemoved(
address safeAddress
)

Parameters

NameTypeDescription
safeAddressaddress

PCVGuardianWithdrawal

event PCVGuardianWithdrawal(
address pcvDeposit,
address destination,
uint256 amount
)

Parameters

NameTypeDescription
pcvDepositaddress
destinationaddress
amountuint256

PCVGuardianETHWithdrawal

event PCVGuardianETHWithdrawal(
address pcvDeposit,
address destination,
uint256 amount
)

Parameters

NameTypeDescription
pcvDepositaddress
destinationaddress
amountuint256

PCVGuardianERC20Withdrawal

event PCVGuardianERC20Withdrawal(
address pcvDeposit,
address destination,
address token,
uint256 amount
)

Parameters

NameTypeDescription
pcvDepositaddress
destinationaddress
tokenaddress
amountuint256