Thanks for making this awesome guide (Running a keeper from Keep3r Network on Defender) and all the work in the back end to make the keep3r process so straight forward. I’ve read the guide and copied the code snippet exactly (without any editing) and put it in the autotask, what I got was the following error.
Message: Error running autotask: Unhandled
Logs: 2020-11-05T02:23:19.540Z AUTOTASK START
2020-11-05T02:23:21.559Z ERROR Invoke Error {"errorType":"Error","errorMessage":"invalid ENS name (argument=\"name\", value=undefined, code=INVALID_ARGUMENT, version=providers/5.0.5)","code":"INVALID_ARGUMENT","reason":"invalid ENS name","argument":"name","stack":["Error: invalid ENS name (argument=\"name\", value=undefined, code=INVALID_ARGUMENT, version=providers/5.0.5)"," at Logger.makeError (/opt/nodejs/node_modules/@ethersproject/logger/lib/index.js:179:21)"," at Logger.throwError (/opt/nodejs/node_modules/@ethersproject/logger/lib/index.js:188:20)"," at Logger.throwArgumentError (/opt/nodejs/node_modules/@ethersproject/logger/lib/index.js:191:21)"," at FallbackProvider.<anonymous> (/opt/nodejs/node_modules/@ethersproject/providers/lib/base-provider.js:1340:36)"," at step (/opt/nodejs/node_modules/@ethersproject/providers/lib/base-provider.js:46:23)"," at Object.next (/opt/nodejs/node_modules/@ethersproject/providers/lib/base-provider.js:27:53)"," at fulfilled (/opt/nodejs/node_modules/@ethersproject/providers/lib/base-provider.js:18:58)"]}
2020-11-05T02:23:21.561Z AUTOTASK COMPLETE
I didn’t see any part where I have to put in my infura project ID as provider, does that mean we don’t need to use infura anymore?
Would be great if you can help take a look please.Thanks
Thanks for your reply. After reading it, I created a new autotask and put the code in again and it worked!!! Previously, I just the code from the guide into an existing autotask I created a few days ago. I’m not sure how that is any different but I’m ecstatic that it worked.
2020-11-05T03:55:27.641Z AUTOTASK START
2020-11-05T03:55:30.742Z INFO ========= NOTICE =========
2020-11-05T03:55:30.742Z INFO Request-Rate Exceeded (this message will not be repeated)
2020-11-05T03:55:30.742Z INFO
2020-11-05T03:55:30.742Z INFO The default API keys for each service are provided as a highly-throttled,
2020-11-05T03:55:30.742Z INFO community resource for low-traffic projects and early prototyping.
2020-11-05T03:55:30.742Z INFO
2020-11-05T03:55:30.743Z INFO While your application will continue to function, we highly recommended
2020-11-05T03:55:30.743Z INFO signing up for your own API keys to improve performance, increase your
2020-11-05T03:55:30.743Z INFO request rate/limit and enable other perks, such as metrics and advanced APIs.
2020-11-05T03:55:30.743Z INFO
2020-11-05T03:55:30.743Z INFO For more details: https://docs.ethers.io/api-keys/
2020-11-05T03:55:30.743Z INFO ==========================
2020-11-05T03:55:34.916Z INFO Bonded relayer: 0x5030072fca3208f9a8e37bf2b58a89a376ce4020ac0a23ac154e3654ec4c0150
2020-11-05T03:55:34.918Z AUTOTASK COMPLETE
So now I get this message about throttling. I’m not sure if it means my autotask will be throttled. How can keepers we get around the throttling issue?
Also noticed the bonded relayer address in the log doesn’t correspond to the address of the relayer I created. Is this to be expected?
Glad to hear your Autotask is up and running now!!
To keep things simple, the guide doesn't mention Infura/Alchemy/Etherscan, as for most runs this should work without a specific API key for Infurat/Alchemy/Etherscan.
I can appreciate how much work has been added under the hood to make this process so simple now. I looked up the tx hash and I can see my relayer address is now waiting to be activated, this is awesome! I’ve paused the autotask for now and will restart it in 3 days time to see how it actually performs.
Thanks for all the work you guys are doing behind the scenes, looking forward to the web-based management of tokens in the relayer as mentioned in the coming soon section. The ability to send K3PR, ETH or any other token out from the relayer will be most useful for people like me who don’t know how to do it with code.
On another note, I noticed the UniswapOracleV2 job has credits depleted, so will the autotask still attempt to do the job even when there is no reward available to distribute anymore? The job is still listed as active on the keep3r network. Maybe there are fractional KP3R left, which we can’t see as the UI only shows up to 2 decimals.
To expand on Andy's answer on this: this message you see on request-rate exceeded is not generated by Defender Autotasks, but by ethers.js. ethers.js is the library the autotask code is using for connecting to the network, and by default it uses a set of shared keys for connecting to the network. You can read more about them here.
As Andy mentioned, we are working to provide access to the Ethereum network directly through Defender (when you are in the context of an Autotask) so you don't have to face this problem. If you do want to solve this issue now, you can follow the instructions here supply your own API keys to ethers, but I would not recommend doing that unless you have some coding experience.