TypeError: abi.filter is not a function
This error is caused by passing invalid abi when creating a new contract with "web3.eth.contract(abi)". The fault with the abi is usually that it's not properly parsed. To parse it, we can simply use the JSON.parse(__compiledcode__["contracts"][__contractname__]["interface"]).