Repository: tellor-io/telliot-feeds (language: python)

Issue:
Remove deprecated Rinkeby code & tests



Discussion / hints:
No:
```console
telliot_core:versions.py:10 telliot-core 0.1.7dev0
INFO     telliot_core:core.py:245 Connected to eth-rinkeby [default account: rnk-dev-acct-3], time: 2022-11-22 21:20:08.440021
```

Fix patch:
diff --git a/docs/getting-started.md b/docs/getting-started.md
index 87211c1c..ed6a9d34 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -60,7 +60,7 @@ Edit `~/telliot/endpoints.yaml` to configure Telliot to use your own endpoints.
 
 If you don't have an endpoint, a free one is available at [Infura.io](http://www.infura.io).  Simply replace `INFURA_API_KEY` with the one provided by Infura.
 
-Endpoints should be configured for both Ethereum mainnet and Rinkeby testnet.
+Endpoints should be configured for both Ethereum mainnet and Goerli testnet.
 
 **Warning! All telliot software and reporter feeds should be validated on testnets prior to deploying on mainnet.**
 
@@ -76,12 +76,6 @@ endpoints:
   provider: Infura
   url: wss://mainnet.infura.io/ws/v3/{INFURA_API_KEY}
   explorer: https://etherscan.io
-- type: RPCEndpoint
-  chain_id: 4
-  network: rinkeby
-  provider: Infura
-  url: wss://rinkeby.infura.io/ws/v3{INFURA_API_KEY}
-  explorer: https://rinkeby.etherscan.io
 - type: RPCEndpoint
   chain_id: 137
   network: mainnet
@@ -110,9 +104,6 @@ For example, to add an account called `my-matic-acct` for reporting on polygon m
     Confirm password: 
     Added new account my-matic-acct (address= 0xcd19cf65af3a3aea1f44a7cb0257fc7455f245f0) for use on chains (137,)
 
-Note that reporting accounts can be used for ETH mainnet (chain_id=1), Rinkeby testnet (chain_id=4), or Polygon testnet
-(chain_id=80001).  Also note that a single account/private key can be associated with multiple chains.
-
 Detailed instructions for managing EVM accounts can be found in the
 [`chained_accounts` package documentation](https://github.com/pydefi/chained-accounts). 
 
diff --git a/docs/usage.md b/docs/usage.md
index ad9ccd94..e9125346 100644
--- a/docs/usage.md
+++ b/docs/usage.md
@@ -12,25 +12,6 @@ $ telliot-feeds --account fakename report
 
 **Be sure to always confirm the correct settings when prompted and read chain-specific usage sections before setting up your reporter!**
 
-```
-$ telliot-feeds -a fakename report
-telliot-core 0.0.10.dev1
-telliot_feeds (plugin): Version 0.0.12dev0
-Using: eth-rinkeby [staker: dev-acct-4]
-
-Reporting with synchronized queries
-Current chain ID: 4
-Expected percent profit: 100.0%
-Transaction type: 0
-Gas Limit: 350000
-Legacy gas price (gwei): None
-Max fee (gwei): None
-Priority fee (gwei): None
-Gas price speed: fast
-
-Press [ENTER] to confirm settings.
-```
-
 # Table of Contents
 
 - [Reporting Basics](#reporting-basics)
@@ -160,7 +141,7 @@ Both transaction types (0 & 2) are supported for reporting.
 
 ## Regular Usage
 
-It's not advised to report without Flashbots, unless on a testnet like Rinkeby, because transactions sent to the public mempool on Ethereum mainnet will most likely be [front-run](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/), so you'll lose money.
+It's not advised to report without Flashbots, unless on a testnet like Goerli, because transactions sent to the public mempool on Ethereum mainnet will most likely be [front-run](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/), so you'll lose money.
 
 If you want to report without flashbots on Ethereum mainnet, use the `--no-flashbots/-nfb` flag.
 
diff --git a/scripts/__init__.py b/scripts/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/scripts/abi.py b/scripts/abi.py
deleted file mode 100644
index 6d89beb8..00000000
--- a/scripts/abi.py
+++ /dev/null
@@ -1,903 +0,0 @@
-tellor_flex_abi = [
-    {
-        "inputs": [
-            {"internalType": "address", "name": "_token", "type": "address"},
-            {"internalType": "address", "name": "_governance", "type": "address"},
-            {"internalType": "uint256", "name": "_stakeAmount", "type": "uint256"},
-            {"internalType": "uint256", "name": "_reportingLock", "type": "uint256"},
-        ],
-        "stateMutability": "nonpayable",
-        "type": "constructor",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "address",
-                "name": "_newGovernanceAddress",
-                "type": "address",
-            }
-        ],
-        "name": "NewGovernanceAddress",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "bytes32",
-                "name": "_queryId",
-                "type": "bytes32",
-            },
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "_time",
-                "type": "uint256",
-            },
-            {
-                "indexed": False,
-                "internalType": "bytes",
-                "name": "_value",
-                "type": "bytes",
-            },
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "_nonce",
-                "type": "uint256",
-            },
-            {
-                "indexed": False,
-                "internalType": "bytes",
-                "name": "_queryData",
-                "type": "bytes",
-            },
-            {
-                "indexed": False,
-                "internalType": "address",
-                "name": "_reporter",
-                "type": "address",
-            },
-        ],
-        "name": "NewReport",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "_newReportingLock",
-                "type": "uint256",
-            }
-        ],
-        "name": "NewReportingLock",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "_newStakeAmount",
-                "type": "uint256",
-            }
-        ],
-        "name": "NewStakeAmount",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "address",
-                "name": "_staker",
-                "type": "address",
-            },
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "_amount",
-                "type": "uint256",
-            },
-        ],
-        "name": "NewStaker",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "address",
-                "name": "_reporter",
-                "type": "address",
-            },
-            {
-                "indexed": False,
-                "internalType": "address",
-                "name": "_recipient",
-                "type": "address",
-            },
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "_slashAmount",
-                "type": "uint256",
-            },
-        ],
-        "name": "ReporterSlashed",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "address",
-                "name": "_staker",
-                "type": "address",
-            },
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "_amount",
-                "type": "uint256",
-            },
-        ],
-        "name": "StakeWithdrawRequested",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "address",
-                "name": "_staker",
-                "type": "address",
-            }
-        ],
-        "name": "StakeWithdrawn",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "bytes32",
-                "name": "_queryId",
-                "type": "bytes32",
-            },
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "_timestamp",
-                "type": "uint256",
-            },
-        ],
-        "name": "ValueRemoved",
-        "type": "event",
-    },
-    {
-        "inputs": [
-            {
-                "internalType": "address",
-                "name": "_newGovernanceAddress",
-                "type": "address",
-            }
-        ],
-        "name": "changeGovernanceAddress",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "uint256", "name": "_newReportingLock", "type": "uint256"}],
-        "name": "changeReportingLock",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "uint256", "name": "_newStakeAmount", "type": "uint256"}],
-        "name": "changeStakeAmount",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "uint256", "name": "_amount", "type": "uint256"}],
-        "name": "depositStake",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-            {"internalType": "uint256", "name": "_timestamp", "type": "uint256"},
-        ],
-        "name": "getBlockNumberByTimestamp",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "bytes32", "name": "_queryId", "type": "bytes32"}],
-        "name": "getCurrentValue",
-        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "getGovernanceAddress",
-        "outputs": [{"internalType": "address", "name": "", "type": "address"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "bytes32", "name": "_queryId", "type": "bytes32"}],
-        "name": "getNewValueCountbyQueryId",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-            {"internalType": "uint256", "name": "_timestamp", "type": "uint256"},
-        ],
-        "name": "getReportDetails",
-        "outputs": [
-            {"internalType": "address", "name": "", "type": "address"},
-            {"internalType": "bool", "name": "", "type": "bool"},
-        ],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-            {"internalType": "uint256", "name": "_timestamp", "type": "uint256"},
-        ],
-        "name": "getReporterByTimestamp",
-        "outputs": [{"internalType": "address", "name": "", "type": "address"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "address", "name": "_reporter", "type": "address"}],
-        "name": "getReporterLastTimestamp",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "getReportingLock",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "address", "name": "_reporter", "type": "address"}],
-        "name": "getReportsSubmittedByAddress",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "_reporter", "type": "address"},
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-        ],
-        "name": "getReportsSubmittedByAddressAndQueryId",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "getStakeAmount",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "address", "name": "_staker", "type": "address"}],
-        "name": "getStakerInfo",
-        "outputs": [
-            {"internalType": "uint256", "name": "", "type": "uint256"},
-            {"internalType": "uint256", "name": "", "type": "uint256"},
-            {"internalType": "uint256", "name": "", "type": "uint256"},
-            {"internalType": "uint256", "name": "", "type": "uint256"},
-            {"internalType": "uint256", "name": "", "type": "uint256"},
-        ],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "getTimeOfLastNewValue",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-            {"internalType": "uint256", "name": "_timestamp", "type": "uint256"},
-        ],
-        "name": "getTimestampIndexByTimestamp",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-            {"internalType": "uint256", "name": "_index", "type": "uint256"},
-        ],
-        "name": "getTimestampbyQueryIdandIndex",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "getTokenAddress",
-        "outputs": [{"internalType": "address", "name": "", "type": "address"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "getTotalStakeAmount",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "governance",
-        "outputs": [{"internalType": "address", "name": "", "type": "address"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-            {"internalType": "uint256", "name": "_timestamp", "type": "uint256"},
-        ],
-        "name": "removeValue",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "reportingLock",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "uint256", "name": "_amount", "type": "uint256"}],
-        "name": "requestStakingWithdraw",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-            {"internalType": "uint256", "name": "_timestamp", "type": "uint256"},
-        ],
-        "name": "retrieveData",
-        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "_reporter", "type": "address"},
-            {"internalType": "address", "name": "_recipient", "type": "address"},
-        ],
-        "name": "slashReporter",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "stakeAmount",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "_queryId", "type": "bytes32"},
-            {"internalType": "bytes", "name": "_value", "type": "bytes"},
-            {"internalType": "uint256", "name": "_nonce", "type": "uint256"},
-            {"internalType": "bytes", "name": "_queryData", "type": "bytes"},
-        ],
-        "name": "submitValue",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "timeOfLastNewValue",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "token",
-        "outputs": [{"internalType": "contract IERC20", "name": "", "type": "address"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "totalStakeAmount",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "withdrawStake",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "spender", "type": "address"},
-            {"internalType": "uint256", "name": "amount", "type": "uint256"},
-        ],
-        "name": "approve",
-        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-]
-
-erc20_abi = [
-    {"inputs": [], "stateMutability": "nonpayable", "type": "constructor"},
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": True,
-                "internalType": "address",
-                "name": "owner",
-                "type": "address",
-            },
-            {
-                "indexed": True,
-                "internalType": "address",
-                "name": "spender",
-                "type": "address",
-            },
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "value",
-                "type": "uint256",
-            },
-        ],
-        "name": "Approval",
-        "type": "event",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": False,
-                "internalType": "address",
-                "name": "userAddress",
-                "type": "address",
-            },
-            {
-                "indexed": False,
-                "internalType": "address payable",
-                "name": "relayerAddress",
-                "type": "address",
-            },
-            {
-                "indexed": False,
-                "internalType": "bytes",
-                "name": "functionSignature",
-                "type": "bytes",
-            },
-        ],
-        "name": "MetaTransactionExecuted",
-        "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",
-    },
-    {
-        "anonymous": False,
-        "inputs": [
-            {
-                "indexed": True,
-                "internalType": "address",
-                "name": "from",
-                "type": "address",
-            },
-            {
-                "indexed": True,
-                "internalType": "address",
-                "name": "to",
-                "type": "address",
-            },
-            {
-                "indexed": False,
-                "internalType": "uint256",
-                "name": "value",
-                "type": "uint256",
-            },
-        ],
-        "name": "Transfer",
-        "type": "event",
-    },
-    {
-        "inputs": [],
-        "name": "CHILD_CHAIN_ID",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "CHILD_CHAIN_ID_BYTES",
-        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "DEFAULT_ADMIN_ROLE",
-        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "DEPOSITOR_ROLE",
-        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "ERC712_VERSION",
-        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "ROOT_CHAIN_ID",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "ROOT_CHAIN_ID_BYTES",
-        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "owner", "type": "address"},
-            {"internalType": "address", "name": "spender", "type": "address"},
-        ],
-        "name": "allowance",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "spender", "type": "address"},
-            {"internalType": "uint256", "name": "amount", "type": "uint256"},
-        ],
-        "name": "approve",
-        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "address", "name": "account", "type": "address"}],
-        "name": "balanceOf",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "decimals",
-        "outputs": [{"internalType": "uint8", "name": "", "type": "uint8"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "spender", "type": "address"},
-            {"internalType": "uint256", "name": "subtractedValue", "type": "uint256"},
-        ],
-        "name": "decreaseAllowance",
-        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "user", "type": "address"},
-            {"internalType": "bytes", "name": "depositData", "type": "bytes"},
-        ],
-        "name": "deposit",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "userAddress", "type": "address"},
-            {"internalType": "bytes", "name": "functionSignature", "type": "bytes"},
-            {"internalType": "bytes32", "name": "sigR", "type": "bytes32"},
-            {"internalType": "bytes32", "name": "sigS", "type": "bytes32"},
-            {"internalType": "uint8", "name": "sigV", "type": "uint8"},
-        ],
-        "name": "executeMetaTransaction",
-        "outputs": [{"internalType": "bytes", "name": "", "type": "bytes"}],
-        "stateMutability": "payable",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "getChainId",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "pure",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "getDomainSeperator",
-        "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "address", "name": "user", "type": "address"}],
-        "name": "getNonce",
-        "outputs": [{"internalType": "uint256", "name": "nonce", "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": "", "type": "address"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "bytes32", "name": "role", "type": "bytes32"}],
-        "name": "getRoleMemberCount",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "role", "type": "bytes32"},
-            {"internalType": "address", "name": "account", "type": "address"},
-        ],
-        "name": "grantRole",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "role", "type": "bytes32"},
-            {"internalType": "address", "name": "account", "type": "address"},
-        ],
-        "name": "hasRole",
-        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "spender", "type": "address"},
-            {"internalType": "uint256", "name": "addedValue", "type": "uint256"},
-        ],
-        "name": "increaseAllowance",
-        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "string", "name": "name_", "type": "string"},
-            {"internalType": "string", "name": "symbol_", "type": "string"},
-            {"internalType": "uint8", "name": "decimals_", "type": "uint8"},
-            {"internalType": "address", "name": "childChainManager", "type": "address"},
-        ],
-        "name": "initialize",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "name",
-        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "role", "type": "bytes32"},
-            {"internalType": "address", "name": "account", "type": "address"},
-        ],
-        "name": "renounceRole",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "bytes32", "name": "role", "type": "bytes32"},
-            {"internalType": "address", "name": "account", "type": "address"},
-        ],
-        "name": "revokeRole",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "symbol",
-        "outputs": [{"internalType": "string", "name": "", "type": "string"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [],
-        "name": "totalSupply",
-        "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}],
-        "stateMutability": "view",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "recipient", "type": "address"},
-            {"internalType": "uint256", "name": "amount", "type": "uint256"},
-        ],
-        "name": "transfer",
-        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [
-            {"internalType": "address", "name": "sender", "type": "address"},
-            {"internalType": "address", "name": "recipient", "type": "address"},
-            {"internalType": "uint256", "name": "amount", "type": "uint256"},
-        ],
-        "name": "transferFrom",
-        "outputs": [{"internalType": "bool", "name": "", "type": "bool"}],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-    {
-        "inputs": [{"internalType": "uint256", "name": "amount", "type": "uint256"}],
-        "name": "withdraw",
-        "outputs": [],
-        "stateMutability": "nonpayable",
-        "type": "function",
-    },
-]
diff --git a/scripts/flashbots_eip1559.py b/scripts/flashbots_eip1559.py
deleted file mode 100644
index 4ad8a7e4..00000000
--- a/scripts/flashbots_eip1559.py
+++ /dev/null
@@ -1,126 +0,0 @@
-# Majority of this code from web3-flashbots:
-# https://github.com/flashbots/web3-flashbots
-"""
-Minimal viable example of flashbots usage with dynamic fee transactions.
-"""
-import asyncio
-import os
-
-from dotenv import find_dotenv
-from dotenv import load_dotenv
-from eth_account.account import Account
-from eth_account.signers.local import LocalAccount
-from web3 import HTTPProvider
-from web3 import Web3
-from web3.exceptions import TransactionNotFound
-from web3.types import TxParams
-
-from telliot_feeds.flashbots import flashbot
-from telliot_feeds.sources.etherscan_gas import EtherscanGasPriceSource
-
-
-load_dotenv(find_dotenv())
-
-
-def env(key: str) -> str:
-    return os.environ.get(key)
-
-
-async def main() -> None:
-    # account to send the transfer and sign transactions
-    sender: LocalAccount = Account.from_key(env("SENDER_PRIVATE_KEY"))
-    # account to receive the transfer
-    receiver: LocalAccount = Account.from_key(env("RECEIVER_PRIVATE_KEY"))
-    # account to establish flashbots reputation
-    # NOTE: it should not store funds
-    signature: LocalAccount = Account.from_key(env("SIGNATURE_PRIVATE_KEY"))
-
-    w3 = Web3(HTTPProvider(env("PROVIDER")))
-    flashbot(w3, signature, env("FLASHBOTS_HTTP_PROVIDER_URI"))
-
-    print(
-        f"""
-        Sender account balance:
-        {Web3.fromWei(w3.eth.get_balance(sender.address), 'ether')} ETH
-        """
-    )
-    print(
-        f"""
-        Receiver account balance:
-        {Web3.fromWei(w3.eth.get_balance(receiver.address), 'ether')} ETH
-        """
-    )
-
-    # bundle two EIP-1559 (type 2) transactions, pre-sign one of them
-    # NOTE: chainId is necessary for all EIP-1559 txns
-    # NOTE: nonce is required for signed txns
-    chain_id = 1
-    print("chain id:", chain_id)
-
-    c = EtherscanGasPriceSource()
-    result = await c.fetch_new_datapoint()
-    next_base_fee = result[0].suggestBaseFee
-    print("next suggested base fee:", next_base_fee)
-    max_priority = result[0].FastGasPrice
-    print("priority fee:", max_priority)
-    max_fee = next_base_fee + max_priority
-    print("max fee:", max_fee)
-
-    nonce = w3.eth.get_transaction_count(sender.address)
-    tx1: TxParams = {
-        "to": receiver.address,
-        "value": Web3.toWei(0.00001, "ether"),
-        "gas": 25000,
-        "maxFeePerGas": Web3.toWei(max_fee, "gwei"),
-        "maxPriorityFeePerGas": Web3.toWei(5, "gwei"),
-        "nonce": nonce,
-        "chainId": chain_id,
-    }
-    tx1_signed = sender.sign_transaction(tx1)
-
-    tx2: TxParams = {
-        "to": receiver.address,
-        "value": Web3.toWei(0.00001, "ether"),
-        "gas": 25000,
-        "maxFeePerGas": Web3.toWei(max_fee, "gwei"),
-        "maxPriorityFeePerGas": Web3.toWei(max_priority, "gwei"),
-        "chainId": chain_id,
-    }
-
-    bundle = [
-        {"signed_transaction": tx1_signed.rawTransaction},
-        {"signer": sender, "transaction": tx2},
-    ]
-
-    # send bundle to be executed in the next 5 blocks
-    block = w3.eth.block_number
-    results = []
-    for target_block in [block + k for k in [1, 2, 3, 4, 5]]:
-        results.append(w3.flashbots.send_bundle(bundle, target_block_number=target_block))
-    print(f"Bundle sent to miners in block {block}")
-
-    # wait for the results
-    results[-1].wait()
-    try:
-        receipt = results[-1].receipts()
-        print(f"Bundle was executed in block {receipt[0].blockNumber}")
-    except TransactionNotFound:
-        print("Bundle was not executed")
-        return
-
-    print(
-        f"""
-        Sender account balance:
-        {Web3.fromWei(w3.eth.get_balance(sender.address), 'ether')} ETH
-        """
-    )
-    print(
-        f"""
-        Receiver account balance:
-        {Web3.fromWei(w3.eth.get_balance(receiver.address), 'ether')} ETH
-        """
-    )
-
-
-if __name__ == "__main__":
-    asyncio.run(main())
diff --git a/scripts/get_binance_tickers.py b/scripts/get_binance_tickers.py
deleted file mode 100644
index 1eaf724e..00000000
--- a/scripts/get_binance_tickers.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from binance.client import Client
-
-api_key = "xxx"
-api_secret = "xxx"
-
-client = Client()
-exchange_info = client.get_exchange_info()
-for s in exchange_info["symbols"]:
-    print(s["symbol"])
diff --git a/scripts/get_bitlyer_tickers.py b/scripts/get_bitlyer_tickers.py
deleted file mode 100644
index 86011547..00000000
--- a/scripts/get_bitlyer_tickers.py
+++ /dev/null
@@ -1,5 +0,0 @@
-import requests
-
-rsp = requests.get("https://api.bitflyer.com/v1/markets")
-print(rsp.status_code)
-print(rsp.json())
diff --git a/scripts/report_usd_vwap.py b/scripts/report_usd_vwap.py
deleted file mode 100644
index 12572c63..00000000
--- a/scripts/report_usd_vwap.py
+++ /dev/null
@@ -1,94 +0,0 @@
-"""Submits AMPL/USD/VWAP to TellorX on Rinkeby fifteen minutes
-past each midnight."""
-import asyncio
-from datetime import datetime
-from typing import Optional
-
-from telliot_core.apps.telliot_config import TelliotConfig
-from telliot_core.contract.contract import Contract
-from telliot_core.utils.abi import rinkeby_tellor_master
-from telliot_core.utils.abi import rinkeby_tellor_oracle
-
-from telliot_feeds.feeds.usd_vwap import ampl_usd_vwap_feed
-from telliot_feeds.reporters.interval import IntervalReporter
-from telliot_feeds.utils.log import get_logger
-
-
-logger = get_logger(__name__)
-
-
-def get_cfg() -> TelliotConfig:
-    """Get rinkeby endpoint from config
-
-    If environment variables are defined, they will override the values in config files
-    """
-    cfg = TelliotConfig()
-
-    # Override configuration for rinkeby testnet
-    cfg.main.chain_id = 4
-
-    _ = cfg.get_endpoint()
-
-    return cfg
-
-
-def get_master(cfg: TelliotConfig) -> Optional[Contract]:
-    """Helper function for connecting to a contract at an address"""
-    endpoint = cfg.get_endpoint()
-    if not endpoint:
-        logger.critical("Could not connect to master contract.")
-        return None
-
-    endpoint.connect()
-    master = Contract(
-        address="0x657b95c228A5de81cdc3F85be7954072c08A6042",
-        abi=rinkeby_tellor_master,  # type: ignore
-        node=endpoint,
-        private_key=cfg.main.private_key,
-    )
-    master.connect()
-    return master
-
-
-def get_oracle(cfg: TelliotConfig) -> Optional[Contract]:
-    """Helper function for connecting to a contract at an address"""
-    endpoint = cfg.get_endpoint()
-    if not endpoint:
-        logger.critical("Could not connect to master contract.")
-        return None
-
-    if endpoint:
-        endpoint.connect()
-    oracle = Contract(
-        address="0x07b521108788C6fD79F471D603A2594576D47477",
-        abi=rinkeby_tellor_oracle,  # type: ignore
-        node=endpoint,
-        private_key=cfg.main.private_key,
-    )
-    oracle.connect()
-    return oracle
-
-
-if __name__ == "__main__":
-    cfg = get_cfg()
-
-    master = get_master(cfg)
-    oracle = get_oracle(cfg)
-
-    rinkeby_endpoint = cfg.get_endpoint()
-
-    uspce_reporter = IntervalReporter(
-        endpoint=rinkeby_endpoint,
-        private_key=cfg.main.private_key,
-        master=master,
-        oracle=oracle,
-        datafeeds=[ampl_usd_vwap_feed],
-    )
-
-    # Report once UTC midnight passes
-    last_day = datetime.utcnow().day
-    while True:
-        day = datetime.utcnow().day
-        if day != last_day:
-            last_day = day
-            _ = asyncio.run(uspce_reporter.report_once())  # type: ignore
diff --git a/src/telliot_feeds/feeds/morphware.py b/src/telliot_feeds/feeds/morphware.py
deleted file mode 100644
index 19e605fd..00000000
--- a/src/telliot_feeds/feeds/morphware.py
+++ /dev/null
@@ -1,9 +0,0 @@
-"""Datafeed for reporting responses to the Morphware query type.
-
-More info: """
-from telliot_feeds.datafeed import DataFeed
-from telliot_feeds.queries.morphware import Morphware
-from telliot_feeds.sources.morphware import MorphwareV1Source
-
-
-morphware_v1_feed = DataFeed(query=Morphware(version=1), source=MorphwareV1Source())
diff --git a/scripts/generate_price_history_csv.py b/src/telliot_feeds/integrations/diva_protocol/generate_price_history_csv.py
similarity index 99%
rename from scripts/generate_price_history_csv.py
rename to src/telliot_feeds/integrations/diva_protocol/generate_price_history_csv.py
index b6a706a9..c2dc864d 100644
--- a/scripts/generate_price_history_csv.py
+++ b/src/telliot_feeds/integrations/diva_protocol/generate_price_history_csv.py
@@ -1,3 +1,4 @@
+# type: ignore
 import asyncio
 import csv
 from typing import Any
diff --git a/src/telliot_feeds/queries/morphware.py b/src/telliot_feeds/queries/morphware.py
deleted file mode 100644
index 6dcc9933..00000000
--- a/src/telliot_feeds/queries/morphware.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import logging
-from dataclasses import dataclass
-
-from telliot_feeds.dtypes.value_type import ValueType
-from telliot_feeds.queries.abi_query import AbiQuery
-
-logger = logging.getLogger(__name__)
-
-
-@dataclass
-class Morphware(AbiQuery):
-    """Returns the result for a given Morphware query version number.
-
-    Attributes:
-        version:
-            A reference to Morphware data specifications found
-            here: www.TODObyMorphware.org/path/to/data/specs
-
-            More about this query:
-            https://github.com/tellor-io/dataSpecs/blob/main/types/Morphware.md
-
-            More about Morphware:
-            https://morphware.org
-    """
-
-    version: int
-
-    #: ABI used for encoding/decoding parameters
-    abi = [{"name": "version", "type": "uint256"}]
-
-    @property
-    def value_type(self) -> ValueType:
-        """Data type returned for a Morphware query.
-
-        - `string[]`: Array containing JSON strings of Ec2Metadata objects.
-                    Interface Ec2MetaData {
-                        "Instance Type": str,
-                        "CUDA Cores": int,
-                        "Number of CPUs": int,
-                        "RAM": float,
-                        "On-demand Price per Hour": float,
-                    }
-                    Examples of this data type can be found in the tests for
-                    this query: tests/test_query_morphware.py
-        - `packed`: false
-        """
-        return ValueType(abi_type="string[]", packed=False)
diff --git a/src/telliot_feeds/sources/morphware.py b/src/telliot_feeds/sources/morphware.py
deleted file mode 100644
index 1b550fa1..00000000
--- a/src/telliot_feeds/sources/morphware.py
+++ /dev/null
@@ -1,93 +0,0 @@
-import json
-from dataclasses import dataclass
-from typing import Any
-from typing import Optional
-
-import requests
-from requests import JSONDecodeError
-from requests import Response
-from requests.adapters import HTTPAdapter
-from urllib3.util import Retry
-
-from telliot_feeds.datasource import DataSource
-from telliot_feeds.dtypes.datapoint import datetime_now_utc
-from telliot_feeds.dtypes.datapoint import OptionalDataPoint
-from telliot_feeds.utils.log import get_logger
-
-
-logger = get_logger(__name__)
-retry_strategy = Retry(
-    total=3,
-    backoff_factor=1,
-    status_forcelist=[429, 500, 502, 503, 504],
-    allowed_methods=["POST"],
-)
-adapter = HTTPAdapter(max_retries=retry_strategy)
-
-
-@dataclass
-class MorphwareV1Source(DataSource[str]):
-    """DataSource for Morphware query V1 expected response data."""
-
-    async def get_metadata(self) -> Optional[Response]:
-        """Fetches EC2 metadata from Morphware API."""
-
-        with requests.Session() as s:
-            # s.mount("https://", adapter)
-            s.mount("http://", adapter)
-            json_data = {
-                "provider": "amazon",
-                "service": "compute",
-                "region": "us-east-1",
-            }
-            try:
-                return s.post(
-                    "http://167.172.239.133:5000/products-2",
-                    headers=None,
-                    json=json_data,
-                    timeout=0.5,
-                )
-
-            except requests.exceptions.RequestException as e:
-                logger.error(f"Morphware V1 API error: {e}")
-                return None
-
-    def adjust_data_types(self, data: list[dict[str, Any]]) -> list[str]:
-        return [json.dumps(d) for d in data]
-
-    async def fetch_new_datapoint(self) -> OptionalDataPoint[Any]:
-        """Retrieves Amazon EC2 instance pricing metadata from API
-        hosted by Morphware.
-
-        Returns:
-            array of JSON object strings containing EC2 metadata:
-            Interface Ec2MetaData {
-                        "Instance Type": str,
-                        "CUDA Cores": int,
-                        "Number of CPUs": int,
-                        "RAM": float,
-                        "On-demand Price per Hour": float,
-                    }
-        """
-        rsp = await self.get_metadata()
-        if rsp is None:
-            logger.warning("No response from Morphware V1 API")
-            return None, None
-
-        try:
-            ec2_metadata = rsp.json()
-        except JSONDecodeError as e:
-            logger.error("Morphware V1 source returned invalid JSON:", e.strerror)
-            return None, None
-
-        if ec2_metadata == []:
-            logger.warning("Morphware V1 source returned no EC2 metadata")
-            return None, None
-
-        ec2_metadata = self.adjust_data_types(ec2_metadata)
-        datapoint = (ec2_metadata, datetime_now_utc())
-        self.store_datapoint(datapoint)
-
-        logger.info(f"Morphware query V1 data retrieved at time {datapoint[1]}")
-
-        return datapoint


Test patch:
diff --git a/scripts/flashbots_testnet_report.py b/scripts/flashbots_testnet_report.py
deleted file mode 100644
index d4a98277..00000000
--- a/scripts/flashbots_testnet_report.py
+++ /dev/null
@@ -1,134 +0,0 @@
-# Majority of this code from web3-flashbots:
-# https://github.com/flashbots/web3-flashbots
-"""
-Minimal viable example of flashbots usage with dynamic fee transactions.
-"""
-import asyncio
-import os
-
-from dotenv import find_dotenv
-from dotenv import load_dotenv
-from eth_account.account import Account
-from eth_account.signers.local import LocalAccount
-from web3 import HTTPProvider
-from web3 import Web3
-from web3.exceptions import TransactionNotFound
-from web3.middleware import geth_poa_middleware
-
-from telliot_feeds.feeds.trb_usd_feed import trb_usd_median_feed
-from telliot_feeds.flashbots import flashbot
-from telliot_feeds.flashbots.provider import get_default_endpoint
-from telliot_feeds.sources.etherscan_gas import EtherscanGasPriceSource
-from telliot_feeds.utils.abi import gorli_playground_abi
-
-
-load_dotenv(find_dotenv())
-
-
-def env(key: str) -> str:
-    return os.environ.get(key)
-
-
-async def main() -> None:
-    # account to send the transfer and sign transactions
-    account: LocalAccount = Account.from_key(env("SENDER_PRIVATE_KEY"))
-    # account to establish flashbots reputation
-    # NOTE: it should not store funds
-    signature: LocalAccount = Account.from_key(env("SIGNATURE_PRIVATE_KEY"))
-    chain_id = 5
-
-    w3 = Web3(HTTPProvider(env("PROVIDER")))
-    if chain_id == 5:
-        w3.middleware_onion.inject(geth_poa_middleware, layer=0)
-    # Goerli endpoint: https://relay-goerli.flashbots.net
-    endpoint = env("FLASHBOTS_HTTP_PROVIDER_URI") if chain_id == 5 else get_default_endpoint()
-    flashbot(w3, signature, endpoint)
-
-    print(
-        f"""Reporter account balance:
-        {Web3.fromWei(w3.eth.get_balance(account.address), 'ether')} ETH
-        """
-    )
-
-    playground_contract = w3.eth.contract(
-        address="0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7",  # Gorli contract addr
-        abi=gorli_playground_abi,
-    )
-
-    _ = await trb_usd_median_feed.source.fetch_new_datapoint()
-    latest_data = trb_usd_median_feed.source.latest
-    if latest_data[0] is None:
-        msg = "Unable to retrieve updated datafeed value."
-        print(msg)
-
-    query = trb_usd_median_feed.query
-    nonce_getter = playground_contract.get_function_by_name("getNewValueCountbyQueryId")
-    timestamp_count = nonce_getter(_queryId=query.query_id).call()
-    print("timestamp count (nonce):", timestamp_count)
-
-    submit_val_func = playground_contract.get_function_by_name("submitValue")
-    submit_val_tx = submit_val_func(
-        _queryId=query.query_id,
-        _value=query.value_type.encode(latest_data[0]),
-        _nonce=timestamp_count,
-        _queryData=query.query_data,
-    )
-    acc_nonce = w3.eth.get_transaction_count(account.address)
-
-    # fetch tip and base fee
-    c = EtherscanGasPriceSource()
-    result = await c.fetch_new_datapoint()
-    next_base_fee = result[0].suggestBaseFee
-    print("next suggested base fee:", next_base_fee)
-    max_priority = result[0].FastGasPrice
-    print("priority fee:", max_priority)
-    max_fee = next_base_fee + max_priority
-    print("max fee:", max_fee)
-
-    gas = 350000
-
-    built_submit_val_tx = submit_val_tx.buildTransaction(
-        {
-            "nonce": acc_nonce,
-            "gas": gas,
-            "maxFeePerGas": Web3.toWei(max_fee, "gwei"),
-            "maxPriorityFeePerGas": Web3.toWei(max_priority, "gwei"),
-            "chainId": chain_id,
-        }
-    )
-    submit_val_tx_signed = account.sign_transaction(built_submit_val_tx)
-
-    # bundle one pre-signed, EIP-1559 (type 2) transaction
-    # NOTE: chainId is necessary for all EIP-1559 txns
-    # NOTE: nonce is required for signed txns
-
-    bundle = [
-        {"signed_transaction": submit_val_tx_signed.rawTransaction},
-    ]
-
-    # send bundle to be executed in the next blocks
-    block = w3.eth.block_number
-    results = []
-    for target_block in [block + k for k in [1, 2, 3, 4, 5]]:
-        results.append(w3.flashbots.send_bundle(bundle, target_block_number=target_block))
-    print(f"Bundle sent to miners in block {block}")
-
-    # wait for the results
-    results[-1].wait()
-    try:
-        receipt = results[-1].receipts()
-        print(f"Bundle was executed in block {receipt[0].blockNumber}")
-    except TransactionNotFound:
-        print("Bundle was not executed")
-        return
-
-    print(
-        f"""
-    Sender account balance:
-    {Web3.fromWei(w3.eth.get_balance(account.address), 'ether')} ETH
-    """
-    )
-
-
-if __name__ == "__main__":
-    asyncio.run(main())
diff --git a/scripts/submit_polygon_testnet.py b/scripts/submit_polygon_testnet.py
deleted file mode 100644
index 9a0bf965..00000000
--- a/scripts/submit_polygon_testnet.py
+++ /dev/null
@@ -1,193 +0,0 @@
-import asyncio
-import os
-
-from abi import erc20_abi
-from abi import tellor_flex_abi
-from dotenv import find_dotenv
-from dotenv import load_dotenv
-from eth_account.account import Account
-from eth_account.signers.local import LocalAccount
-from web3 import HTTPProvider
-from web3 import Web3
-from web3.middleware import geth_poa_middleware
-
-from telliot_feeds.feeds.trb_usd_feed import trb_usd_median_feed
-
-
-load_dotenv(find_dotenv())
-
-
-def env(key: str) -> str:
-    return os.environ.get(key)
-
-
-async def main() -> None:
-    account: LocalAccount = Account.from_key(env("polygon_pk"))
-
-    chain_id = 80001
-    staking_amount = int(1e18 * 10)  # 10 trb
-    print("staking amount:", staking_amount)
-
-    w3 = Web3(HTTPProvider(env("polygon_endpoint_url")))
-    if chain_id == 80001:
-        w3.middleware_onion.inject(geth_poa_middleware, layer=0)
-
-    print("address:", account.address)
-    print(
-        f"""Reporter account balance:
-        {Web3.fromWei(w3.eth.get_balance(account.address), 'ether')} MATIC
-        """
-    )
-
-    # Mainnet
-    if chain_id == 137:
-        flex_address = "0xFd45Ae72E81Adaaf01cC61c8bCe016b7060DD537"
-        trb_address = "0xE3322702BEdaaEd36CdDAb233360B939775ae5f1"
-    # Mumbai testnet
-    else:
-        flex_address = "0x41b66dd93b03e89D29114a7613A6f9f0d4F40178"
-        trb_address = "0x45cAF1aae42BA5565EC92362896cc8e0d55a2126"
-
-    oracle = w3.eth.contract(
-        address=flex_address,
-        abi=tellor_flex_abi,
-    )
-
-    trb_polygon = w3.eth.contract(
-        address=trb_address,
-        abi=erc20_abi,
-    )
-
-    staker_info_func = oracle.get_function_by_name("getStakerInfo")
-    staker_info = staker_info_func(_staker=account.address).call()
-    (
-        staker_startdate,
-        staked_balance,
-        locked_balance,
-        last_report,
-        num_reports,
-    ) = staker_info
-    print("staker start date:", staker_startdate)
-    print("staked balance:", staked_balance)
-    print("locked balance:", locked_balance)
-    print("last report:", last_report)
-    print("num reports:", num_reports)
-
-    # # Transfer TRB & MATIC to dev-acct-9
-    # print('testing transfer')
-    # transfer_func = trb_polygon.get_function_by_name("transfer")
-    # acc_nonce = w3.eth.get_transaction_count(account.address)
-    # transfer_tx_dict = {
-    #     "nonce": acc_nonce,
-    #     "gas": 70000,
-    #     "maxFeePerGas": Web3.toWei(1000, "gwei"),
-    #     "maxPriorityFeePerGas": Web3.toWei(100, "gwei"),
-    #     "chainId": chain_id,
-    # }
-    # transfer_func = transfer_func(
-    #     recipient="0xE0Fe38e04b8952120a8015bE08248aC85891b477", # dev-acct-9
-    #     amount=1)
-    # built_transfer_func = transfer_func.buildTransaction(transfer_tx_dict)
-    # tx_signed = account.sign_transaction(built_transfer_func)
-    # tx_hash = w3.eth.send_raw_transaction(tx_signed.rawTransaction)
-
-    # tx_receipt = w3.eth.wait_for_transaction_receipt(
-    #     tx_hash, timeout=360
-    # )
-    # print(tx_receipt)
-
-    # tx_url = f"https://polygonscan.com/tx/{tx_hash.hex()}"
-
-    # print(f"view transfer transaction: ({tx_url})")
-
-    if staker_startdate == 0:
-        print()
-        print("approving deposit stake")
-        approve_func = trb_polygon.get_function_by_name("approve")
-        acc_nonce = w3.eth.get_transaction_count(account.address)
-        approve_tx_dict = {
-            "nonce": acc_nonce,
-            "gas": 100000,
-            "maxFeePerGas": Web3.toWei(1000, "gwei"),
-            "maxPriorityFeePerGas": Web3.toWei(100, "gwei"),
-            "chainId": chain_id,
-        }
-        approve_func = approve_func(spender=flex_address, amount=staking_amount)
-        built_approve_func = approve_func.buildTransaction(approve_tx_dict)
-        tx_signed = account.sign_transaction(built_approve_func)
-        tx_hash = w3.eth.send_raw_transaction(tx_signed.rawTransaction)
-
-        tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash, timeout=360)
-        print(tx_receipt)
-
-        tx_url = f"https://polygonscan.com/tx/{tx_hash.hex()}"
-
-        print(f"view approve transaction: ({tx_url})")
-
-        print("depositing stake")
-        stake_func = oracle.get_function_by_name("depositStake")
-        acc_nonce = w3.eth.get_transaction_count(account.address)
-        stake_tx_dict = {
-            "nonce": acc_nonce,
-            "gas": 300000,
-            "maxFeePerGas": Web3.toWei(1000, "gwei"),
-            "maxPriorityFeePerGas": Web3.toWei(100, "gwei"),
-            "chainId": chain_id,
-        }
-        stake_func = stake_func(_amount=staking_amount)
-        built_stake_func = stake_func.buildTransaction(stake_tx_dict)
-        tx_signed = account.sign_transaction(built_stake_func)
-        tx_hash = w3.eth.send_raw_transaction(tx_signed.rawTransaction)
-
-        tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash, timeout=360)
-        print(tx_receipt)
-
-        tx_url = f"https://polygonscan.com/tx/{tx_hash.hex()}"
-
-        print(f"view deposit stake transaction: ({tx_url})")
-
-    _ = await trb_usd_median_feed.source.fetch_new_datapoint()
-    latest_data = trb_usd_median_feed.source.latest
-    if latest_data[0] is None:
-        msg = "Unable to retrieve updated datafeed value."
-        print(msg)
-
-    query = trb_usd_median_feed.query
-    nonce_getter = oracle.get_function_by_name("getNewValueCountbyQueryId")
-    timestamp_count = nonce_getter(_queryId=query.query_id).call()
-    print("timestamp count (nonce):", timestamp_count)
-
-    submit_val_func = oracle.get_function_by_name("submitValue")
-    submit_val_tx = submit_val_func(
-        _queryId=query.query_id,
-        _value=query.value_type.encode(latest_data[0]),
-        _nonce=timestamp_count,
-        _queryData=query.query_data,
-    )
-    acc_nonce = w3.eth.get_transaction_count(account.address)
-
-    gas = 350000
-
-    built_submit_val_tx = submit_val_tx.buildTransaction(
-        {
-            "nonce": acc_nonce,
-            "gas": gas,
-            "maxFeePerGas": Web3.toWei(1000, "gwei"),
-            "maxPriorityFeePerGas": Web3.toWei(100, "gwei"),
-            "chainId": chain_id,
-        }
-    )
-    tx_signed = account.sign_transaction(built_submit_val_tx)
-
-    tx_hash = w3.eth.send_raw_transaction(tx_signed.rawTransaction)
-
-    tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash, timeout=360)
-    print(tx_receipt)
-
-    tx_url = f"https://polygonscan.com/tx/{tx_hash.hex()}"
-
-    print(f"transaction succeeded. ({tx_url})")
-
-
-if __name__ == "__main__":
-    asyncio.run(main())
diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py
index bc9eae61..8d274747 100644
--- a/tests/cli/test_cli.py
+++ b/tests/cli/test_cli.py
@@ -49,16 +49,16 @@ def test_build_feed_from_input(capsys):
 
 def test_parse_profit_input():
     """Test reading in custom expected profit from user."""
-    result = parse_profit_input("YOLO")
+    result = parse_profit_input({}, None, "YOLO")
     assert isinstance(result, str)
     assert result == "YOLO"
 
-    result = parse_profit_input("1234.1234")
+    result = parse_profit_input({}, None, "1234.1234")
     assert isinstance(result, float)
     assert result == 1234.1234
 
     with pytest.raises(click.BadParameter):
-        _ = parse_profit_input("asdf")
+        _ = parse_profit_input({}, None, "asdf")
 
 
 @pytest.mark.skip
diff --git a/tests/conftest.py b/tests/conftest.py
index 6e6a0f2c..c4792192 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -25,6 +25,7 @@
 from telliot_feeds.datasource import DataSource
 from telliot_feeds.dtypes.datapoint import datetime_now_utc
 from telliot_feeds.dtypes.datapoint import OptionalDataPoint
+from telliot_feeds.reporters.tellor_flex import TellorFlexReporter
 from telliot_feeds.utils.cfg import mainnet_config
 
 
@@ -40,35 +41,6 @@ def event_loop():
     loop.close()
 
 
-@pytest.fixture(scope="module", autouse=True)
-def rinkeby_cfg():
-    """Get rinkeby endpoint from config
-
-    If environment variables are defined, they will override the values in config files
-    """
-    cfg = TelliotConfig()
-
-    # Override configuration for rinkeby testnet
-    cfg.main.chain_id = 4
-
-    rinkeby_endpoint = cfg.get_endpoint()
-    # assert rinkeby_endpoint.network == "rinkeby"
-
-    if os.getenv("NODE_URL", None):
-        rinkeby_endpoint.url = os.environ["NODE_URL"]
-
-    rinkeby_accounts = find_accounts(chain_id=4)
-    if not rinkeby_accounts:
-        # Create a test account using PRIVATE_KEY defined on github.
-        key = os.getenv("PRIVATE_KEY", None)
-        if key:
-            ChainedAccount.add("git-rinkeby-key", chains=4, key=os.environ["PRIVATE_KEY"], password="")
-        else:
-            raise Exception("Need a rinkeby account")
-
-    return cfg
-
-
 @pytest.fixture(scope="module", autouse=True)
 def mainnet_test_cfg():
     """Get mainnet endpoint from config
@@ -312,3 +284,38 @@ async def tellor_360(mumbai_test_cfg, tellorflex_360_contract, mock_autopay_cont
         await tellor360.oracle.write("init", _governanceAddress=accounts[0].address, **txn_kwargs)
 
         return tellor360, account
+
+
+@pytest_asyncio.fixture(scope="function")
+async def tellor_flex_reporter(mumbai_test_cfg, mock_flex_contract, mock_autopay_contract, mock_token_contract):
+    async with TelliotCore(config=mumbai_test_cfg) as core:
+
+        account = core.get_account()
+
+        flex = core.get_tellorflex_contracts()
+        flex.oracle.address = mock_flex_contract.address
+        flex.autopay.address = mock_autopay_contract.address
+        flex.token.address = mock_token_contract.address
+
+        flex.oracle.connect()
+        flex.token.connect()
+        flex.autopay.connect()
+        flex = core.get_tellorflex_contracts()
+
+        r = TellorFlexReporter(
+            oracle=flex.oracle,
+            token=flex.token,
+            autopay=flex.autopay,
+            endpoint=core.endpoint,
+            account=account,
+            chain_id=80001,
+            transaction_type=0,
+            min_native_token_balance=0,
+        )
+        # mint token and send to reporter address
+        mock_token_contract.mint(account.address, 1000e18)
+
+        # send eth from brownie address to reporter address for txn fees
+        accounts[1].transfer(account.address, "1 ether")
+
+        return r
diff --git a/tests/feeds/test_eth_usd_feed.py b/tests/feeds/test_eth_usd_feed.py
index d7fd94eb..aedf6624 100644
--- a/tests/feeds/test_eth_usd_feed.py
+++ b/tests/feeds/test_eth_usd_feed.py
@@ -15,7 +15,7 @@ async def test_AssetPriceFeed():
     print(f"ETH/USD Price: {v}")
 
     # Get list of data sources from sources dict
-    source_prices = [source.latest[0] for source in eth_usd_median_feed.source.sources]
+    source_prices = [source.latest[0] for source in eth_usd_median_feed.source.sources if source.latest[0]]
 
     # Make sure error is less than decimal tolerance
     assert (v - statistics.median(source_prices)) < 10**-6
diff --git a/tests/feeds/test_eth_usd_legacy.py b/tests/feeds/test_eth_usd_legacy.py
deleted file mode 100644
index aff8bfb9..00000000
--- a/tests/feeds/test_eth_usd_legacy.py
+++ /dev/null
@@ -1,21 +0,0 @@
-import statistics
-
-import pytest
-
-from telliot_feeds.feeds.eth_usd_legacy_feed import eth_usd_legacy_feed
-
-
-@pytest.mark.asyncio
-async def test_AssetPriceFeed():
-    """Retrieve median ETH/USD price."""
-    v, _ = await eth_usd_legacy_feed.source.fetch_new_datapoint()
-
-    assert v is not None
-    assert v > 0
-    print(f"ETH/USD Price: {v}")
-
-    # Get list of data sources from sources dict
-    source_prices = [source.latest[0] for source in eth_usd_legacy_feed.source.sources]
-
-    # Make sure error is less than decimal tolerance
-    assert (v - statistics.median(source_prices)) < 10**-6
diff --git a/tests/feeds/test_morphware_feeds.py b/tests/feeds/test_morphware_feeds.py
deleted file mode 100644
index 180b5bb7..00000000
--- a/tests/feeds/test_morphware_feeds.py
+++ /dev/null
@@ -1,184 +0,0 @@
-import json
-from datetime import datetime
-
-import pytest
-
-from telliot_feeds.feeds.morphware import morphware_v1_feed
-
-
-@pytest.mark.asyncio
-async def test_fetch_new_datapoint():
-    """Retrieve EC2 metadata."""
-    v, t = await morphware_v1_feed.source.fetch_new_datapoint()
-
-    assert v is not None and t is not None
-    assert isinstance(v, list)
-    assert isinstance(t, datetime)
-    assert isinstance(v[0], str)
-
-    assert len(v) == 21
-    for metadata_str in v:
-        assert isinstance(metadata_str, str)
-        ec2_dict = json.loads(metadata_str)
-        assert "Instance Type" in ec2_dict
-        assert "CUDA Cores" in ec2_dict
-        assert "Number of CPUs" in ec2_dict
-        assert "RAM" in ec2_dict
-        assert "On-demand Price per Hour" in ec2_dict
-
-        assert isinstance(ec2_dict["Instance Type"], str)
-        assert isinstance(ec2_dict["CUDA Cores"], int)
-        assert isinstance(ec2_dict["Number of CPUs"], int)
-        assert isinstance(ec2_dict["RAM"], float)
-        assert isinstance(ec2_dict["On-demand Price per Hour"], float)
-
-
-EXAMPLE_RESPONSE = [
-    {
-        "Instance Type": "p2.16xlarge",
-        "CUDA Cores": 79872,
-        "Number of CPUs": 64,
-        "RAM": 732.0,
-        "On-demand Price per Hour": 14.4,
-    },
-    {
-        "Instance Type": "p2.8xlarge",
-        "CUDA Cores": 39936,
-        "Number of CPUs": 32,
-        "RAM": 488.0,
-        "On-demand Price per Hour": 7.2,
-    },
-    {
-        "Instance Type": "p2.xlarge",
-        "CUDA Cores": 4992,
-        "Number of CPUs": 4,
-        "RAM": 61.0,
-        "On-demand Price per Hour": 0.9,
-    },
-    {
-        "Instance Type": "g3s.xlarge",
-        "CUDA Cores": 4096,
-        "Number of CPUs": 4,
-        "RAM": 30.5,
-        "On-demand Price per Hour": 0.75,
-    },
-    {
-        "Instance Type": "g4dn.xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 4,
-        "RAM": 16.0,
-        "On-demand Price per Hour": 0.526,
-    },
-    {
-        "Instance Type": "g3.16xlarge",
-        "CUDA Cores": 16384,
-        "Number of CPUs": 64,
-        "RAM": 488.0,
-        "On-demand Price per Hour": 4.56,
-    },
-    {
-        "Instance Type": "g3.4xlarge",
-        "CUDA Cores": 4096,
-        "Number of CPUs": 16,
-        "RAM": 122.0,
-        "On-demand Price per Hour": 1.14,
-    },
-    {
-        "Instance Type": "g3.8xlarge",
-        "CUDA Cores": 8192,
-        "Number of CPUs": 32,
-        "RAM": 244.0,
-        "On-demand Price per Hour": 2.28,
-    },
-    {
-        "Instance Type": "g4dn.2xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 8,
-        "RAM": 32.0,
-        "On-demand Price per Hour": 0.752,
-    },
-    {
-        "Instance Type": "g4dn.12xlarge",
-        "CUDA Cores": 10240,
-        "Number of CPUs": 48,
-        "RAM": 192.0,
-        "On-demand Price per Hour": 3.912,
-    },
-    {
-        "Instance Type": "g4dn.metal",
-        "CUDA Cores": 20480,
-        "Number of CPUs": 96,
-        "RAM": 384.0,
-        "On-demand Price per Hour": 7.824,
-    },
-    {
-        "Instance Type": "g2.2xlarge",
-        "CUDA Cores": 1536,
-        "Number of CPUs": 8,
-        "RAM": 15.0,
-        "On-demand Price per Hour": 0.65,
-    },
-    {
-        "Instance Type": "g2.8xlarge",
-        "CUDA Cores": 6144,
-        "Number of CPUs": 32,
-        "RAM": 60.0,
-        "On-demand Price per Hour": 2.6,
-    },
-    {
-        "Instance Type": "g4dn.4xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 16,
-        "RAM": 64.0,
-        "On-demand Price per Hour": 1.204,
-    },
-    {
-        "Instance Type": "p4d.24xlarge",
-        "CUDA Cores": 55296,
-        "Number of CPUs": 96,
-        "RAM": 1152.0,
-        "On-demand Price per Hour": 32.7726,
-    },
-    {
-        "Instance Type": "p3.16xlarge",
-        "CUDA Cores": 40960,
-        "Number of CPUs": 64,
-        "RAM": 488.0,
-        "On-demand Price per Hour": 24.48,
-    },
-    {
-        "Instance Type": "p3.2xlarge",
-        "CUDA Cores": 5120,
-        "Number of CPUs": 8,
-        "RAM": 61.0,
-        "On-demand Price per Hour": 3.06,
-    },
-    {
-        "Instance Type": "p3.8xlarge",
-        "CUDA Cores": 20480,
-        "Number of CPUs": 32,
-        "RAM": 244.0,
-        "On-demand Price per Hour": 12.24,
-    },
-    {
-        "Instance Type": "p3dn.24xlarge",
-        "CUDA Cores": 40960,
-        "Number of CPUs": 96,
-        "RAM": 768.0,
-        "On-demand Price per Hour": 31.212,
-    },
-    {
-        "Instance Type": "g4dn.8xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 32,
-        "RAM": 128.0,
-        "On-demand Price per Hour": 2.176,
-    },
-    {
-        "Instance Type": "g4dn.16xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 64,
-        "RAM": 256.0,
-        "On-demand Price per Hour": 4.352,
-    },
-]
diff --git a/tests/queries/test_abi_query.py b/tests/queries/test_abi_query.py
index 7a8acc4e..64db0cc5 100644
--- a/tests/queries/test_abi_query.py
+++ b/tests/queries/test_abi_query.py
@@ -1,39 +1,8 @@
 from telliot_feeds.queries.abi_query import AbiQuery
-from telliot_feeds.queries.morphware import Morphware
-
-
-def test_query_data():
-    q = Morphware(version=1)
-    print(q.query_data.hex())
-    print(q.abi)
-    print(q.query_id.hex())
-
-    qr = AbiQuery.get_query_from_data(q.query_data)
-    assert isinstance(qr, Morphware)
-    assert qr.version == 1
 
 
 def test_get_query_from_data():
-    query_data = (
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tMorphwar"
-        b"e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x01"
-    )
-
-    q = AbiQuery.get_query_from_data(query_data)
-    print(q)
-
-    assert isinstance(q, Morphware)
-    assert q.version == 1
+    pass
 
 
 def test_generate_query_data():
diff --git a/tests/queries/test_query_morphware.py b/tests/queries/test_query_morphware.py
deleted file mode 100644
index 554cb933..00000000
--- a/tests/queries/test_query_morphware.py
+++ /dev/null
@@ -1,89 +0,0 @@
-""" Unit tests for Morphware queries.
-
-Copyright (c) 2021-, Tellor Development Community
-Distributed under the terms of the MIT License.
-"""
-import json
-
-from eth_abi import decode_abi
-from eth_abi import decode_single
-
-from telliot_feeds.queries.morphware import Morphware
-
-
-def test_query_constructor():
-    """Validate Morphware query."""
-    q = Morphware(version=1)
-
-    exp_query_data = (
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tMorphwar"
-        b"e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        b"\x00\x00\x00\x00\x00\x01"
-    )
-
-    assert q.query_data == exp_query_data
-
-    query_type, encoded_param_vals = decode_abi(["string", "bytes"], q.query_data)
-    assert query_type == "Morphware"
-
-    version = decode_single("uint256", encoded_param_vals)
-    assert isinstance(version, int)
-    assert version == 1
-
-    exp = "bf7f9942188d84961cf2a01ec68c42ef000d5b0fb5ca7dc0fcf1ceee5164811c"
-    assert q.query_id.hex() == exp
-
-
-def test_encode_decode_reported_val():
-    """Ensure expected encoding/decoding behavior."""
-    q = Morphware(version=1)
-
-    # JSON string containing data specified by Morphware and
-    # referenced in Tellor /dataSpecs:
-    # https://github.com/tellor-io/dataSpecs/blob/main/types/Morphware.md
-
-    # Example data source provided by Morphware:
-    # curl --request POST http://167.172.239.133:5000/products-2 -H "Content-Type: application/json" \
-    # -d '{"provider":"amazon","service":"compute","region":"us-east-1"}'
-    data_from_endpoint = [
-        {
-            "Instance Type": "p2.16xlarge",
-            "CUDA Cores": 79872,
-            "Number of CPUs": 64,
-            "RAM": 732.0,
-            "On-demand Price per Hour": 14.4,
-        },
-        # ...
-    ]
-    # Rename needed fields
-    data = [
-        {
-            "instanceType": data_from_endpoint[0]["Instance Type"],
-            "cudaCores": data_from_endpoint[0]["CUDA Cores"],
-            "numCPUs": data_from_endpoint[0]["Number of CPUs"],
-            "RAM": data_from_endpoint[0]["RAM"],
-            "onDemandPricePerHour": data_from_endpoint[0]["On-demand Price per Hour"],
-        }
-    ]
-    # Convert Ec2Metadata to JSON string
-    data = [json.dumps(data[0])]
-
-    submit_value = q.value_type.encode(data)
-    assert isinstance(submit_value, bytes)
-
-    decoded_data = q.value_type.decode(submit_value)
-    assert isinstance(decoded_data, tuple)
-    assert isinstance(decoded_data[0], str)
-
-    d = json.loads(decoded_data[0])
-    assert d["instanceType"] == "p2.16xlarge"
-    assert d["onDemandPricePerHour"] == 14.4
diff --git a/tests/queries/test_query_support.py b/tests/queries/test_query_support.py
index c4f6e9c2..f9512289 100644
--- a/tests/queries/test_query_support.py
+++ b/tests/queries/test_query_support.py
@@ -11,7 +11,7 @@ def test_all_query_types_in_catalog():
     for q in AbiQuery.__subclasses__():
         print("Checking", q.__name__)
         # skip legacy type
-        if q.__name__ in ("LegacyRequest", "FakeQueryType", "Morphware"):
+        if q.__name__ in ("LegacyRequest", "FakeQueryType"):
             continue
         assert q.__name__ in q_types
 
diff --git a/tests/reporters/test_flex_reporter.py b/tests/reporters/test_flex_reporter.py
index 4d1f4f12..9b847c7e 100644
--- a/tests/reporters/test_flex_reporter.py
+++ b/tests/reporters/test_flex_reporter.py
@@ -1,10 +1,7 @@
 from unittest.mock import patch
 
 import pytest
-import pytest_asyncio
-from brownie import accounts
 from brownie import chain
-from telliot_core.apps.core import TelliotCore
 from telliot_core.utils.response import ResponseStatus
 
 from telliot_feeds.datafeed import DataFeed
@@ -14,43 +11,6 @@
 from telliot_feeds.reporters.tellor_flex import TellorFlexReporter
 
 
-@pytest_asyncio.fixture(scope="function")
-async def tellor_flex_reporter(
-    mumbai_test_cfg, mock_flex_contract, mock_autopay_contract, mock_token_contract, multicall_contract
-):
-    async with TelliotCore(config=mumbai_test_cfg) as core:
-
-        account = core.get_account()
-
-        flex = core.get_tellorflex_contracts()
-        flex.oracle.address = mock_flex_contract.address
-        flex.autopay.address = mock_autopay_contract.address
-        flex.token.address = mock_token_contract.address
-
-        flex.oracle.connect()
-        flex.token.connect()
-        flex.autopay.connect()
-        flex = core.get_tellorflex_contracts()
-
-        r = TellorFlexReporter(
-            oracle=flex.oracle,
-            token=flex.token,
-            autopay=flex.autopay,
-            endpoint=core.endpoint,
-            account=account,
-            chain_id=80001,
-            transaction_type=0,
-            min_native_token_balance=0,
-        )
-        # mint token and send to reporter address
-        mock_token_contract.mint(account.address, 1000e18)
-
-        # send eth from brownie address to reporter address for txn fees
-        accounts[1].transfer(account.address, "1 ether")
-
-        return r
-
-
 @pytest.mark.asyncio
 async def test_YOLO_feed_suggestion(tellor_flex_reporter):
     tellor_flex_reporter.expected_profit = "YOLO"
diff --git a/tests/reporters/test_interval_reporter.py b/tests/reporters/test_interval_reporter.py
index 6d3a1720..20a1f494 100644
--- a/tests/reporters/test_interval_reporter.py
+++ b/tests/reporters/test_interval_reporter.py
@@ -7,9 +7,6 @@
 from unittest import mock
 
 import pytest
-import pytest_asyncio
-from brownie import accounts
-from telliot_core.apps.core import TelliotCore
 from telliot_core.gas.legacy_gas import ethgasstation
 from telliot_core.utils.response import ResponseStatus
 from web3.datastructures import AttributeDict
@@ -17,52 +14,15 @@
 from telliot_feeds.datafeed import DataFeed
 from telliot_feeds.feeds.eth_usd_feed import eth_usd_median_feed
 from telliot_feeds.reporters import interval
-from telliot_feeds.reporters.interval import IntervalReporter
 from telliot_feeds.sources.etherscan_gas import EtherscanGasPrice
 from tests.utils.utils import gas_price
 from tests.utils.utils import passing_bool_w_status
 from tests.utils.utils import passing_status
 
 
-@pytest_asyncio.fixture(scope="function")
-async def eth_usd_reporter(
-    rinkeby_test_cfg,
-    tellorx_master_mock_contract,
-    tellorx_oracle_mock_contract,
-):
-    """Returns an instance of an IntervalReporter using
-    the ETH/USD median datafeed."""
-    async with TelliotCore(config=rinkeby_test_cfg) as core:
-        account = core.get_account()
-        tellorx = core.get_tellorx_contracts()
-        tellorx.master.address = tellorx_master_mock_contract.address
-        tellorx.oracle.address = tellorx_oracle_mock_contract.address
-        tellorx.master.connect()
-        tellorx.oracle.connect()
-        r = IntervalReporter(
-            endpoint=core.config.get_endpoint(),
-            account=account,
-            master=tellorx.master,
-            oracle=tellorx.oracle,
-            datafeed=eth_usd_median_feed,
-            expected_profit="YOLO",
-            transaction_type=0,
-            gas_limit=400000,
-            max_fee=None,
-            priority_fee=None,
-            legacy_gas_price=None,
-            gas_price_speed="safeLow",
-            chain_id=core.config.main.chain_id,
-            min_native_token_balance=0,
-        )
-        # send eth from brownie address to reporter address for txn fees
-        accounts[1].transfer(account.address, "1 ether")
-        return r
-
-
 @pytest.mark.asyncio
-async def test_fetch_datafeed(eth_usd_reporter):
-    r = eth_usd_reporter
+async def test_fetch_datafeed(tellor_flex_reporter):
+    r = tellor_flex_reporter
     feed = await r.fetch_datafeed()
     assert isinstance(feed, DataFeed)
 
@@ -73,8 +33,8 @@ async def test_fetch_datafeed(eth_usd_reporter):
 
 
 @pytest.mark.asyncio
-async def test_get_fee_info(eth_usd_reporter):
-    info, time = await eth_usd_reporter.get_fee_info()
+async def test_get_fee_info(tellor_flex_reporter):
+    info, time = await tellor_flex_reporter.get_fee_info()
 
     assert isinstance(time, datetime)
     assert isinstance(info, EtherscanGasPrice)
@@ -84,8 +44,8 @@ async def test_get_fee_info(eth_usd_reporter):
 
 
 @pytest.mark.asyncio
-async def test_get_num_reports_by_id(eth_usd_reporter):
-    r = eth_usd_reporter
+async def test_get_num_reports_by_id(tellor_flex_reporter):
+    r = tellor_flex_reporter
     num, status = await r.get_num_reports_by_id(r.datafeed.query.query_id)
 
     assert isinstance(status, ResponseStatus)
@@ -97,18 +57,18 @@ async def test_get_num_reports_by_id(eth_usd_reporter):
 
 
 @pytest.mark.asyncio
-async def test_ensure_staked(eth_usd_reporter):
+async def test_ensure_staked(tellor_flex_reporter):
     """Test staking status of reporter."""
-    staked, status = await eth_usd_reporter.ensure_staked()
+    staked, status = await tellor_flex_reporter.ensure_staked()
 
     assert staked
     assert status.ok
 
 
 @pytest.mark.asyncio
-async def test_check_reporter_lock(eth_usd_reporter):
+async def test_check_reporter_lock(tellor_flex_reporter):
     """Test checking if in reporter lock."""
-    r = eth_usd_reporter
+    r = tellor_flex_reporter
     r.last_submission_timestamp = 0
 
     status = await r.check_reporter_lock()
@@ -120,9 +80,9 @@ async def test_check_reporter_lock(eth_usd_reporter):
 
 
 @pytest.mark.asyncio
-async def test_ensure_profitable(eth_usd_reporter):
+async def test_ensure_profitable(tellor_flex_reporter):
     """Test profitability check."""
-    r = eth_usd_reporter
+    r = tellor_flex_reporter
 
     assert r.expected_profit == "YOLO"
 
@@ -138,9 +98,9 @@ async def test_ensure_profitable(eth_usd_reporter):
 
 
 @pytest.mark.asyncio
-async def test_fetch_gas_price(eth_usd_reporter):
+async def test_fetch_gas_price(tellor_flex_reporter):
     """Test retrieving custom gas price from eth gas station."""
-    r = eth_usd_reporter
+    r = tellor_flex_reporter
 
     assert r.gas_price_speed == "safeLow"
 
@@ -155,11 +115,11 @@ async def test_fetch_gas_price(eth_usd_reporter):
 
 
 @pytest.mark.asyncio
-async def test_ethgasstation_error(eth_usd_reporter):
+async def test_ethgasstation_error(tellor_flex_reporter):
     async def no_gas_price(speed):
         return None
 
-    r = eth_usd_reporter
+    r = tellor_flex_reporter
     interval.ethgasstation = no_gas_price
 
     staked, status = await r.ensure_staked()
@@ -176,10 +136,10 @@ async def no_gas_price(speed):
 
 
 @pytest.mark.asyncio
-async def test_interval_reporter_submit_once(eth_usd_reporter):
+async def test_interval_reporter_submit_once(tellor_flex_reporter):
     """Test reporting once to the TellorX playground on Rinkeby
     with three retries."""
-    r = eth_usd_reporter
+    r = tellor_flex_reporter
 
     # Sync reporter
     r.datafeed = None
@@ -209,9 +169,9 @@ async def test_interval_reporter_submit_once(eth_usd_reporter):
 
 
 @pytest.mark.asyncio
-async def test_no_updated_value(eth_usd_reporter, bad_datasource):
+async def test_no_updated_value(tellor_flex_reporter, bad_datasource):
     """Test handling for no updated value returned from datasource."""
-    r = eth_usd_reporter
+    r = tellor_flex_reporter
 
     # Clear latest datapoint
     r.datafeed.source._history.clear()
@@ -233,9 +193,9 @@ async def test_no_updated_value(eth_usd_reporter, bad_datasource):
 
 
 @pytest.mark.asyncio
-async def test_no_token_prices_for_profit_calc(eth_usd_reporter, bad_datasource, guaranteed_price_source):
+async def test_no_token_prices_for_profit_calc(tellor_flex_reporter, bad_datasource, guaranteed_price_source):
     """Test handling for no token prices for profit calculation."""
-    r = eth_usd_reporter
+    r = tellor_flex_reporter
 
     r.fetch_gas_price = gas_price
     r.check_reporter_lock = passing_status
@@ -261,14 +221,14 @@ async def test_no_token_prices_for_profit_calc(eth_usd_reporter, bad_datasource,
 
 
 @pytest.mark.asyncio
-async def test_handle_contract_master_read_timeout(eth_usd_reporter):
+async def test_handle_contract_master_read_timeout(tellor_flex_reporter):
     """Test handling for contract master read timeout."""
 
     def conn_timeout(url, *args, **kwargs):
         raise asyncio.exceptions.TimeoutError()
 
     with mock.patch("web3.contract.ContractFunction.call", side_effect=conn_timeout):
-        r = eth_usd_reporter
+        r = tellor_flex_reporter
         r.fetch_gas_price = gas_price
         staked, status = await r.ensure_staked()
 
@@ -279,9 +239,9 @@ def conn_timeout(url, *args, **kwargs):
 
 @pytest.mark.asyncio
 async def test_ensure_reporter_lock_check_after_submitval_attempt(
-    monkeypatch, eth_usd_reporter, guaranteed_price_source
+    monkeypatch, tellor_flex_reporter, guaranteed_price_source
 ):
-    r = eth_usd_reporter
+    r = tellor_flex_reporter
     r.last_submission_timestamp = 1234
     r.fetch_gas_price = gas_price
     r.ensure_staked = passing_bool_w_status
diff --git a/tests/reporters/test_rng_reporter.py b/tests/reporters/test_rng_reporter.py
index 8ebb2222..3a8106e7 100644
--- a/tests/reporters/test_rng_reporter.py
+++ b/tests/reporters/test_rng_reporter.py
@@ -28,8 +28,7 @@ async def rng_reporter(mumbai_test_cfg, tellor_360):
 
 @pytest.mark.asyncio
 async def test_report(rng_reporter):
-    """Test reporting once to the Tellor playground on Rinkeby
-    with three retries."""
+    """Test reporting Tellor RNG value."""
     r = rng_reporter
     r.wait_period = 0
 
diff --git a/tests/reporters/test_uspce_reporter.py b/tests/reporters/test_uspce_reporter.py
deleted file mode 100644
index f92f1b49..00000000
--- a/tests/reporters/test_uspce_reporter.py
+++ /dev/null
@@ -1,69 +0,0 @@
-import pytest
-from brownie import accounts
-from telliot_core.apps.core import TelliotCore
-from web3.datastructures import AttributeDict
-
-from telliot_feeds.feeds.uspce_feed import uspce_feed
-from telliot_feeds.reporters.interval import IntervalReporter
-from telliot_feeds.sources import uspce
-
-
-@pytest.mark.asyncio
-async def test_uspce_interval_reporter_submit_once(
-    rinkeby_test_cfg, tellorx_master_mock_contract, tellorx_oracle_mock_contract
-):
-    """test report of uspce manual price"""
-    # Override Python built-in input method
-    uspce.input = lambda: "123.456"
-
-    async with TelliotCore(config=rinkeby_test_cfg) as core:
-
-        account = core.get_account()
-        tellorx = core.get_tellorx_contracts()
-        tellorx.master.address = tellorx_master_mock_contract.address
-        tellorx.oracle.address = tellorx_oracle_mock_contract.address
-        tellorx.master.connect()
-        tellorx.oracle.connect()
-        r = IntervalReporter(
-            endpoint=core.config.get_endpoint(),
-            account=account,
-            master=tellorx.master,
-            oracle=tellorx.oracle,
-            datafeed=uspce_feed,
-            expected_profit="YOLO",
-            transaction_type=0,
-            gas_limit=400000,
-            max_fee=None,
-            priority_fee=None,
-            legacy_gas_price=None,
-            gas_price_speed="safeLow",
-            chain_id=core.config.main.chain_id,
-            min_native_token_balance=0,
-        )
-
-        # send eth from brownie address to reporter address for txn fees
-        accounts[0].transfer(account.address, "1 ether")
-
-        EXPECTED_ERRORS = {
-            "Current addess disputed. Switch address to continue reporting.",
-            "Current address is locked in dispute or for withdrawal.",
-            "Current address is in reporter lock.",
-            "Estimated profitability below threshold.",
-            "Estimated gas price is above maximum gas price.",
-            "Unable to retrieve updated datafeed value.",
-            "Unable to fetch ETH/USD price for profit calculation",
-        }
-
-        ORACLE_ADDRESSES = {r.oracle.address}
-
-        tx_receipt, status = await r.report_once()
-
-        # Reporter submitted
-        if tx_receipt is not None and status.ok:
-            assert isinstance(tx_receipt, AttributeDict)
-            assert tx_receipt.to in ORACLE_ADDRESSES
-        # Reporter did not submit
-        else:
-            assert not tx_receipt
-            assert not status.ok
-            assert status.error in EXPECTED_ERRORS
diff --git a/tests/sources/test_morphwarev1_sources.py b/tests/sources/test_morphwarev1_sources.py
deleted file mode 100644
index ca5f8797..00000000
--- a/tests/sources/test_morphwarev1_sources.py
+++ /dev/null
@@ -1,183 +0,0 @@
-import json
-from datetime import datetime
-
-import pytest
-
-from telliot_feeds.sources.morphware import MorphwareV1Source
-
-
-@pytest.mark.asyncio
-async def test_fetch_new_datapoint():
-    """Retrieve EC2 metadata."""
-    v, t = await MorphwareV1Source().fetch_new_datapoint()
-
-    assert v is not None and t is not None
-    assert isinstance(v, list)
-    assert isinstance(t, datetime)
-    assert isinstance(v[0], str)
-
-    assert len(v) == 21
-    for metadata_str in v:
-        ec2_dict = json.loads(metadata_str)
-        assert "Instance Type" in ec2_dict
-        assert "CUDA Cores" in ec2_dict
-        assert "Number of CPUs" in ec2_dict
-        assert "RAM" in ec2_dict
-        assert "On-demand Price per Hour" in ec2_dict
-
-        assert isinstance(ec2_dict["Instance Type"], str)
-        assert isinstance(ec2_dict["CUDA Cores"], int)
-        assert isinstance(ec2_dict["Number of CPUs"], int)
-        assert isinstance(ec2_dict["RAM"], float)
-        assert isinstance(ec2_dict["On-demand Price per Hour"], float)
-
-
-EXAMPLE_RESPONSE = [
-    {
-        "Instance Type": "p2.16xlarge",
-        "CUDA Cores": 79872,
-        "Number of CPUs": 64,
-        "RAM": 732.0,
-        "On-demand Price per Hour": 14.4,
-    },
-    {
-        "Instance Type": "p2.8xlarge",
-        "CUDA Cores": 39936,
-        "Number of CPUs": 32,
-        "RAM": 488.0,
-        "On-demand Price per Hour": 7.2,
-    },
-    {
-        "Instance Type": "p2.xlarge",
-        "CUDA Cores": 4992,
-        "Number of CPUs": 4,
-        "RAM": 61.0,
-        "On-demand Price per Hour": 0.9,
-    },
-    {
-        "Instance Type": "g3s.xlarge",
-        "CUDA Cores": 4096,
-        "Number of CPUs": 4,
-        "RAM": 30.5,
-        "On-demand Price per Hour": 0.75,
-    },
-    {
-        "Instance Type": "g4dn.xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 4,
-        "RAM": 16.0,
-        "On-demand Price per Hour": 0.526,
-    },
-    {
-        "Instance Type": "g3.16xlarge",
-        "CUDA Cores": 16384,
-        "Number of CPUs": 64,
-        "RAM": 488.0,
-        "On-demand Price per Hour": 4.56,
-    },
-    {
-        "Instance Type": "g3.4xlarge",
-        "CUDA Cores": 4096,
-        "Number of CPUs": 16,
-        "RAM": 122.0,
-        "On-demand Price per Hour": 1.14,
-    },
-    {
-        "Instance Type": "g3.8xlarge",
-        "CUDA Cores": 8192,
-        "Number of CPUs": 32,
-        "RAM": 244.0,
-        "On-demand Price per Hour": 2.28,
-    },
-    {
-        "Instance Type": "g4dn.2xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 8,
-        "RAM": 32.0,
-        "On-demand Price per Hour": 0.752,
-    },
-    {
-        "Instance Type": "g4dn.12xlarge",
-        "CUDA Cores": 10240,
-        "Number of CPUs": 48,
-        "RAM": 192.0,
-        "On-demand Price per Hour": 3.912,
-    },
-    {
-        "Instance Type": "g4dn.metal",
-        "CUDA Cores": 20480,
-        "Number of CPUs": 96,
-        "RAM": 384.0,
-        "On-demand Price per Hour": 7.824,
-    },
-    {
-        "Instance Type": "g2.2xlarge",
-        "CUDA Cores": 1536,
-        "Number of CPUs": 8,
-        "RAM": 15.0,
-        "On-demand Price per Hour": 0.65,
-    },
-    {
-        "Instance Type": "g2.8xlarge",
-        "CUDA Cores": 6144,
-        "Number of CPUs": 32,
-        "RAM": 60.0,
-        "On-demand Price per Hour": 2.6,
-    },
-    {
-        "Instance Type": "g4dn.4xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 16,
-        "RAM": 64.0,
-        "On-demand Price per Hour": 1.204,
-    },
-    {
-        "Instance Type": "p4d.24xlarge",
-        "CUDA Cores": 55296,
-        "Number of CPUs": 96,
-        "RAM": 1152.0,
-        "On-demand Price per Hour": 32.7726,
-    },
-    {
-        "Instance Type": "p3.16xlarge",
-        "CUDA Cores": 40960,
-        "Number of CPUs": 64,
-        "RAM": 488.0,
-        "On-demand Price per Hour": 24.48,
-    },
-    {
-        "Instance Type": "p3.2xlarge",
-        "CUDA Cores": 5120,
-        "Number of CPUs": 8,
-        "RAM": 61.0,
-        "On-demand Price per Hour": 3.06,
-    },
-    {
-        "Instance Type": "p3.8xlarge",
-        "CUDA Cores": 20480,
-        "Number of CPUs": 32,
-        "RAM": 244.0,
-        "On-demand Price per Hour": 12.24,
-    },
-    {
-        "Instance Type": "p3dn.24xlarge",
-        "CUDA Cores": 40960,
-        "Number of CPUs": 96,
-        "RAM": 768.0,
-        "On-demand Price per Hour": 31.212,
-    },
-    {
-        "Instance Type": "g4dn.8xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 32,
-        "RAM": 128.0,
-        "On-demand Price per Hour": 2.176,
-    },
-    {
-        "Instance Type": "g4dn.16xlarge",
-        "CUDA Cores": 2560,
-        "Number of CPUs": 64,
-        "RAM": 256.0,
-        "On-demand Price per Hour": 4.352,
-    },
-]
diff --git a/tests/sources/test_spot_price_sources.py b/tests/sources/test_spot_price_sources.py
index fd3d680b..7ac80468 100644
--- a/tests/sources/test_spot_price_sources.py
+++ b/tests/sources/test_spot_price_sources.py
@@ -206,6 +206,7 @@ async def test_uniswap_eth_usd(caplog):
         assert "Uniswap API not included, because price response is 0" in caplog.records[0].msg
 
 
+@pytest.mark.skip("Not needed currently")
 @pytest.mark.asyncio
 async def test_pancakeswap_usd():
     """Test retrieving from Pancakeswap price source in USD."""
@@ -213,6 +214,7 @@ async def test_pancakeswap_usd():
     validate_price(v, t)
 
 
+@pytest.mark.skip("Not needed currently")
 @pytest.mark.asyncio
 async def test_pancakeswap_bnb():
     """Test retrieving from Pancakeswap price source in BNB."""
diff --git a/tests/test_olympus.py b/tests/test_olympus.py
index 008763a8..b50193f0 100644
--- a/tests/test_olympus.py
+++ b/tests/test_olympus.py
@@ -1,10 +1,6 @@
 import pytest
-from brownie import accounts
-from telliot_core.apps.core import TelliotCore
-from web3.datastructures import AttributeDict
 
 from telliot_feeds.feeds.olympus import ohm_eth_median_feed
-from telliot_feeds.reporters.tellor_flex import TellorFlexReporter
 
 
 @pytest.mark.asyncio
@@ -25,46 +21,3 @@ def test_query_info():
         q.query_data.hex()
         == "00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000953706f745072696365000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000036f686d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036574680000000000000000000000000000000000000000000000000000000000"  # noqa: E501
     )
-
-
-@pytest.mark.asyncio
-async def test_ohm_eth_reporter_submit_once(
-    mumbai_test_cfg, mock_flex_contract, mock_autopay_contract, mock_token_contract
-):
-    """Test reporting AMPL/USD/VWAP to the TellorX Oracle on Rinkeby."""
-    async with TelliotCore(config=mumbai_test_cfg) as core:
-        account = core.get_account()
-
-        flex = core.get_tellorflex_contracts()
-        flex.oracle.address = mock_flex_contract.address
-        flex.autopay.address = mock_autopay_contract.address
-        flex.token.address = mock_token_contract.address
-
-        flex.oracle.connect()
-        flex.token.connect()
-        flex.autopay.connect()
-
-        # mint token and send to reporter address
-        mock_token_contract.mint(account.address, 1000e18)
-
-        # send eth from brownie address to reporter address for txn fees
-        accounts[1].transfer(account.address, "1 ether")
-
-        r = TellorFlexReporter(
-            endpoint=core.endpoint,
-            account=account,
-            chain_id=80001,
-            oracle=flex.oracle,
-            token=flex.token,
-            autopay=flex.autopay,
-            transaction_type=0,
-            datafeed=ohm_eth_median_feed,
-            max_fee=100,
-        )
-
-        tx_receipt, status = await r.report_once()
-
-        # Reporter submitted
-        if tx_receipt is not None and status.ok:
-            assert isinstance(tx_receipt, AttributeDict)
-            assert tx_receipt.to in mock_flex_contract.address
diff --git a/tests/test_vesq.py b/tests/test_vesq.py
index b7803d23..61da0361 100644
--- a/tests/test_vesq.py
+++ b/tests/test_vesq.py
@@ -1,10 +1,6 @@
 import pytest
-from brownie import accounts
-from telliot_core.apps.core import TelliotCore
-from web3.datastructures import AttributeDict
 
 from telliot_feeds.feeds.vesq import vsq_usd_median_feed
-from telliot_feeds.reporters.tellor_flex import TellorFlexReporter
 
 
 @pytest.mark.asyncio
@@ -24,46 +20,3 @@ def test_query_info():
     assert q.query_data == exp_data
     assert q.query_id.hex() == exp_id
     assert q.query_data.hex() == exp_data_hex
-
-
-@pytest.mark.asyncio
-async def test_vsq_usd_reporter_submit_once(
-    mumbai_test_cfg, mock_flex_contract, mock_autopay_contract, mock_token_contract
-):
-    """Test reporting AMPL/USD/VWAP to the TellorX Oracle on Rinkeby."""
-    async with TelliotCore(config=mumbai_test_cfg) as core:
-        account = core.get_account()
-
-        flex = core.get_tellorflex_contracts()
-        flex.oracle.address = mock_flex_contract.address
-        flex.autopay.address = mock_autopay_contract.address
-        flex.token.address = mock_token_contract.address
-
-        flex.oracle.connect()
-        flex.token.connect()
-        flex.autopay.connect()
-
-        # mint token and send to reporter address
-        mock_token_contract.mint(account.address, 1000e18)
-
-        # send eth from brownie address to reporter address for txn fees
-        accounts[1].transfer(account.address, "1 ether")
-
-        r = TellorFlexReporter(
-            endpoint=core.endpoint,
-            account=account,
-            chain_id=80001,
-            oracle=flex.oracle,
-            token=flex.token,
-            autopay=flex.autopay,
-            transaction_type=0,
-            datafeed=vsq_usd_median_feed,
-            max_fee=100,
-        )
-
-        tx_receipt, status = await r.report_once()
-
-        # Reporter submitted
-        if tx_receipt is not None and status.ok:
-            assert isinstance(tx_receipt, AttributeDict)
-            assert tx_receipt.to in mock_flex_contract.address
diff --git a/tests/utils/test_config_utils.py b/tests/utils/test_config_utils.py
index e1b0387f..3cd1bb7c 100644
--- a/tests/utils/test_config_utils.py
+++ b/tests/utils/test_config_utils.py
@@ -45,9 +45,9 @@ def mock_account():
     # we will add an account if the account does not exist in our keyfile
     try:
         fake_private_key = "ff27eb0c5059fc99f9d7b48931d135b20f1293db8d0f4fec4ecf5131fb40f1f5"  # https://vanity-eth.tk/
-        return ChainedAccount.add("mock-account", 4, fake_private_key, "password")
+        return ChainedAccount.add("mock-account", 5, fake_private_key, "password")
     except Exception:
-        return find_accounts(chain_id=4, name="mock-account")[0]
+        return find_accounts(chain_id=5, name="mock-account")[0]
 
 
 def test_update_all_configs(mock_config):
@@ -61,10 +61,10 @@ def test_update_all_configs(mock_config):
     use_endpoint = False
 
     # prompts
-    new_chain_id = 4
+    new_chain_id = 5
 
     # other mocks
-    mock_endpoint = RPCEndpoint(4, "rinkeby", "infura", "myinfuraurl...", "etherscan.com")
+    mock_endpoint = RPCEndpoint(5, "goerli", "infura", "myinfuraurl...", "etherscan.com")
 
     with (
         mock.patch("click.confirm", side_effect=[update_settings, update_chain_id, use_endpoint]),
@@ -106,7 +106,7 @@ def test_prompt_for_endpoint():
 def test_setup_account(mock_config):
     """Test accepting first account, then test adding an account"""
 
-    chain_id = 4
+    chain_id = 5
 
     first_index = 0
     last_index = len(find_accounts(chain_id=chain_id))
@@ -122,7 +122,7 @@ def test_setup_account(mock_config):
         mock.patch("telliot_feeds.utils.cfg.prompt_for_account", side_effect=[mock_account]),
     ):
         cfg = mock_config
-        cfg.main.chain_id = 4
+        cfg.main.chain_id = 5
         selected_acc = setup_account(cfg.main.chain_id)
 
         assert "mock-account" in [a.name for a in check_accounts(cfg, "mock-account")]
diff --git a/tests/utils/test_oracle_write.py b/tests/utils/test_oracle_write.py
deleted file mode 100644
index 666f0bbb..00000000
--- a/tests/utils/test_oracle_write.py
+++ /dev/null
@@ -1,28 +0,0 @@
-import pytest
-from brownie import accounts
-from telliot_core.apps.core import TelliotCore
-from telliot_core.utils.response import ResponseStatus
-from web3.datastructures import AttributeDict
-
-from telliot_feeds.feeds.eth_usd_feed import eth_usd_median_feed
-from telliot_feeds.utils.oracle_write import tip_query
-
-
-@pytest.mark.skip("Disabled until we need this functionality")
-@pytest.mark.asyncio
-async def test_tip_query(rinkeby_test_cfg):
-    """Test tipping ETH/USD price."""
-
-    async with TelliotCore(config=rinkeby_test_cfg) as core:
-        accounts[1].transfer(core.get_account().address, "1 ether")
-        tellorx = core.get_tellorx_contracts()
-        tip = int(0.0001 * 1e18)
-        tx_receipt, status = await tip_query(
-            oracle=tellorx.oracle,
-            datafeed=eth_usd_median_feed,
-            tip=tip,
-        )
-
-        assert isinstance(tx_receipt, AttributeDict)
-        assert isinstance(status, ResponseStatus)
-        assert status.ok
diff --git a/tests/utils/test_reporter_utils.py b/tests/utils/test_reporter_utils.py
index b23818a7..56adfdca 100644
--- a/tests/utils/test_reporter_utils.py
+++ b/tests/utils/test_reporter_utils.py
@@ -25,8 +25,8 @@
 
 
 @pytest.mark.asyncio
-async def test_suggested_report(rinkeby_test_cfg):
-    async with TelliotCore(config=rinkeby_test_cfg) as core:
+async def test_suggested_report(mumbai_test_cfg):
+    async with TelliotCore(config=mumbai_test_cfg) as core:
         account = core.get_account()
         contract_instance = accounts[0].deploy(TellorXOracleMock)
         oracle = TellorxOracleContract(core.endpoint, account)
@@ -54,7 +54,6 @@ def test_reporter_sync_schedule_list():
     lis = reporter_sync_schedule
     assert len(lis) > 4
     assert "eth-usd-spot" in lis
-    assert "morphware-v1" not in lis
     assert "uspce-legacy" not in lis