# Keep3rV1Oracle Integration

**URL:** <https://gov.yearn.fi/t/keep3rv1oracle-integration/7896>\
**Category:** Keep3r\
**Created:** [10 November 2020 20:25 UTC](https://gov.yearn.fi/t/keep3rv1oracle-integration/7896 "2020-11-10T20:25:49Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![bolo](https://dub1.discourse-cdn.com/flex013/user_avatar/gov.yearn.fi/bolo/32/2368_2.png) [@bolo](https://gov.yearn.fi/u/bolo)\
**Post date:** [10 November 2020 20:25 UTC](https://gov.yearn.fi/t/keep3rv1oracle-integration/7896/1 "2020-11-10T20:25:49Z")

</div>

Hello,

I have tried to add Keep3rV1Oracle in my autotask, even when the job is ‘workable’. I have got this error when I have tried to run work(). Anyone can help me?

**gas required exceeds allowance (12493458) or always failing transaction**

my script

> <https://gist.github.com/bolom/8e159ea4a30eb50d8f1f7c1a20e3ef07>

full error message

```
Logs: 2020-11-10T19:54:45.913Z	AUTOTASK START
2020-11-10T19:54:47.429Z	INFO	Keep3rV1Oracle is workable
2020-11-10T19:54:47.774Z	ERROR	Error: processing response error (body={"jsonrpc":"2.0","id":44,"error":{"code":-32000,"message":"gas required exceeds allowance (12493458) or always failing transaction"}}, error={"code":-32000}, requestBody="{\"method\":\"eth_estimateGas\",\"params\":[{\"from\":\"0xd849511eba9f7daf7c45dcba182714a3d8ffe792\",\"to\":\"0x73353801921417f465377c8d898c6f4c0270282c\",\"data\":\"0x322e9f04\"}],\"id\":44,\"jsonrpc\":\"2.0\"}", requestMethod="POST", url="https://mainnet.infura.io/v3/4d613481619d49629d4a816115309fb2", code=SERVER_ERROR, version=web/5.0.2)
    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 /opt/nodejs/node_modules/@ethersproject/web/lib/index.js:244:32
    at step (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:33:23)
    at Object.next (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:14:53)
    at fulfilled (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:5:58)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  reason: 'processing response error',
  code: 'SERVER_ERROR',
  body: {
    jsonrpc: '2.0',
    id: 44,
    error: {
      code: -32000,
      message: 'gas required exceeds allowance (12493458) or always failing transaction'
    }
  },
  error: Error: gas required exceeds allowance (12493458) or always failing transaction
      at getResult (/opt/nodejs/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:70:21)
      at /opt/nodejs/node_modules/@ethersproject/web/lib/index.js:222:46
      at step (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:33:23)
      at Object.next (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:14:53)
      at fulfilled (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:5:58)
      at processTicksAndRejections (internal/process/task_queues.js:97:5) {
    code: -32000,
    data: undefined
  },
  requestBody: '{"method":"eth_estimateGas","params":[{"from":"0xd849511eba9f7daf7c45dcba182714a3d8ffe792","to":"0x73353801921417f465377c8d898c6f4c0270282c","data":"0x322e9f04"}],"id":44,"jsonrpc":"2.0"}',
  requestMethod: 'POST',
  url: 'https://mainnet.infura.io/v3/4d613481619d49629d4a816115309fb2'
}
2020-11-10T19:54:47.774Z	ERROR	Invoke Error {"errorType":"Error","errorMessage":"processing response error (body={\"jsonrpc\":\"2.0\",\"id\":44,\"error\":{\"code\":-32000,\"message\":\"gas required exceeds allowance (12493458) or always failing transaction\"}}, error={\"code\":-32000}, requestBody=\"{\\\"method\\\":\\\"eth_estimateGas\\\",\\\"params\\\":[{\\\"from\\\":\\\"0xd849511eba9f7daf7c45dcba182714a3d8ffe792\\\",\\\"to\\\":\\\"0x73353801921417f465377c8d898c6f4c0270282c\\\",\\\"data\\\":\\\"0x322e9f04\\\"}],\\\"id\\\":44,\\\"jsonrpc\\\":\\\"2.0\\\"}\", requestMethod=\"POST\", url=\"https://mainnet.infura.io/v3/4d613481619d49629d4a816115309fb2\", code=SERVER_ERROR, version=web/5.0.2)","code":"SERVER_ERROR","reason":"processing response error","body":{"jsonrpc":"2.0","id":44,"error":{"code":-32000,"message":"gas required exceeds allowance (12493458) or always failing transaction"}},"error":{"errorType":"Error","errorMessage":"gas required exceeds allowance (12493458) or always failing transaction","code":-32000,"stack":["Error: gas required exceeds allowance (12493458) or always failing transaction"," at getResult (/opt/nodejs/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:70:21)"," at /opt/nodejs/node_modules/@ethersproject/web/lib/index.js:222:46"," at step (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:33:23)"," at Object.next (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:14:53)"," at fulfilled (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:5:58)"," at processTicksAndRejections (internal/process/task_queues.js:97:5)"]},"requestBody":"{\"method\":\"eth_estimateGas\",\"params\":[{\"from\":\"0xd849511eba9f7daf7c45dcba182714a3d8ffe792\",\"to\":\"0x73353801921417f465377c8d898c6f4c0270282c\",\"data\":\"0x322e9f04\"}],\"id\":44,\"jsonrpc\":\"2.0\"}","requestMethod":"POST","url":"https://mainnet.infura.io/v3/4d613481619d49629d4a816115309fb2","stack":["Error: processing response error (body={\"jsonrpc\":\"2.0\",\"id\":44,\"error\":{\"code\":-32000,\"message\":\"gas required exceeds allowance (12493458) or always failing transaction\"}}, error={\"code\":-32000}, requestBody=\"{\\\"method\\\":\\\"eth_estimateGas\\\",\\\"params\\\":[{\\\"from\\\":\\\"0xd849511eba9f7daf7c45dcba182714a3d8ffe792\\\",\\\"to\\\":\\\"0x73353801921417f465377c8d898c6f4c0270282c\\\",\\\"data\\\":\\\"0x322e9f04\\\"}],\\\"id\\\":44,\\\"jsonrpc\\\":\\\"2.0\\\"}\", requestMethod=\"POST\", url=\"https://mainnet.infura.io/v3/4d613481619d49629d4a816115309fb2\", code=SERVER_ERROR, version=web/5.0.2)"," 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 /opt/nodejs/node_modules/@ethersproject/web/lib/index.js:244:32"," at step (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:33:23)"," at Object.next (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:14:53)"," at fulfilled (/opt/nodejs/node_modules/@ethersproject/web/lib/index.js:5:58)"," at processTicksAndRejections (internal/process/task_queues.js:97:5)"]}
2020-11-10T19:54:47.792Z	AUTOTASK COMPLETE
```

---

<div class="post-metadata">

**Author:** ![Voorsie](https://avatars.discourse-cdn.com/v4/letter/v/a88e57/32.png) [@Voorsie](https://gov.yearn.fi/u/Voorsie)\
**Post date:** [11 November 2020 01:57 UTC](https://gov.yearn.fi/t/keep3rv1oracle-integration/7896/2 "2020-11-11T01:57:15Z")

</div>

I think the issue here is that this job seems to have a 200 KPR bonded requirement… Check the ‘minKeep’ variable in the job contract.

---

<div class="post-metadata">

**Author:** ![bolo](https://dub1.discourse-cdn.com/flex013/user_avatar/gov.yearn.fi/bolo/32/2368_2.png) [@bolo](https://gov.yearn.fi/u/bolo)\
**Post date:** [11 November 2020 02:14 UTC](https://gov.yearn.fi/t/keep3rv1oracle-integration/7896/3 "2020-11-11T02:14:16Z")

</div>

ah make sense. ty a lot to answer my newbee question 🙂

---

<div class="post-metadata">

**Author:** ![Voorsie](https://avatars.discourse-cdn.com/v4/letter/v/a88e57/32.png) [@Voorsie](https://gov.yearn.fi/u/Voorsie)\
**Post date:** [11 November 2020 03:21 UTC](https://gov.yearn.fi/t/keep3rv1oracle-integration/7896/4 "2020-11-11T03:21:51Z")

</div>

No problem! To be honest it had me questioning also for a while why the contract was failing while it was workable.

@andre.cronje, is it an idea to list these bonding requirements in the job description because now the only way seems to be digging in the contract code/variables. Is the variable universal for the different jobs? So will will it always be named ‘minKeep’ or is this up to the job contract creator?

---

<div class="post-metadata">

**Author:** ![andre.cronje](https://dub1.discourse-cdn.com/flex013/user_avatar/gov.yearn.fi/andre.cronje/32/2283_2.png) [@andre.cronje](https://gov.yearn.fi/u/andre.cronje)\
**Post date:** [11 November 2020 03:32 UTC](https://gov.yearn.fi/t/keep3rv1oracle-integration/7896/5 "2020-11-11T03:32:15Z")

</div>

Good idea, I’ll add an interface for Keep3rV1JobRegistry so that it is included, but it is up to the Job to implement. For example a Job might start at 0 requirement and work up to \> value if security requires it. A good idea is to include a standard interface to jobs, something along the lines of overriding `isKeeper` and `hasCredits` so that keepers can filter easier.

Great suggestion, thank you

---

<div class="post-metadata">

**Author:** ![senojlegin](https://avatars.discourse-cdn.com/v4/letter/s/f475e1/32.png) [@senojlegin](https://gov.yearn.fi/u/senojlegin)\
**Post date:** [4 March 2021 13:59 UTC](https://gov.yearn.fi/t/keep3rv1oracle-integration/7896/6 "2021-03-04T13:59:19Z")

</div>

Hi Andre

I appreciate this thread is a few months old, but did a solution to the problem of ascertaining Keeper prerequisites ever get implemented? If not, is the only way of achieving this to look at the source code and/or view the Read Contract information on etherscan?

Regards  
Nige
