Keep3r Network: OpenZeppelin | defender

The goal with Keep3r is simple, create an agnostic, easy to implement, incentivization layer for routine ecosystem maintenance.

Keepers, as described in the documentation, are technical users, capable of implementing bots and/or scripts and running these in some scheduled manner (cronjobs, tasks managers).

With OpenZeppelin | defender, this is no longer a requirement. We will walk through how to set up a keeper in a few simple steps, earning passive rewards, and not needing to worry about maintenance again.

Prerequisites

Step 1: Setup Relayer

Select Create Relayer fill in a Name and select Create , that simple.

Step 2: Setup Autotask

Select Create Autotask , choose a Name for your task, select how often you would like it to execute 1 for 1 minute , select your relayer (created in the previous step, this is optional). And enter your code snippet. As example, lets look at UniswapV2Oracle;

const workableAbi = <contract ABI>;
const workableAddr = <contract address>;
const from = <from address>;
const { ethers } = require("ethers");
const { DefenderRelaySigner } = require('defender-relay-client/lib/ethers');
// Entrypoint for the Autotask
exports.handler = async function(credentials) {
const provider = ethers.getDefaultProvider('mainnet');
const signer = new DefenderRelaySigner(credentials, provider, { speed: 'fastest', from });
const contract = new ethers.Contract(workableAddr, workableAbi, signer);
// Run work if needed
if (await contract.updateable()) {
const tx = await contract.work();
console.log(tx.hash);
}
}

For UniswapV2Oracle, there are two important calls;

  1. contract.updateable() returns a boolean true | false if calling contract.work() would be successful.
  2. contract.work() which does the maintenance job and rewards KP3R

Below is an example transaction;

Save the Autotask, and we are done;

The task will execute every minute, call updateable() and if it can update, it will call work

That simple.

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

How I Created a Simple Serverless Web App Using ES6 and MongoDB Stitch

Launching an S3 Bucket Using Terraform

In-house or SaaS: a Story of Support Tools Search

LifeCycle In Flutter: Simplified

What OAuth 2.0 isn’t

🙌We are very proud to hereby announce the official launching of the newest and the most exciting…

10 Ideas About the Immediate Future of Serverless Computing

Hackyness — lessons on how to approach hackathons from a personal experience

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Andre Cronje

Andre Cronje

More from Medium

ve(3,3) Ouroboros: Part 2 - Fees explored

The Olympus Treasury Dashboard

Protect your swaps against MEV attacks and trade for free with Sushi Guard 🍣💂

Yearn Finance heads to ETHDubai