contract Destructor {
    fallback() external {
        selfdestruct(payable(0));
    }
}
const SmartWallet = await ethers.getContractFactory("SmartAccount");
const baseImpl = await SmartWallet.deploy();
await baseImpl.deployed();
console.log("base wallet impl deployed at: ", baseImpl.address);
// Constructor ensures that this implementation contract can not be initialized
constructor() public {
    owner = address(1);
}
