Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.2.8
Contract Source Code (Vyper language format)
# @version ^0.2.0 interface UniswapV2Pair: def sync(): nonpayable interface Stakable: def deposit(_account: address, _amount: uint256) -> bool: nonpayable def stake(_reward: uint256) -> bool: nonpayable def withdraw(_account: address) -> bool: nonpayable event CommitOwnership: owner: address event ApplyOwnership: owner: address TOKEN: constant(address) = 0x674C6Ad92Fd080e4004b2312b45f796a192D27a0 MAX_PAIRS_LENGTH: constant(uint256) = 10 ** 3 uniswapPairs: public(address[MAX_PAIRS_LENGTH]) indexByPair: public(HashMap[address, uint256]) lastPairIndex: public(uint256) author: public(address) owner: public(address) futureOwner: public(address) @external def __init__(): self.author = msg.sender self.owner = msg.sender @external def deposit(_account: address, _amount: uint256) -> bool: assert msg.sender == self.owner or msg.sender == self.author, "owner only" return Stakable(TOKEN).deposit(_account, _amount) @external def stake(_reward: uint256) -> bool: assert msg.sender == self.owner or msg.sender == self.author, "owner only" assert Stakable(TOKEN).stake(_reward) _lastPairIndex: uint256 = self.lastPairIndex for i in range(1, MAX_PAIRS_LENGTH): if i > _lastPairIndex: break UniswapV2Pair(self.uniswapPairs[i]).sync() return True @external def withdraw(_account: address) -> bool: assert msg.sender == self.owner or msg.sender == self.author, "owner only" return Stakable(TOKEN).withdraw(_account) @external def addUniswapPair(_pair: address): assert msg.sender == self.owner or msg.sender == self.author, "owner only" assert _pair != ZERO_ADDRESS pairIndex: uint256 = self.indexByPair[_pair] assert pairIndex == 0, "pair is exist" pairIndex = self.lastPairIndex + 1 self.uniswapPairs[pairIndex] = _pair self.indexByPair[_pair] = pairIndex self.lastPairIndex = pairIndex @external def removeUniswapPair(_pair: address): assert msg.sender == self.owner or msg.sender == self.author, "owner only" pairIndex: uint256 = self.indexByPair[_pair] assert pairIndex > 0, "pair is not exist" recentPairIndex: uint256 = self.lastPairIndex lastPair: address = self.uniswapPairs[recentPairIndex] self.uniswapPairs[pairIndex] = lastPair self.indexByPair[lastPair] = pairIndex self.indexByPair[_pair] = 0 self.lastPairIndex = recentPairIndex - 1 @external def transferOwnership(_futureOwner: address): assert msg.sender == self.owner or msg.sender == self.author, "owner only" self.futureOwner = _futureOwner log CommitOwnership(_futureOwner) @external def applyOwnership(): assert msg.sender == self.owner or msg.sender == self.author, "owner only" _owner: address = self.futureOwner assert _owner != ZERO_ADDRESS, "owner not set" self.owner = _owner log ApplyOwnership(_owner)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"CommitOwnership","inputs":[{"type":"address","name":"owner","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyOwnership","inputs":[{"type":"address","name":"owner","indexed":false}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"name":"deposit","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_account"},{"type":"uint256","name":"_amount"}],"stateMutability":"nonpayable","type":"function","gas":3132},{"name":"stake","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"uint256","name":"_reward"}],"stateMutability":"nonpayable","type":"function","gas":3610746},{"name":"withdraw","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_account"}],"stateMutability":"nonpayable","type":"function","gas":3177},{"name":"addUniswapPair","outputs":[],"inputs":[{"type":"address","name":"_pair"}],"stateMutability":"nonpayable","type":"function","gas":109540},{"name":"removeUniswapPair","outputs":[],"inputs":[{"type":"address","name":"_pair"}],"stateMutability":"nonpayable","type":"function","gas":130509},{"name":"transferOwnership","outputs":[],"inputs":[{"type":"address","name":"_futureOwner"}],"stateMutability":"nonpayable","type":"function","gas":38591},{"name":"applyOwnership","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":39447},{"name":"uniswapPairs","outputs":[{"type":"address","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":1380},{"name":"indexByPair","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1516},{"name":"lastPairIndex","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1331},{"name":"author","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1361},{"name":"owner","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1391},{"name":"futureOwner","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1421}]
Contract Creation Code
33600355336004556108ce56341561000a57600080fd5b6004361015610018576108bc565b600035601c526347e7ef2460005114156101015760043560a01c1561003c57600080fd5b60045433141561004d576001610053565b60035433145b5b151561009f576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b60206101e060446347e7ef2461014052600435610160526024356101805261015c600073674c6ad92fd080e4004b2312b45f796a192d27a05af16100e257600080fd5b601f3d116100ef57600080fd5b6000506101e05160005260206000f350005b63a694fc3a600051141561027757600454331415610120576001610126565b60035433145b5b1515610172576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b60206101c0602463a694fc3a610140526004356101605261015c600073674c6ad92fd080e4004b2312b45f796a192d27a05af16101ae57600080fd5b601f3d116101bb57600080fd5b6000506101c0516101cb57600080fd5b6002546101405261016060016103e7818352015b610140516101605111156101f257610268565b610160516103e8811061020457600080fd5b600060c052602060c02001543b61021a57600080fd5b60006000600463fff6cae96101805261019c6000610160516103e8811061024057600080fd5b600060c052602060c02001545af161025757600080fd5b5b81516001018083528114156101df575b5050600160005260206000f350005b6351cff8d960005114156103535760043560a01c1561029557600080fd5b6004543314156102a65760016102ac565b60035433145b5b15156102f8576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b60206101c060246351cff8d9610140526004356101605261015c600073674c6ad92fd080e4004b2312b45f796a192d27a05af161033457600080fd5b601f3d1161034157600080fd5b6000506101c05160005260206000f350005b63a7f404e260005114156104a65760043560a01c1561037157600080fd5b600454331415610382576001610388565b60035433145b5b15156103d4576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b6000600435186103e357600080fd5b600160043560e05260c052604060c020546101405261014051151515610448576308c379a061016052602061018052600d6101a0527f70616972206973206578697374000000000000000000000000000000000000006101c0526101a050606461017cfd5b600254600181818301101561045c57600080fd5b8082019050905061014052600435610140516103e8811061047c57600080fd5b600060c052602060c020015561014051600160043560e05260c052604060c0205561014051600255005b63a6931ed760005114156106215760043560a01c156104c457600080fd5b6004543314156104d55760016104db565b60035433145b5b1515610527576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b600160043560e05260c052604060c020546101405260006101405111151561058e576308c379a06101605260206101805260116101a0527f70616972206973206e6f742065786973740000000000000000000000000000006101c0526101a050606461017cfd5b60025461016052610160516103e881106105a757600080fd5b600060c052602060c02001546101805261018051610140516103e881106105cd57600080fd5b600060c052602060c02001556101405160016101805160e05260c052604060c020556000600160043560e05260c052604060c020556101605160018082101561061557600080fd5b80820390509050600255005b63f2fde38b60005114156106d85760043560a01c1561063f57600080fd5b600454331415610650576001610656565b60035433145b5b15156106a2576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b600435600555600435610140527f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e96020610140a1005b630119020760005114156107db576004543314156106f75760016106fd565b60035433145b5b1515610749576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b60055461014052600061014051141515156107a3576308c379a061016052602061018052600d6101a0527f6f776e6572206e6f7420736574000000000000000000000000000000000000006101c0526101a050606461017cfd5b6101405160045561014051610160527febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056020610160a1005b638397e9936000511415610811576004356103e881106107fa57600080fd5b600060c052602060c020015460005260206000f350005b636d124d26600051141561084b5760043560a01c1561082f57600080fd5b600160043560e05260c052604060c0205460005260206000f350005b63fea83b0860005114156108675760025460005260206000f350005b63a6c3e6b960005114156108835760035460005260206000f350005b638da5cb5b600051141561089f5760045460005260206000f350005b63b9e9d1aa60005114156108bb5760055460005260206000f350005b5b60006000fd5b61000c6108ce0361000c60003961000c6108ce036000f3
Deployed Bytecode
0x341561000a57600080fd5b6004361015610018576108bc565b600035601c526347e7ef2460005114156101015760043560a01c1561003c57600080fd5b60045433141561004d576001610053565b60035433145b5b151561009f576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b60206101e060446347e7ef2461014052600435610160526024356101805261015c600073674c6ad92fd080e4004b2312b45f796a192d27a05af16100e257600080fd5b601f3d116100ef57600080fd5b6000506101e05160005260206000f350005b63a694fc3a600051141561027757600454331415610120576001610126565b60035433145b5b1515610172576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b60206101c0602463a694fc3a610140526004356101605261015c600073674c6ad92fd080e4004b2312b45f796a192d27a05af16101ae57600080fd5b601f3d116101bb57600080fd5b6000506101c0516101cb57600080fd5b6002546101405261016060016103e7818352015b610140516101605111156101f257610268565b610160516103e8811061020457600080fd5b600060c052602060c02001543b61021a57600080fd5b60006000600463fff6cae96101805261019c6000610160516103e8811061024057600080fd5b600060c052602060c02001545af161025757600080fd5b5b81516001018083528114156101df575b5050600160005260206000f350005b6351cff8d960005114156103535760043560a01c1561029557600080fd5b6004543314156102a65760016102ac565b60035433145b5b15156102f8576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b60206101c060246351cff8d9610140526004356101605261015c600073674c6ad92fd080e4004b2312b45f796a192d27a05af161033457600080fd5b601f3d1161034157600080fd5b6000506101c05160005260206000f350005b63a7f404e260005114156104a65760043560a01c1561037157600080fd5b600454331415610382576001610388565b60035433145b5b15156103d4576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b6000600435186103e357600080fd5b600160043560e05260c052604060c020546101405261014051151515610448576308c379a061016052602061018052600d6101a0527f70616972206973206578697374000000000000000000000000000000000000006101c0526101a050606461017cfd5b600254600181818301101561045c57600080fd5b8082019050905061014052600435610140516103e8811061047c57600080fd5b600060c052602060c020015561014051600160043560e05260c052604060c0205561014051600255005b63a6931ed760005114156106215760043560a01c156104c457600080fd5b6004543314156104d55760016104db565b60035433145b5b1515610527576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b600160043560e05260c052604060c020546101405260006101405111151561058e576308c379a06101605260206101805260116101a0527f70616972206973206e6f742065786973740000000000000000000000000000006101c0526101a050606461017cfd5b60025461016052610160516103e881106105a757600080fd5b600060c052602060c02001546101805261018051610140516103e881106105cd57600080fd5b600060c052602060c02001556101405160016101805160e05260c052604060c020556000600160043560e05260c052604060c020556101605160018082101561061557600080fd5b80820390509050600255005b63f2fde38b60005114156106d85760043560a01c1561063f57600080fd5b600454331415610650576001610656565b60035433145b5b15156106a2576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b600435600555600435610140527f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e96020610140a1005b630119020760005114156107db576004543314156106f75760016106fd565b60035433145b5b1515610749576308c379a061014052602061016052600a610180527f6f776e6572206f6e6c79000000000000000000000000000000000000000000006101a05261018050606461015cfd5b60055461014052600061014051141515156107a3576308c379a061016052602061018052600d6101a0527f6f776e6572206e6f7420736574000000000000000000000000000000000000006101c0526101a050606461017cfd5b6101405160045561014051610160527febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a11891056020610160a1005b638397e9936000511415610811576004356103e881106107fa57600080fd5b600060c052602060c020015460005260206000f350005b636d124d26600051141561084b5760043560a01c1561082f57600080fd5b600160043560e05260c052604060c0205460005260206000f350005b63fea83b0860005114156108675760025460005260206000f350005b63a6c3e6b960005114156108835760035460005260206000f350005b638da5cb5b600051141561089f5760045460005260206000f350005b63b9e9d1aa60005114156108bb5760055460005260206000f350005b5b60006000fd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.