Files
smom-dbis-138/script/smart-accounts/DeployAccountWalletRegistryExtended.s.sol
2026-03-02 12:14:09 -08:00

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");
}
}