PP_Simple_v1.sol
Inherits: Module_v1, IPaymentProcessor_v1
Author: Inverter Network
Manages ERC20 payment processing for modules within the Inverter Network that are compliant with the {IERC20PaymentClientBase_v1} interface.
Inherits {Module_v1} and implements {IPaymentProcessor_v1} to handle payment orders from registered modules, ensuring only eligible modules can initiate payments. Utilizes {SafeERC20} for secure token transfers.
State Variables
unclaimableAmountsForRecipient
Tracks all payments that could not be made to the paymentReceiver due to any reason.
paymentClient => token address => paymentReceiver => unclaimable Amount.
mapping(address => mapping(address => mapping(address => uint))) internal
unclaimableAmountsForRecipient;
__gap
Gap for possible future upgrades.
uint[50] private __gap;
Functions
supportsInterface
See {IERC165-supportsInterface}.
function supportsInterface(bytes4 interfaceId)
public
view
virtual
override(Module_v1)
returns (bool);
onlyModule
Checks that the caller is an active module.
modifier onlyModule();
validClient
Checks that the client is calling for itself.
modifier validClient(IERC20PaymentClientBase_v1 client);
Public Functions
init
function init(
IOrchestrator_v1 orchestrator_,
Metadata memory metadata,
bytes memory
) external override(Module_v1) initializer;
processPayments
Processes all payments from an {IERC20PaymentClientBase_v1} instance. Please note: this function does not support callbacks on transfer of tokens.
It's up to the the implementation to keep up with what has been paid out or not.
function processPayments(IERC20PaymentClientBase_v1 client)
external
onlyModule
validClient(client);
Parameters
client
IERC20PaymentClientBase_v1
The {IERC20PaymentClientBase_v1} instance to process its to payments.
cancelRunningPayments
Cancels all unfinished payments from an {IERC20PaymentClientBase_v1} instance.
It's up to the the implementation to keep up with what has been paid out or not.
function cancelRunningPayments(IERC20PaymentClientBase_v1 client)
external
view
onlyModule
validClient(client);
Parameters
client
IERC20PaymentClientBase_v1
The {IERC20PaymentClientBase_v1} instance to process its to payments.
unclaimable
Getter for the amount of tokens that could not be claimed.
function unclaimable(address client, address token, address paymentReceiver)
public
view
returns (uint amount);
Parameters
client
address
address of the payment client.
token
address
address of the payment token.
paymentReceiver
address
PaymentReceiver's address.
Returns
amount
uint256
Amount of tokens that could not be claimed.
claimPreviouslyUnclaimable
claim every unclaimable amount that the paymentClient owes to the _msgSender and send it to a specified receiver.
This function should be callable if the _msgSender has unclaimedAmounts.
function claimPreviouslyUnclaimable(
address client,
address token,
address receiver
) external;
Parameters
client
address
The IERC20PaymentClientBase_v1 instance address that processes all claims from _msgSender.
token
address
address of the payment token.
receiver
address
The address that will receive the previously unclaimable amount.
validPaymentOrder
Function that checks if the given PaymentOrder was valid.
function validPaymentOrder(IERC20PaymentClientBase_v1.PaymentOrder memory order)
external
returns (bool);
Parameters
order
IERC20PaymentClientBase_v1.PaymentOrder
The IERC20PaymentClientBase_v1 Order that needs to be checked.
Returns
<none>
bool
valid Bool if the Payment Order is valid.
Internal Functions
_claimPreviouslyUnclaimable
used to claim the unclaimable amount of a particular paymentReceiver
for a given payment client.
function _claimPreviouslyUnclaimable(
address client,
address token,
address paymentReceiver
) internal;
Parameters
client
address
address of the payment client.
token
address
address of the payment token.
paymentReceiver
address
address of the paymentReceiver for which the unclaimable amount will be claimed.
_validPaymentReceiver
Validate address input.
function _validPaymentReceiver(address addr) internal view returns (bool);
Parameters
addr
address
Address to validate.
Returns
<none>
bool
True if address is valid.
_validTotal
Validate uint total amount input.
function _validTotal(uint _total) internal pure returns (bool);
Parameters
_total
uint256
uint to validate.
Returns
<none>
bool
True if uint is valid.
_validPaymentToken
Validate payment token input.
function _validPaymentToken(address _token) internal returns (bool);
Parameters
_token
address
Address of the token to validate.
Returns
<none>
bool
True if address is valid.
_validOriginAndTargetChain
function _validOriginAndTargetChain(uint originChainId_, uint targetChainId_)
internal
view
returns (bool);
Last updated