49 lines
1.9 KiB
Solidity
49 lines
1.9 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.20;
|
|
|
|
import "forge-std/Script.sol";
|
|
import "forge-std/console.sol";
|
|
import "../../contracts/smart-accounts/AccountWalletRegistryExtended.sol";
|
|
|
|
/**
|
|
* @title DeployAccountWalletRegistryExtended
|
|
* @notice Deploys the extended AccountWalletRegistry with Smart Account support
|
|
* @dev This script deploys AccountWalletRegistryExtended to ChainID 138
|
|
*/
|
|
contract DeployAccountWalletRegistryExtended is Script {
|
|
function run() external {
|
|
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
|
address deployer = vm.addr(deployerPrivateKey);
|
|
string memory rpcUrl = vm.envString("RPC_URL_138");
|
|
|
|
// Get addresses from environment or config
|
|
address smartAccountFactory = vm.envAddress("SMART_ACCOUNT_FACTORY");
|
|
address entryPoint = vm.envAddress("ENTRY_POINT");
|
|
|
|
console.log("Deployer:", deployer);
|
|
console.log("RPC URL:", rpcUrl);
|
|
console.log("Chain ID: 138");
|
|
console.log("Smart Account Factory:", smartAccountFactory);
|
|
console.log("EntryPoint:", entryPoint);
|
|
|
|
vm.startBroadcast(deployerPrivateKey);
|
|
|
|
// Deploy AccountWalletRegistryExtended
|
|
AccountWalletRegistryExtended extendedRegistry = new AccountWalletRegistryExtended(
|
|
deployer, // admin
|
|
smartAccountFactory,
|
|
entryPoint
|
|
);
|
|
|
|
vm.stopBroadcast();
|
|
|
|
console.log("\n=== Deployment Summary ===");
|
|
console.log("AccountWalletRegistryExtended:", address(extendedRegistry));
|
|
console.log("\nNext steps:");
|
|
console.log("1. Grant ACCOUNT_MANAGER_ROLE to authorized addresses");
|
|
console.log("2. Update AccountWalletRegistry references in SettlementOrchestrator");
|
|
console.log("3. Test linking smart accounts");
|
|
console.log("4. Test linking EOA wallets");
|
|
}
|
|
}
|