Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
1 address found via
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 11193854 | 1056 days 14 hrs ago | IN | Create: Keep2rHelper | 0 ETH | 0.01102917 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Keep2rHelper
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-05 */ // SPDX-License-Identifier: MIT /** * KP2R.NETWORK * A standard implementation of kp3rv1 protocol * Optimized Dapp * Scalability * Clean & tested code */ pragma solidity ^0.6.12; library SafeMath { function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; require(c >= a, "add: +"); return c; } function add(uint a, uint b, string memory errorMessage) internal pure returns (uint) { uint c = a + b; require(c >= a, errorMessage); return c; } function sub(uint a, uint b) internal pure returns (uint) { return sub(a, b, "sub: -"); } function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) { require(b <= a, errorMessage); uint c = a - b; return c; } function mul(uint a, uint b) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; require(c / a == b, "mul: *"); return c; } function mul(uint a, uint b, string memory errorMessage) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; require(c / a == b, errorMessage); return c; } function div(uint a, uint b) internal pure returns (uint) { return div(a, b, "div: /"); } function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint a, uint b) internal pure returns (uint) { return mod(a, b, "mod: %"); } function mod(uint a, uint b, string memory errorMessage) internal pure returns (uint) { require(b != 0, errorMessage); return a % b; } } library Math { function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow, so we distribute return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2); } } interface IChainLinkFeed { function latestAnswer() external view returns (int256); } interface IKeep2r { function totalBonded() external view returns (uint); function bonds(address keeper, address credit) external view returns (uint); function votes(address keeper) external view returns (uint); } contract Keep2rHelper { using SafeMath for uint; IChainLinkFeed public constant FASTGAS = IChainLinkFeed(0x169E633A2D1E6c10dD91238Ba11c4A708dfEF37C); IKeep2r public constant KP2R = IKeep2r(0x9BdE098Be22658d057C3F1F185e3Fd4653E2fbD1); uint constant public BOOST = 50; uint constant public BASE = 10; uint constant public TARGETBOND = 200e18; uint constant public PRICE = 10; function getFastGas() external view returns (uint) { return uint(FASTGAS.latestAnswer()); } function bonds(address keeper) public view returns (uint) { return KP2R.bonds(keeper, address(KP2R)).add(KP2R.votes(keeper)); } function getQuoteLimitFor(address origin, uint gasUsed) public view returns (uint) { uint _min = gasUsed.mul(PRICE).mul(uint(FASTGAS.latestAnswer())); uint _boost = _min.mul(BOOST).div(BASE); // increase by 2.5 uint _bond = Math.min(bonds(origin), TARGETBOND); return Math.max(_min, _boost.mul(_bond).div(TARGETBOND)); } function getQuoteLimit(uint gasUsed) external view returns (uint) { return getQuoteLimitFor(tx.origin, gasUsed); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"BASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BOOST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FASTGAS","outputs":[{"internalType":"contract IChainLinkFeed","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KP2R","outputs":[{"internalType":"contract IKeep2r","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TARGETBOND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"keeper","type":"address"}],"name":"bonds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFastGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gasUsed","type":"uint256"}],"name":"getQuoteLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"origin","type":"address"},{"internalType":"uint256","name":"gasUsed","type":"uint256"}],"name":"getQuoteLimitFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061062a806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063904440bd11610066578063904440bd14610116578063aebf67c11461011e578063dbbc4a5714610142578063ec342ad014610106578063fe10d7741461014a5761009e565b80630421d7f2146100a35780632a84797f146100e1578063525ea631146100e95780638d859f3e146101065780638e686d561461010e575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b038135169060200135610170565b60408051918252519081900360200190f35b6100cf610267565b6100cf600480360360208110156100ff57600080fd5b503561026c565b6100cf610278565b6100cf61027d565b6100cf61028a565b61012661030a565b604080516001600160a01b039092168252519081900360200190f35b610126610322565b6100cf6004803603602081101561016057600080fd5b50356001600160a01b031661033a565b60008061020073169e633a2d1e6c10dd91238ba11c4a708dfef37c6001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101c357600080fd5b505afa1580156101d7573d6000803e3d6000fd5b505050506040513d60208110156101ed57600080fd5b50516101fa85600a61045f565b9061045f565b9050600061021a600a61021484603261045f565b906104be565b9050600061023961022a8761033a565b680ad78ebc5ac62000006104e9565b905061025b83610256680ad78ebc5ac6200000610214868661045f565b6104ff565b93505050505b92915050565b603281565b60006102613283610170565b600a81565b680ad78ebc5ac620000081565b600073169e633a2d1e6c10dd91238ba11c4a708dfef37c6001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102d957600080fd5b505afa1580156102ed573d6000803e3d6000fd5b505050506040513d602081101561030357600080fd5b5051905090565b739bde098be22658d057c3f1f185e3fd4653e2fbd181565b73169e633a2d1e6c10dd91238ba11c4a708dfef37c81565b6000610261739bde098be22658d057c3f1f185e3fd4653e2fbd16001600160a01b031663d8bff5a5846040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156103a057600080fd5b505afa1580156103b4573d6000803e3d6000fd5b505050506040513d60208110156103ca57600080fd5b50516040805163a39744b560e01b81526001600160a01b0386166004820152739bde098be22658d057c3f1f185e3fd4653e2fbd160248201819052915163a39744b591604480820192602092909190829003018186803b15801561042d57600080fd5b505afa158015610441573d6000803e3d6000fd5b505050506040513d602081101561045757600080fd5b50519061050f565b60008261046e57506000610261565b8282028284828161047b57fe5b04146104b7576040805162461bcd60e51b815260206004820152600660248201526536bab61d101560d11b604482015290519081900360640190fd5b9392505050565b60006104b78383604051806040016040528060068152602001656469763a202f60d01b815250610552565b60008183106104f857816104b7565b5090919050565b6000818310156104f857816104b7565b6000828201838110156104b7576040805162461bcd60e51b81526020600482015260066024820152656164643a202b60d01b604482015290519081900360640190fd5b600081836105de5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a357818101518382015260200161058b565b50505050905090810190601f1680156105d05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105ea57fe5b049594505050505056fea2646970667358221220fb010d03a3a77a84fbe233f696c3116a2d5c39bf72a56ae73bc687572d8019b764736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063904440bd11610066578063904440bd14610116578063aebf67c11461011e578063dbbc4a5714610142578063ec342ad014610106578063fe10d7741461014a5761009e565b80630421d7f2146100a35780632a84797f146100e1578063525ea631146100e95780638d859f3e146101065780638e686d561461010e575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b038135169060200135610170565b60408051918252519081900360200190f35b6100cf610267565b6100cf600480360360208110156100ff57600080fd5b503561026c565b6100cf610278565b6100cf61027d565b6100cf61028a565b61012661030a565b604080516001600160a01b039092168252519081900360200190f35b610126610322565b6100cf6004803603602081101561016057600080fd5b50356001600160a01b031661033a565b60008061020073169e633a2d1e6c10dd91238ba11c4a708dfef37c6001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101c357600080fd5b505afa1580156101d7573d6000803e3d6000fd5b505050506040513d60208110156101ed57600080fd5b50516101fa85600a61045f565b9061045f565b9050600061021a600a61021484603261045f565b906104be565b9050600061023961022a8761033a565b680ad78ebc5ac62000006104e9565b905061025b83610256680ad78ebc5ac6200000610214868661045f565b6104ff565b93505050505b92915050565b603281565b60006102613283610170565b600a81565b680ad78ebc5ac620000081565b600073169e633a2d1e6c10dd91238ba11c4a708dfef37c6001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102d957600080fd5b505afa1580156102ed573d6000803e3d6000fd5b505050506040513d602081101561030357600080fd5b5051905090565b739bde098be22658d057c3f1f185e3fd4653e2fbd181565b73169e633a2d1e6c10dd91238ba11c4a708dfef37c81565b6000610261739bde098be22658d057c3f1f185e3fd4653e2fbd16001600160a01b031663d8bff5a5846040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156103a057600080fd5b505afa1580156103b4573d6000803e3d6000fd5b505050506040513d60208110156103ca57600080fd5b50516040805163a39744b560e01b81526001600160a01b0386166004820152739bde098be22658d057c3f1f185e3fd4653e2fbd160248201819052915163a39744b591604480820192602092909190829003018186803b15801561042d57600080fd5b505afa158015610441573d6000803e3d6000fd5b505050506040513d602081101561045757600080fd5b50519061050f565b60008261046e57506000610261565b8282028284828161047b57fe5b04146104b7576040805162461bcd60e51b815260206004820152600660248201526536bab61d101560d11b604482015290519081900360640190fd5b9392505050565b60006104b78383604051806040016040528060068152602001656469763a202f60d01b815250610552565b60008183106104f857816104b7565b5090919050565b6000818310156104f857816104b7565b6000828201838110156104b7576040805162461bcd60e51b81526020600482015260066024820152656164643a202b60d01b604482015290519081900360640190fd5b600081836105de5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a357818101518382015260200161058b565b50505050905090810190601f1680156105d05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105ea57fe5b049594505050505056fea2646970667358221220fb010d03a3a77a84fbe233f696c3116a2d5c39bf72a56ae73bc687572d8019b764736f6c634300060c0033
Deployed Bytecode Sourcemap
2806:1184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3490:361;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3490:361:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3064:31;;;:::i;3859:128::-;;;;;;;;;;;;;;;;-1:-1:-1;3859:128:0;;:::i;3188:31::-;;;:::i;3139:40::-;;;:::i;3228:105::-;;;:::i;2973:82::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2973:82:0;;;;;;;;;;;;;;2867:99;;;:::i;3341:141::-;;;;;;;;;;;;;;;;-1:-1:-1;3341:141:0;-1:-1:-1;;;;;3341:141:0;;:::i;3490:361::-;3567:4;3584:9;3596:52;2923:42;-1:-1:-1;;;;;3624:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3624:22:0;3596:18;:7;3217:2;3596:11;:18::i;:::-;:22;;:52::i;:::-;3584:64;-1:-1:-1;3659:11:0;3673:25;3130:2;3673:15;3584:64;3093:2;3673:8;:15::i;:::-;:19;;:25::i;:::-;3659:39;;3728:10;3741:35;3750:13;3756:6;3750:5;:13::i;:::-;3173:6;3741:8;:35::i;:::-;3728:48;-1:-1:-1;3794:49:0;3803:4;3809:33;3173:6;3809:17;:6;3728:48;3809:10;:17::i;:33::-;3794:8;:49::i;:::-;3787:56;;;;;3490:361;;;;;:::o;3064:31::-;3093:2;3064:31;:::o;3859:128::-;3919:4;3943:36;3960:9;3971:7;3943:16;:36::i;3188:31::-;3217:2;3188:31;:::o;3139:40::-;3173:6;3139:40;:::o;3228:105::-;3273:4;2923:42;-1:-1:-1;;;;;3302:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3302:22:0;;-1:-1:-1;3228:105:0;:::o;2973:82::-;3012:42;2973:82;:::o;2867:99::-;2923:42;2867:99;:::o;3341:141::-;3393:4;3417:57;3012:42;-1:-1:-1;;;;;3455:10:0;;3466:6;3455:18;;;;;;;;;;;;;-1:-1:-1;;;;;3455:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3455:18:0;3417:33;;;-1:-1:-1;;;3417:33:0;;-1:-1:-1;;;;;3417:33:0;;;;;;3012:42;3417:33;;;;;;;;:10;;:33;;;;;3455:18;;3417:33;;;;;;;;3012:42;3417:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3417:33:0;;:37;:57::i;865:208::-;917:4;935:6;931:47;;-1:-1:-1;965:1:0;958:8;;931:47;999:5;;;1003:1;999;:5;:1;1023:5;;;;;:10;1015:29;;;;;-1:-1:-1;;;1015:29:0;;;;;;;;;;;;-1:-1:-1;;;1015:29:0;;;;;;;;;;;;;;;1064:1;865:208;-1:-1:-1;;;865:208:0:o;1325:103::-;1377:4;1401:19;1405:1;1408;1401:19;;;;;;;;;;;;;-1:-1:-1;;;1401:19:0;;;:3;:19::i;2170:106::-;2228:7;2259:1;2255;:5;:13;;2267:1;2255:13;;;-1:-1:-1;2263:1:0;;2170:106;-1:-1:-1;2170:106:0:o;2059:107::-;2117:7;2149:1;2144;:6;;:14;;2157:1;2144:14;;232:148;284:4;310:5;;;334:6;;;;326:25;;;;;-1:-1:-1;;;326:25:0;;;;;;;;;;;;-1:-1:-1;;;326:25:0;;;;;;;;;;;;;;1434:333;1514:4;1613:12;1606:5;1598:28;;;;-1:-1:-1;;;1598:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1637:6;1650:1;1646;:5;;;;;;;1434:333;-1:-1:-1;;;;;1434:333:0:o
Swarm Source
ipfs://fb010d03a3a77a84fbe233f696c3116a2d5c39bf72a56ae73bc687572d8019b7
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.