the first const “workableAbi” is the ABI, taken from the script, the second “workableAddr” is the Uniswap Oracle Keeper contract address and the third one “const from” is my OpenZeppelin relay address from the Ralyer as shown here:
const workableAbi = [{“inputs”:[{“internalType”:“address”,“name”:“_keep3r”,“type”:“address”}],“stateMutability”:“nonpayable”,“type”:“constructor”},{“inputs”:,“name”:“KP3R”,“outputs”:[{“internalType”:“contract IKeep3rV1”,“name”:“”,“type”:“address”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“acceptGovernance”,“outputs”:,“stateMutability”:“nonpayable”,“type”:“function”},{“inputs”:[{“internalType”:“address”,“name”:“tokenA”,“type”:“address”},{“internalType”:“address”,“name”:“tokenB”,“type”:“address”}],“name”:“add”,“outputs”:,“stateMutability”:“nonpayable”,“type”:“function”},{“inputs”:[{“internalType”:“address”,“name”:“tokenIn”,“type”:“address”},{“internalType”:“uint256”,“name”:“amountIn”,“type”:“uint256”},{“internalType”:“address”,“name”:“tokenOut”,“type”:“address”}],“name”:“consult”,“outputs”:[{“internalType”:“uint256”,“name”:“amountOut”,“type”:“uint256”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“factory”,“outputs”:[{“internalType”:“address”,“name”:“”,“type”:“address”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“governance”,“outputs”:[{“internalType”:“address”,“name”:“”,“type”:“address”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“granularity”,“outputs”:[{“internalType”:“uint8”,“name”:“”,“type”:“uint8”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:[{“internalType”:“address”,“name”:“”,“type”:“address”}],“name”:“lastUpdated”,“outputs”:[{“internalType”:“uint256”,“name”:“”,“type”:“uint256”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:[{“internalType”:“uint256”,“name”:“timestamp”,“type”:“uint256”}],“name”:“observationIndexOf”,“outputs”:[{“internalType”:“uint8”,“name”:“index”,“type”:“uint8”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:[{“internalType”:“address”,“name”:“”,“type”:“address”},{“internalType”:“uint256”,“name”:“”,“type”:“uint256”}],“name”:“pairObservations”,“outputs”:[{“internalType”:“uint256”,“name”:“timestamp”,“type”:“uint256”},{“internalType”:“uint256”,“name”:“price0Cumulative”,“type”:“uint256”},{“internalType”:“uint256”,“name”:“price1Cumulative”,“type”:“uint256”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“pairs”,“outputs”:[{“internalType”:“address”,“name”:“”,“type”:“address”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“pendingGovernance”,“outputs”:[{“internalType”:“address”,“name”:“”,“type”:“address”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“periodSize”,“outputs”:[{“internalType”:“uint256”,“name”:“”,“type”:“uint256”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:[{“internalType”:“address”,“name”:“_governance”,“type”:“address”}],“name”:“setGovernance”,“outputs”:,“stateMutability”:“nonpayable”,“type”:“function”},{“inputs”:[{“internalType”:“address”,“name”:“_keep3r”,“type”:“address”}],“name”:“setKeep3r”,“outputs”:,“stateMutability”:“nonpayable”,“type”:“function”},{“inputs”:[{“internalType”:“address”,“name”:“tokenA”,“type”:“address”},{“internalType”:“address”,“name”:“tokenB”,“type”:“address”}],“name”:“update”,“outputs”:[{“internalType”:“bool”,“name”:“”,“type”:“bool”}],“stateMutability”:“nonpayable”,“type”:“function”},{“inputs”:[{“internalType”:“uint256”,“name”:“i”,“type”:“uint256”},{“internalType”:“uint256”,“name”:“length”,“type”:“uint256”}],“name”:“updateFor”,“outputs”:[{“internalType”:“bool”,“name”:“updated”,“type”:“bool”}],“stateMutability”:“nonpayable”,“type”:“function”},{“inputs”:[{“internalType”:“address”,“name”:“pair”,“type”:“address”}],“name”:“updatePair”,“outputs”:[{“internalType”:“bool”,“name”:“”,“type”:“bool”}],“stateMutability”:“nonpayable”,“type”:“function”},{“inputs”:,“name”:“updateable”,“outputs”:[{“internalType”:“bool”,“name”:“”,“type”:“bool”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:[{“internalType”:“uint256”,“name”:“i”,“type”:“uint256”},{“internalType”:“uint256”,“name”:“length”,“type”:“uint256”}],“name”:“updateableFor”,“outputs”:[{“internalType”:“bool”,“name”:“”,“type”:“bool”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“updateableList”,“outputs”:[{“internalType”:“address”,“name”:“list”,“type”:“address”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“windowSize”,“outputs”:[{“internalType”:“uint256”,“name”:“”,“type”:“uint256”}],“stateMutability”:“view”,“type”:“function”},{“inputs”:,“name”:“work”,“outputs”:,“stateMutability”:“nonpayable”,“type”:“function”}];
I have some questions, maybe I do not really understand how OpenZeppelin works.
My Metamask wallet, with KP3R tokens, is connected to my account in OpenZeppelin.
Is the relay address from OpenZeppelin somehow connected to my real Metamask address? Because the Metamask address is bonded to Keep3r network and not the relay-address.
As I understand work can only be rewarded if the address is bonded (with 0 KP3R or more) to Keep3r network, so how to bond the relayer address ?? And where is the reward paid to?
Tried using my real Metamask address in the Autotask but unsuccessful when running the Autotask manually, not allowed. Or do I have to add this to the Addressbook of my OpenZeppelin account first?
Did this, added the address to OpenZeppelin and now the Autotask is running without error, so maybe this is how the Autotask will work? And if the contract is updateable some work will be done and rewarded?