A quick guide for both beginner and novice developers- because blockchain is hard.
Ordered most-to-least common.
- Are you on the right network?
- Are you on the right account?
- Are you trying to access the right contract?
- Are you the owner of the contract?
- Do you have ETH in your account?
- Are you using the correct ABI for this contract?
- Are the permissions and requirements for the contract met?
- Are you formatting the arguments correctly?
- Is the method payable? Does it require payment? Read more
When in doubt, read the Solidity docs!
Issue | Details | Solution |
---|---|---|
Gas estimation failed | The transaction execution will likely fail. Do you want to force sending? | Check your permission for the transaction. Check that the require statements are satisfied. |
Error encoding arguments | Error: types/values length mismatch. | Use quotes "" for strings and addresses |
Invalid JSON RPC response | You likely do not have permission to access this method, or the 'require' statements are being satisfied. | Solution: Check that the contract owner and your account match. Check that the conditions of the transaction are satisfied. |
Importing from another contract? If it's a local file, check that it's saved in remix. If importing a contract from a Github URL, and you're at a hackathon or workshop, Github may be blocking your IP to prevent a DDOS scenario. In this case, you should save a copy of contract locally instead. The Giuthub contract may change without notice, so this is good practice.
If all else fails, you can use the debugger in Remix
As you transition to develop your DApp frontend, don't feel like you need to leave Remix behind. Consider using RemixD to access local files on your PC within Remix.
You wrote a contract, now make a dApp!
Check out http://oneclickdapp.com to instantly build a dApp with a simple URL to bookmark or share with a friend.
Security
- Smart contract best practices from ConsenSys
- Latest Security Considerations
- Another curated resource: Awesome Ethereum Security
Open to contributions!
Questions? Contact Patrick