feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault.
- Token-aggregation service routes, planner, chain config, relay env templates.
- Config snapshots and multi-chain deployment markdown updates.
- gitignore services/btc-intake/dist/ (tsc output); do not track dist.
Run forge build && forge test before deploy (large solc graph).
Made-with: Cursor
2026-04-07 23:40:52 -07:00
|
|
|
// 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 DeployAaveQuotePushFlashReceiver
|
|
|
|
|
* @notice Deploy the Aave V3 quote-push flash receiver.
|
|
|
|
|
*
|
|
|
|
|
* Env:
|
|
|
|
|
* PRIVATE_KEY required
|
|
|
|
|
* AAVE_POOL_ADDRESS optional; defaults to Aave V3 mainnet Pool
|
2026-04-12 18:21:05 -07:00
|
|
|
* QUOTE_PUSH_RECEIVER_OWNER optional; defaults to deployer derived from PRIVATE_KEY
|
feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault.
- Token-aggregation service routes, planner, chain config, relay env templates.
- Config snapshots and multi-chain deployment markdown updates.
- gitignore services/btc-intake/dist/ (tsc output); do not track dist.
Run forge build && forge test before deploy (large solc graph).
Made-with: Cursor
2026-04-07 23:40:52 -07:00
|
|
|
*
|
|
|
|
|
* Usage:
|
|
|
|
|
* forge script script/deploy/DeployAaveQuotePushFlashReceiver.s.sol:DeployAaveQuotePushFlashReceiver \
|
|
|
|
|
* --rpc-url $ETHEREUM_MAINNET_RPC --broadcast -vvvv
|
|
|
|
|
*/
|
|
|
|
|
contract DeployAaveQuotePushFlashReceiver is Script {
|
|
|
|
|
address internal constant DEFAULT_AAVE_POOL_MAINNET = 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2;
|
|
|
|
|
|
|
|
|
|
function run() external {
|
|
|
|
|
uint256 pk = vm.envUint("PRIVATE_KEY");
|
|
|
|
|
address pool = vm.envOr("AAVE_POOL_ADDRESS", DEFAULT_AAVE_POOL_MAINNET);
|
|
|
|
|
address deployer = vm.addr(pk);
|
2026-04-12 18:21:05 -07:00
|
|
|
address owner = vm.envOr("QUOTE_PUSH_RECEIVER_OWNER", deployer);
|
feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault.
- Token-aggregation service routes, planner, chain config, relay env templates.
- Config snapshots and multi-chain deployment markdown updates.
- gitignore services/btc-intake/dist/ (tsc output); do not track dist.
Run forge build && forge test before deploy (large solc graph).
Made-with: Cursor
2026-04-07 23:40:52 -07:00
|
|
|
|
|
|
|
|
console.log("Deployer:", deployer);
|
|
|
|
|
console.log("Aave Pool:", pool);
|
2026-04-12 18:21:05 -07:00
|
|
|
console.log("Receiver owner:", owner);
|
feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault.
- Token-aggregation service routes, planner, chain config, relay env templates.
- Config snapshots and multi-chain deployment markdown updates.
- gitignore services/btc-intake/dist/ (tsc output); do not track dist.
Run forge build && forge test before deploy (large solc graph).
Made-with: Cursor
2026-04-07 23:40:52 -07:00
|
|
|
|
|
|
|
|
vm.startBroadcast(pk);
|
2026-04-12 18:21:05 -07:00
|
|
|
AaveQuotePushFlashReceiver receiver = new AaveQuotePushFlashReceiver(pool, owner);
|
feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault.
- Token-aggregation service routes, planner, chain config, relay env templates.
- Config snapshots and multi-chain deployment markdown updates.
- gitignore services/btc-intake/dist/ (tsc output); do not track dist.
Run forge build && forge test before deploy (large solc graph).
Made-with: Cursor
2026-04-07 23:40:52 -07:00
|
|
|
vm.stopBroadcast();
|
|
|
|
|
|
|
|
|
|
console.log("AaveQuotePushFlashReceiver:", address(receiver));
|
|
|
|
|
}
|
|
|
|
|
}
|