cleanup script

cleanup script

diff --git a/.env.example b/.env.example
index a537275..5b8feaf 100644
--- a/.env.example
+++ b/.env.example
@@ -1 +1 @@
-STACKUP_KEY=
\ No newline at end of file
+THIRDWEB_API_KEY=
\ No newline at end of file
diff --git a/README.md b/README.md
index 1883d21..a28eb8b 100644
--- a/README.md
+++ b/README.md
@@ -16,20 +16,22 @@ yarn dev # yarn
 
 ## Configuration
 
-The things to change to switch the type of smart wallets deployed are in `index.ts`:
+The script runs on goerli by default, but requires a thirdweb API key.
 
-`‍``ts
-const chain = Goerli; // your chain
-const factoryAddress = "0x..."; // your own factory address
-const accountId = "..."; // a username, email, etc
+paste your api key in your .env file:
+
+`‍``.env
+THIRDWEB_API_KEY={{your_api_key}}
 `‍``
 
-## Contract Requirements:
+## Chains
 
-For the current scripts:
+The script runs on goerli by default, you can change it in `index.ts`
 
-- `AccountFactory` should have a `function createAccount(address owner,uint256 salt)` that deploys a new `Account` contract. [See sample implementation](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/samples/SimpleAccountFactory.sol#L28)
+`‍``ts
+const chain = Goerli; // your chain: Mumbai, BaseGoerli, OptimismGoerli, etc
+`‍``
 
-- `Account` should extend [BaseAccount](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/core/BaseAccount.sol) and have a simple `function execute(address dest, uint256 value, bytes calldata func)` to execute transactions.
+## Contract Requirements:
 
-This is all changeable, and can easily changed in the script if needed in `lib/account.ts`
+The script has default factories out of the box for testnets, but you can deploy your own on the [thirdweb dashboard](https://thirdweb.com/explore).
diff --git a/artifacts/TWAccount.json b/artifacts/TWAccount.json
deleted file mode 100644
index 6f6477e..0000000
--- a/artifacts/TWAccount.json
+++ /dev/null
@@ -1,7108 +0,0 @@
-{
-  "abi": [
-    {
-      "inputs": [
-        {
-          "internalType": "contract IEntryPoint",
-          "name": "_entrypoint",
-          "type": "address"
-        }
-      ],
-      "stateMutability": "nonpayable",
-      "type": "constructor"
-    },
-    {
-      "anonymous": false,
-      "inputs": [
-        {
-          "indexed": false,
-          "internalType": "string",
-          "name": "prevURI",
-          "type": "string"
-        },
-        {
-          "indexed": false,
-          "internalType": "string",
-          "name": "newURI",
-          "type": "string"
-        }
-      ],
-      "name": "ContractURIUpdated",
-      "type": "event"
-    },
-    {
-      "anonymous": false,
-      "inputs": [
-        {
-          "indexed": false,
-          "internalType": "uint8",
-          "name": "version",
-          "type": "uint8"
-        }
-      ],
-      "name": "Initialized",
-      "type": "event"
-    },
-    {
-      "anonymous": false,
-      "inputs": [
-        {
-          "indexed": true,
-          "internalType": "bytes32",
-          "name": "role",
-          "type": "bytes32"
-        },
-        {
-          "indexed": true,
-          "internalType": "bytes32",
-          "name": "previousAdminRole",
-          "type": "bytes32"
-        },
-        {
-          "indexed": true,
-          "internalType": "bytes32",
-          "name": "newAdminRole",
-          "type": "bytes32"
-        }
-      ],
-      "name": "RoleAdminChanged",
-      "type": "event"
-    },
-    {
-      "anonymous": false,
-      "inputs": [
-        {
-          "indexed": true,
-          "internalType": "bytes32",
-          "name": "role",
-          "type": "bytes32"
-        },
-        {
-          "indexed": true,
-          "internalType": "address",
-          "name": "account",
-          "type": "address"
-        },
-        {
-          "indexed": true,
-          "internalType": "address",
-          "name": "sender",
-          "type": "address"
-        }
-      ],
-      "name": "RoleGranted",
-      "type": "event"
-    },
-    {
-      "anonymous": false,
-      "inputs": [
-        {
-          "indexed": true,
-          "internalType": "bytes32",
-          "name": "role",
-          "type": "bytes32"
-        },
-        {
-          "indexed": true,
-          "internalType": "address",
-          "name": "account",
-          "type": "address"
-        },
-        {
-          "indexed": true,
-          "internalType": "address",
-          "name": "sender",
-          "type": "address"
-        }
-      ],
-      "name": "RoleRevoked",
-      "type": "event"
-    },
-    {
-      "inputs": [],
-      "name": "DEFAULT_ADMIN_ROLE",
-      "outputs": [
-        {
-          "internalType": "bytes32",
-          "name": "",
-          "type": "bytes32"
-        }
-      ],
-      "stateMutability": "view",
-      "type": "function"
-    },
-    {
-      "inputs": [],
-      "name": "SIGNER_ROLE",
-      "outputs": [
-        {
-          "internalType": "bytes32",
-          "name": "",
-          "type": "bytes32"
-        }
-      ],
-      "stateMutability": "view",
-      "type": "function"
-    },
-    {
-      "inputs": [],
-      "name": "addDeposit",
-      "outputs": [],
-      "stateMutability": "payable",
-      "type": "function"
-    },
-    {
-      "inputs": [],
-      "name": "contractURI",
-      "outputs": [
-        {
-          "internalType": "string",
-          "name": "",
-          "type": "string"
-        }
-      ],
-      "stateMutability": "view",
-      "type": "function"
-    },
-    {
-      "inputs": [],
-      "name": "entryPoint",
-      "outputs": [
-        {
-          "internalType": "contract IEntryPoint",
-          "name": "",
-          "type": "address"
-        }
-      ],
-      "stateMutability": "view",
-      "type": "function"
-    },
-    {
-      "inputs": [
-        {
-          "internalType": "address",
-          "name": "_target",
-          "type": "address"
-        },
-        {
-          "internalType": "uint256",
-          "name": "_value",
-          "type": "uint256"
-        },
-        {
-          "internalType": "bytes",
-          "name": "_calldata",
-          "type": "bytes"
-        }
-      ],
-      "name": "execute",
-      "outputs": [],
-      "stateMutability": "nonpayable",
-      "type": "function"
-    },
-    {
-      "inputs": [
-        {
-          "internalType": "address[]",
-          "name": "_target",
-          "type": "address[]"
-        },
-        {
-          "internalType": "uint256[]",
-          "name": "_value",
-          "type": "uint256[]"
-        },
-        {
-          "internalType": "bytes[]",
-          "name": "_calldata",
-          "type": "bytes[]"
-        }
-      ],
-      "name": "executeBatch",
-      "outputs": [],
-      "stateMutability": "nonpayable",
-      "type": "function"
-    },
-    {
-      "inputs": [],
-      "name": "getDeposit",
-      "outputs": [
-        {
-          "internalType": "uint256",
-          "name": "",
-          "type": "uint256"
-        }
-      ],
-      "stateMutability": "view",
-      "type": "function"
-    },
-    {
-      "inputs": [
-        {
-          "internalType": "bytes32",
-          "name": "role",
-          "type": "bytes32"
-        }
-      ],
-      "name": "getRoleAdmin",
-      "outputs": [
-        {
-          "internalType": "bytes32",
-          "name": "",
-          "type": "bytes32"
-        }
-      ],
-      "stateMutability": "view",
-      "type": "function"
-    },
-    {
-      "inputs": [
-        {
-          "internalType": "bytes32",
-          "name": "role",
-          "type": "bytes32"
-        },
-        {
-          "internalType": "uint256",
-          "name": "index",
-          "type": "uint256"
-        }
-      ],
-      "name": "getRoleMember",
-      "outputs": [
-        {
-          "internalType": "address",
-          "name": "member",

[... diff too long, it was truncated ...]

GitHub
sha: 64a017eca00e518e21e087de09813496d0fbf9ef