Skip to content

Commit

Permalink
make all methods payable
Browse files Browse the repository at this point in the history
  • Loading branch information
ZumZoom committed Sep 4, 2024
1 parent ffa73ab commit 4f0281f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 16 deletions.
16 changes: 8 additions & 8 deletions contracts/BalanceManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ abstract contract BalanceManager is IERC1271, IBalanceManager {
/**
* @notice See {IBalanceManager-arbitraryCalls}.
*/
function arbitraryCalls(address[] calldata targets, bytes[] calldata arguments) public {
function arbitraryCalls(address[] calldata targets, bytes[] calldata arguments) public payable {
uint256[] calldata values;
// solhint-disable-next-line no-inline-assembly
assembly ("memory-safe") {
Expand All @@ -42,7 +42,7 @@ abstract contract BalanceManager is IERC1271, IBalanceManager {
/**
* @notice See {IBalanceManager-arbitraryCalls}.
*/
function arbitraryCalls(address[] calldata targets, bytes[] calldata arguments, uint256[] calldata values) public onlyOwner {
function arbitraryCalls(address[] calldata targets, bytes[] calldata arguments, uint256[] calldata values) public payable onlyOwner {
unchecked {
uint256 length = targets.length;
if (length != arguments.length) revert LengthMismatch();
Expand All @@ -57,7 +57,7 @@ abstract contract BalanceManager is IERC1271, IBalanceManager {
/**
* @notice See {IBalanceManager-arbitraryCallsWithEthCheck}.
*/
function arbitraryCallsWithEthCheck(address[] calldata targets, bytes[] calldata arguments, uint256 minReturn) external {
function arbitraryCallsWithEthCheck(address[] calldata targets, bytes[] calldata arguments, uint256 minReturn) external payable {
uint256[] calldata values;
// solhint-disable-next-line no-inline-assembly
assembly ("memory-safe") {
Expand All @@ -75,7 +75,7 @@ abstract contract BalanceManager is IERC1271, IBalanceManager {
bytes[] calldata arguments,
uint256[] calldata values,
uint256 minReturn
) public {
) public payable {
uint256 balanceBefore = msg.sender.balance;
arbitraryCalls(targets, arguments, values);
if (msg.sender.balance - balanceBefore < minReturn) revert NotEnoughProfit();
Expand All @@ -89,7 +89,7 @@ abstract contract BalanceManager is IERC1271, IBalanceManager {
bytes[] calldata arguments,
IERC20 token,
uint256 minReturn
) external {
) external payable {
uint256[] calldata values;
// solhint-disable-next-line no-inline-assembly
assembly ("memory-safe") {
Expand All @@ -108,7 +108,7 @@ abstract contract BalanceManager is IERC1271, IBalanceManager {
uint256[] calldata values,
IERC20 token,
uint256 minReturn
) public {
) public payable {
uint256 balanceBefore = token.balanceOf(msg.sender);
arbitraryCalls(targets, arguments, values);
if (token.balanceOf(msg.sender) - balanceBefore < minReturn) revert NotEnoughProfit();
Expand All @@ -117,7 +117,7 @@ abstract contract BalanceManager is IERC1271, IBalanceManager {
/**
* @notice See {IBalanceManager-estimateArbitraryCalls}.
*/
function estimateArbitraryCalls(address[] calldata targets, bytes[] calldata arguments) external {
function estimateArbitraryCalls(address[] calldata targets, bytes[] calldata arguments) external payable {
uint256[] calldata values;
// solhint-disable-next-line no-inline-assembly
assembly ("memory-safe") {
Expand All @@ -130,7 +130,7 @@ abstract contract BalanceManager is IERC1271, IBalanceManager {
/**
* @notice See {IBalanceManager-estimateArbitraryCalls}.
*/
function estimateArbitraryCalls(address[] calldata targets, bytes[] calldata arguments, uint256[] calldata values) public onlyOwner {
function estimateArbitraryCalls(address[] calldata targets, bytes[] calldata arguments, uint256[] calldata values) public payable onlyOwner {
unchecked {
uint256 length = targets.length;
if (length != arguments.length) revert LengthMismatch();
Expand Down
16 changes: 8 additions & 8 deletions contracts/interfaces/IBalanceManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,23 @@ interface IBalanceManager{
* @param targets Addresses of the contracts to call.
* @param arguments Data to send to each contract.
*/
function arbitraryCalls(address[] calldata targets, bytes[] calldata arguments) external;
function arbitraryCalls(address[] calldata targets, bytes[] calldata arguments) external payable;

/**
* @notice Execute arbitrary calls.
* @param targets Addresses of the contracts to call.
* @param arguments Data to send to each contract.
* @param values Values to send to each contract.
*/
function arbitraryCalls(address[] calldata targets, bytes[] calldata arguments, uint256[] calldata values) external;
function arbitraryCalls(address[] calldata targets, bytes[] calldata arguments, uint256[] calldata values) external payable;

/**
* @notice Execute arbitrary calls and check the ETH balance after.
* @param targets Addresses of the contracts to call.
* @param arguments Data to send to each contract.
* @param minReturn Minimum amount of ETH balance after all calls.
*/
function arbitraryCallsWithEthCheck(address[] calldata targets, bytes[] calldata arguments, uint256 minReturn) external;
function arbitraryCallsWithEthCheck(address[] calldata targets, bytes[] calldata arguments, uint256 minReturn) external payable;

/**
* @notice Execute arbitrary calls and check the ETH balance after.
Expand All @@ -50,7 +50,7 @@ interface IBalanceManager{
bytes[] calldata arguments,
uint256[] calldata values,
uint256 minReturn
) external;
) external payable;

/**
* @notice Execute arbitrary calls and check the token balance after.
Expand All @@ -64,7 +64,7 @@ interface IBalanceManager{
bytes[] calldata arguments,
IERC20 token,
uint256 minReturn
) external;
) external payable;

/**
* @notice Execute arbitrary calls and check the token balance after.
Expand All @@ -80,15 +80,15 @@ interface IBalanceManager{
uint256[] calldata values,
IERC20 token,
uint256 minReturn
) external;
) external payable;

/**
* @notice Estimate the results of arbitrary calls.
* @param targets Addresses of the contracts to call.
* @param arguments Data to send to each contract.
* @dev This function reverts results with `EstimationResults` error.
*/
function estimateArbitraryCalls(address[] calldata targets, bytes[] calldata arguments) external;
function estimateArbitraryCalls(address[] calldata targets, bytes[] calldata arguments) external payable;

/**
* @notice Estimate the results of arbitrary calls.
Expand All @@ -97,7 +97,7 @@ interface IBalanceManager{
* @param values Values to send to each contract.
* @dev This function reverts results with `EstimationResults` error.
*/
function estimateArbitraryCalls(address[] calldata targets, bytes[] calldata arguments, uint256[] calldata values) external;
function estimateArbitraryCalls(address[] calldata targets, bytes[] calldata arguments, uint256[] calldata values) external payable;

/**
* @notice Approves a spender to spend an infinite amount of tokens.
Expand Down

0 comments on commit 4f0281f

Please sign in to comment.