- Archived multiple non-EVM adapters (Algorand, Hedera, Tron, TON, Cosmos, Solana) and compliance contracts (IndyVerifier) to `archive/solidity/contracts/`. - Updated documentation to reflect the historical status of archived components. - Adjusted `foundry.toml` and `README.md` for clarity on historical dependencies and configurations. - Enhanced Makefile and package.json scripts for improved contract testing and building processes. - Removed obsolete contracts (AlltraCustomBridge, CommodityCCIPBridge, ISO4217WCCIPBridge, VaultBridgeAdapter) from the main directory. - Updated implementation reports to indicate archived status for various components.
48 lines
2.2 KiB
Solidity
48 lines
2.2 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.20;
|
|
|
|
import {Script, console} from "forge-std/Script.sol";
|
|
import {AaveQuotePushFlashReceiver} from "../../contracts/flash/AaveQuotePushFlashReceiver.sol";
|
|
|
|
/**
|
|
* @title SweepAaveQuotePushFlashReceiverSurplus
|
|
* @notice Owner-operated surplus recovery for a deployed AaveQuotePushFlashReceiver.
|
|
*
|
|
* Env:
|
|
* PRIVATE_KEY required (must be receiver owner)
|
|
* AAVE_QUOTE_PUSH_RECEIVER_MAINNET required
|
|
* QUOTE_PUSH_SURPLUS_TOKEN_MAINNET optional; defaults to USDC mainnet
|
|
* QUOTE_PUSH_SURPLUS_RECIPIENT optional; defaults to deployer derived from PRIVATE_KEY
|
|
* QUOTE_PUSH_SURPLUS_RESERVE_RAW optional; keep this much on receiver when sweeping surplus mode
|
|
* QUOTE_PUSH_SURPLUS_EXACT_AMOUNT_RAW optional; if > 0, sweep this exact amount via sweepToken()
|
|
*/
|
|
contract SweepAaveQuotePushFlashReceiverSurplus is Script {
|
|
address internal constant DEFAULT_USDC_MAINNET = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
|
|
|
|
function run() external {
|
|
uint256 pk = vm.envUint("PRIVATE_KEY");
|
|
address receiver = vm.envAddress("AAVE_QUOTE_PUSH_RECEIVER_MAINNET");
|
|
address token = vm.envOr("QUOTE_PUSH_SURPLUS_TOKEN_MAINNET", DEFAULT_USDC_MAINNET);
|
|
address deployer = vm.addr(pk);
|
|
address recipient = vm.envOr("QUOTE_PUSH_SURPLUS_RECIPIENT", deployer);
|
|
uint256 reserveRetained = vm.envOr("QUOTE_PUSH_SURPLUS_RESERVE_RAW", uint256(0));
|
|
uint256 exactAmount = vm.envOr("QUOTE_PUSH_SURPLUS_EXACT_AMOUNT_RAW", uint256(0));
|
|
|
|
console.log("receiver", receiver);
|
|
console.log("token", token);
|
|
console.log("recipient", recipient);
|
|
console.log("reserveRetained", reserveRetained);
|
|
console.log("exactAmount", exactAmount);
|
|
|
|
vm.startBroadcast(pk);
|
|
if (exactAmount > 0) {
|
|
AaveQuotePushFlashReceiver(receiver).sweepToken(token, recipient, exactAmount);
|
|
console.log("sweptExact", exactAmount);
|
|
} else {
|
|
uint256 swept = AaveQuotePushFlashReceiver(receiver).sweepQuoteSurplus(token, recipient, reserveRetained);
|
|
console.log("sweptSurplus", swept);
|
|
}
|
|
vm.stopBroadcast();
|
|
}
|
|
}
|