Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 291 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Rewards | 18551628 | 299 days ago | IN | 0 ETH | 0.00192361 | ||||
Claim Rewards | 18551626 | 299 days ago | IN | 0 ETH | 0.00289253 | ||||
Claim Rewards | 18551624 | 299 days ago | IN | 0 ETH | 0.00153241 | ||||
Claim Rewards | 18515038 | 304 days ago | IN | 0 ETH | 0.00204805 | ||||
Claim Rewards | 18322307 | 331 days ago | IN | 0 ETH | 0.00059889 | ||||
Claim Rewards | 18322304 | 331 days ago | IN | 0 ETH | 0.00092388 | ||||
Claim Rewards | 18322299 | 331 days ago | IN | 0 ETH | 0.00053996 | ||||
Claim Rewards | 18322299 | 331 days ago | IN | 0 ETH | 0.00048529 | ||||
Claim Rewards | 18274790 | 337 days ago | IN | 0 ETH | 0.00034295 | ||||
Claim Rewards | 18003935 | 375 days ago | IN | 0 ETH | 0.00085326 | ||||
Claim Rewards | 17939752 | 384 days ago | IN | 0 ETH | 0.00076099 | ||||
Claim Rewards | 17938002 | 384 days ago | IN | 0 ETH | 0.00236202 | ||||
Claim Rewards | 17910041 | 388 days ago | IN | 0 ETH | 0.00074758 | ||||
Claim Rewards | 17891386 | 391 days ago | IN | 0 ETH | 0.0012819 | ||||
Claim Rewards | 17872470 | 394 days ago | IN | 0 ETH | 0.00153185 | ||||
Claim Rewards | 17872467 | 394 days ago | IN | 0 ETH | 0.00208032 | ||||
Claim Rewards | 17766094 | 408 days ago | IN | 0 ETH | 0.00133848 | ||||
Claim Rewards | 17756848 | 410 days ago | IN | 0 ETH | 0.00149441 | ||||
Claim Rewards | 17731988 | 413 days ago | IN | 0 ETH | 0.00118063 | ||||
Claim Rewards | 17730631 | 413 days ago | IN | 0 ETH | 0.00086706 | ||||
Claim Rewards | 17702401 | 417 days ago | IN | 0 ETH | 0.0005231 | ||||
Claim Rewards | 17698492 | 418 days ago | IN | 0 ETH | 0.00098747 | ||||
Claim Rewards | 17676841 | 421 days ago | IN | 0 ETH | 0.00119155 | ||||
Claim Rewards | 17594072 | 433 days ago | IN | 0 ETH | 0.0015152 | ||||
Claim Rewards | 17577350 | 435 days ago | IN | 0 ETH | 0.00155901 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17507839 | 445 days ago | 0.019137 ETH | ||||
17504723 | 445 days ago | 0.1179987 ETH | ||||
17491967 | 447 days ago | 0.06964083 ETH | ||||
17488901 | 447 days ago | 0.05101598 ETH | ||||
17462300 | 451 days ago | 0.04881857 ETH | ||||
17446472 | 453 days ago | 0.01541604 ETH | ||||
17424230 | 457 days ago | 0.02916873 ETH | ||||
17396028 | 461 days ago | 0.03880411 ETH | ||||
17382465 | 462 days ago | 0.11552445 ETH | ||||
17373470 | 464 days ago | 0.05557082 ETH | ||||
17358560 | 466 days ago | 0.00575063 ETH | ||||
17348459 | 467 days ago | 0.02315407 ETH | ||||
17303702 | 473 days ago | 0.04365481 ETH | ||||
17289860 | 475 days ago | 0.0928652 ETH | ||||
17254088 | 480 days ago | 0.07440468 ETH | ||||
17227762 | 484 days ago | 1.74914543 ETH | ||||
17154791 | 494 days ago | 0.00481585 ETH | ||||
17141012 | 496 days ago | 0.01849992 ETH | ||||
17141008 | 496 days ago | 0.03700019 ETH | ||||
17118685 | 500 days ago | 0.01496556 ETH | ||||
17063606 | 507 days ago | 0.02120356 ETH | ||||
17016521 | 514 days ago | 0.03375789 ETH | ||||
17012847 | 515 days ago | 0.06802631 ETH | ||||
16999486 | 517 days ago | 0.02420627 ETH | ||||
16994080 | 517 days ago | 0.14497278 ETH |
Loading...
Loading
Contract Name:
BodegaClaim
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-28 */ //SPDX-License-Identifier: MIT pragma solidity 0.8.14; interface IERC20 { function totalSupply() external view returns (uint256); function symbol() external view returns (string memory); function name() external view returns (string memory); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Returns the number of decimal places */ function decimals() external view returns (uint8); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable { address private owner; // event for EVM logging event OwnerSet(address indexed oldOwner, address indexed newOwner); // modifier to check if caller is owner modifier onlyOwner() { // If the first argument of 'require' evaluates to 'false', execution terminates and all // changes to the state and to Ether balances are reverted. // This used to consume all gas in old EVM versions, but not anymore. // It is often a good idea to use 'require' to check if functions are called correctly. // As a second argument, you can also provide an explanation about what went wrong. require(msg.sender == owner, "Caller is not owner"); _; } /** * @dev Set contract deployer as owner */ constructor() { owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor emit OwnerSet(address(0), owner); } /** * @dev Change owner * @param newOwner address of new owner */ function changeOwner(address newOwner) public onlyOwner { emit OwnerSet(owner, newOwner); owner = newOwner; } /** * @dev Return owner address * @return address of owner */ function getOwner() external view returns (address) { return owner; } } interface IBodega { function ownerOf(uint256 tokenId) external view returns (address); function getIDsByOwner(address owner) external view returns (uint256[] memory); } interface ITetherSucks { function transfer(address recipient, uint256 amount) external; } interface IChainlinkPriceFeed { function latestAnswer() external view returns (int256); } contract BodegaClaim is Ownable { // WETH address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // USDT address private constant USDT = 0xdAC17F958D2ee523a2206206994597C13D831ec7; // Chainlink ETH Oracle IChainlinkPriceFeed public constant ethPriceFeed = IChainlinkPriceFeed(0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419); // Bodega NFT contract IBodega public immutable bodega; // Mapping from tokenId to last time claimed mapping( uint256 => uint256 ) public lastClaim; // Reward Token Structure struct RewardToken { bool isApproved; uint rewardsPerBlockTier0; uint rewardsPerBlockTier1; uint rewardsPerBlockTier2; } // reward tracking mapping ( address => RewardToken ) public rewardToken; // constant break points uint256 public constant breakPoint0 = 111; uint256 public constant breakPoint1 = 1_222; // Set Bodega Contract constructor(address bodega_) { bodega = IBodega(bodega_); } /** For ETH Rewards, use WETH Address above, and set the USD Value formatted to 10^8 decimal places */ function setRewardTokenStats( address token, uint rewardPerDayFirstTier, uint rewardPerDaySecondTier, uint rewardPerDayThirdTier ) external onlyOwner { rewardToken[token] = RewardToken({ isApproved: true, rewardsPerBlockTier0: rewardPerDayFirstTier / 5760, rewardsPerBlockTier1: rewardPerDaySecondTier / 5760, rewardsPerBlockTier2: rewardPerDayThirdTier / 5760 }); } function removeRewardToken(address token) external onlyOwner { delete rewardToken[token]; } function resetClaim(uint256[] calldata tokenIds, uint256 decrement) external onlyOwner { uint len = tokenIds.length; for (uint i = 0; i < len;) { lastClaim[tokenIds[i]] = block.number - decrement; unchecked { ++i; } } } function withdrawETH(uint amount) external onlyOwner { (bool s,) = payable(msg.sender).call{value: amount}(""); require(s); } function withdrawTokens(address token, uint amount) external onlyOwner { if (token == USDT) { ITetherSucks(token).transfer(msg.sender, amount); } else { IERC20(token).transfer(msg.sender, amount); } } receive() external payable {} function initRewards(uint256 tokenId) external { require( msg.sender == address(bodega), 'Only Bodega' ); lastClaim[tokenId] = block.number; } function claimRewardsForUser(address token) external { require( rewardToken[token].isApproved, 'Only Approved Tokens' ); _batchClaimRewardsMemory(token, msg.sender, getIDsByOwner(msg.sender)); } function claimRewards(address token, uint256[] calldata tokenIds) external { require( rewardToken[token].isApproved, 'Only Approved Tokens' ); _batchClaimRewards(token, msg.sender, tokenIds); } function claimReward(address token, uint256 tokenId) external { require( rewardToken[token].isApproved, 'Only Approved Tokens' ); _claimReward(token, tokenId); } function _batchClaimRewards(address token, address user, uint256[] calldata tokenIds) internal { uint256 total; uint256 len = tokenIds.length; for (uint256 i = 0; i < len; ) { uint256 ID = tokenIds[i]; require(bodega.ownerOf(ID) == user, "Not Owner Of TokenID"); total += pendingRewardsForID(token, ID); lastClaim[ID] = block.number; unchecked { ++i; } } // send rewards to user _send(token, user, total); } function _batchClaimRewardsMemory(address token, address user, uint256[] memory tokenIds) internal { uint256 total; uint256 len = tokenIds.length; for (uint256 i = 0; i < len; ) { uint256 ID = tokenIds[i]; require(bodega.ownerOf(ID) == user, "Not Owner Of TokenID"); total += pendingRewardsForID(token, ID); lastClaim[ID] = block.number; unchecked { ++i; } } // send rewards to user _send(token, user, total); } /** Claims Reward For User */ function _claimReward(address token, uint256 tokenId) internal { // owner of token id address owner = bodega.ownerOf(tokenId); require( owner != address(0), 'Zero Owner' ); // fetch pending rewards uint256 pending = pendingRewardsForID(token, tokenId); // reset last claim lastClaim[tokenId] = block.number; // transfer reward to user _send(token, owner, pending); } function _send(address token, address to, uint256 amount) internal { // is the reward token ETH? bool isWETH = token == WETH; // reward token balance uint256 rBal = isWETH ? address(this).balance : IERC20(token).balanceOf(address(this)); // ensure overflow if (amount > rBal) { amount = rBal; } // return if no rewards if (amount == 0) { return; } // require success if (isWETH) { (bool s,) = payable(to).call{value: amount}(""); require(s); } else { if (token == USDT) { ITetherSucks(token).transfer(to, amount); } else { IERC20(token).transfer(to, amount); } } } function timeSince(uint256 tokenId) public view returns (uint256) { if (lastClaim[tokenId] == 0) { return 0; } return lastClaim[tokenId] < block.number ? block.number - lastClaim[tokenId] : 0; } function valuePerBlock(address token, uint256 tokenId) public view returns (uint256) { if (tokenId < breakPoint0) { return rewardToken[token].rewardsPerBlockTier0; } else if (tokenId < breakPoint1) { return rewardToken[token].rewardsPerBlockTier1; } else { return rewardToken[token].rewardsPerBlockTier2; } } function priceOfETH() public view returns (uint256) { int256 answer = ethPriceFeed.latestAnswer(); if (answer < 1000) { return 0; } else { return uint256(answer) / 10**8; } } /** Pending Rewards For `tokenId` */ function pendingRewardsForUser(address token, address user) external view returns (uint256 total) { uint256[] memory tokenIds = getIDsByOwner(user); uint256 len = tokenIds.length; for (uint256 i = 0; i < len; ) { total += pendingRewardsForID(token, tokenIds[i]); unchecked { ++i; } } } /** Pending Rewards For `tokenId` */ function pendingRewards(address token, uint256[] calldata tokenIds) public view returns (uint256 total) { uint256 len = tokenIds.length; for (uint256 i = 0; i < len; ) { total += pendingRewardsForID(token, tokenIds[i]); unchecked { ++i; } } } /** Pending Rewards For `tokenId` */ function pendingRewardsForID(address token, uint256 tokenId) public view returns (uint256) { uint timePassed = timeSince(tokenId); uint value = valuePerBlock(token, tokenId); return token == WETH ? (timePassed * value) / priceOfETH() : timePassed * value; } function getIDsByOwner(address owner) public view returns (uint256[] memory) { return bodega.getIDsByOwner(owner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"bodega_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"inputs":[],"name":"bodega","outputs":[{"internalType":"contract IBodega","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"breakPoint0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"breakPoint1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimRewardsForUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethPriceFeed","outputs":[{"internalType":"contract IChainlinkPriceFeed","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"getIDsByOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"initRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"pendingRewardsForID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"user","type":"address"}],"name":"pendingRewardsForUser","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceOfETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"removeRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256","name":"decrement","type":"uint256"}],"name":"resetClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardToken","outputs":[{"internalType":"bool","name":"isApproved","type":"bool"},{"internalType":"uint256","name":"rewardsPerBlockTier0","type":"uint256"},{"internalType":"uint256","name":"rewardsPerBlockTier1","type":"uint256"},{"internalType":"uint256","name":"rewardsPerBlockTier2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"rewardPerDayFirstTier","type":"uint256"},{"internalType":"uint256","name":"rewardPerDaySecondTier","type":"uint256"},{"internalType":"uint256","name":"rewardPerDayThirdTier","type":"uint256"}],"name":"setRewardTokenStats","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"timeSince","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"valuePerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234801561001057600080fd5b5060405161184538038061184583398101604081905261002f9161007f565b600080546001600160a01b0319163390811782556040519091907f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735908290a36001600160a01b03166080526100af565b60006020828403121561009157600080fd5b81516001600160a01b03811681146100a857600080fd5b9392505050565b6080516117586100ed600039600081816104a00152818161090101528181610c3901528181610d5c01528181610e8b0152610fac01526117586000f3fe60806040526004361061014f5760003560e01c806387a7433b116100b6578063af7665ce1161006f578063af7665ce146103bc578063b121c95e146103e4578063cdef91d014610404578063d8cb735a1461046e578063da7e690c1461048e578063f14210a6146104c257600080fd5b806387a7433b146102f4578063887c207a14610314578063893d20e81461032a57806398eaf9551461035c578063a6f9dae11461037c578063aea95da61461039c57600080fd5b806337619e761161010857806337619e76146102305780633d3728b5146102505780633d509c971461027d5780635bf244be1461029d5780635ece6aa1146102ca578063858b033d146102df57600080fd5b806305231dea1461015b57806306b091f91461017d5780630b87d4c61461019d578063174e31c4146101bd57806327692420146101dd5780633187e5a0146101fd57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b61017636600461133d565b6104e2565b005b34801561018957600080fd5b5061017b610198366004611392565b610534565b3480156101a957600080fd5b5061017b6101b83660046113be565b61065c565b3480156101c957600080fd5b5061017b6101d8366004611392565b6106db565b3480156101e957600080fd5b5061017b6101f836600461140a565b61071d565b34801561020957600080fd5b5061021d610218366004611445565b6107db565b6040519081526020015b60405180910390f35b34801561023c57600080fd5b5061017b61024b36600461145e565b610833565b34801561025c57600080fd5b5061021d61026b366004611445565b60016020526000908152604090205481565b34801561028957600080fd5b5061017b61029836600461145e565b610881565b3480156102a957600080fd5b506102bd6102b836600461145e565b6108df565b6040516102279190611482565b3480156102d657600080fd5b5061021d606f81565b3480156102eb57600080fd5b5061021d610972565b34801561030057600080fd5b5061021d61030f36600461133d565b610a13565b34801561032057600080fd5b5061021d6104c681565b34801561033657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610227565b34801561036857600080fd5b5061021d610377366004611392565b610a5f565b34801561038857600080fd5b5061017b61039736600461145e565b610ad9565b3480156103a857600080fd5b5061021d6103b73660046114c6565b610b5e565b3480156103c857600080fd5b50610344735f4ec3df9cbd43714fe2740f5e3616155c5b841981565b3480156103f057600080fd5b5061021d6103ff366004611392565b610bba565b34801561041057600080fd5b5061044c61041f36600461145e565b6002602081905260009182526040909120805460018201549282015460039092015460ff90911692919084565b6040805194151585526020850193909352918301526060820152608001610227565b34801561047a57600080fd5b5061017b610489366004611445565b610c2e565b34801561049a57600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ce57600080fd5b5061017b6104dd366004611445565b610ca7565b6001600160a01b03831660009081526002602052604090205460ff166105235760405162461bcd60e51b815260040161051a906114ff565b60405180910390fd5b61052f83338484610d26565b505050565b6000546001600160a01b0316331461055e5760405162461bcd60e51b815260040161051a9061152d565b73dac17f958d2ee523a2206206994597c13d831ec6196001600160a01b038316016105e75760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401600060405180830381600087803b1580156105cb57600080fd5b505af11580156105df573d6000803e3d6000fd5b505050505050565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f919061155a565b5050565b6000546001600160a01b031633146106865760405162461bcd60e51b815260040161051a9061152d565b8160005b818110156106d45761069c8343611592565b600160008787858181106106b2576106b26115a9565b602090810292909201358352508101919091526040016000205560010161068a565b5050505050565b6001600160a01b03821660009081526002602052604090205460ff166107135760405162461bcd60e51b815260040161051a906114ff565b6106588282610e72565b6000546001600160a01b031633146107475760405162461bcd60e51b815260040161051a9061152d565b60408051608081019091526001815260208101610766611680866115bf565b8152602001610777611680856115bf565b8152602001610788611680846115bf565b90526001600160a01b03949094166000908152600260208181526040928390208751815460ff19169015151781559087015160018201559186015190820155606090940151600390940193909355505050565b60008181526001602052604081205481036107f857506000919050565b600082815260016020526040902054431161081457600061082d565b60008281526001602052604090205461082d9043611592565b92915050565b6001600160a01b03811660009081526002602052604090205460ff1661086b5760405162461bcd60e51b815260040161051a906114ff565b61087e8133610879336108df565b610f73565b50565b6000546001600160a01b031633146108ab5760405162461bcd60e51b815260040161051a9061152d565b6001600160a01b031660009081526002602081905260408220805460ff191681556001810183905590810182905560030155565b604051632df9225f60e11b81526001600160a01b0382811660048301526060917f000000000000000000000000000000000000000000000000000000000000000090911690635bf244be90602401600060405180830381865afa15801561094a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082d91908101906115f7565b600080735f4ec3df9cbd43714fe2740f5e3616155c5b84196001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb91906116b5565b90506103e88112156109ff57600091505090565b610a0d6305f5e100826115bf565b91505090565b600081815b81811015610a5657610a4286868684818110610a3657610a366115a9565b90506020020135610bba565b610a4c90846116ce565b9250600101610a18565b50509392505050565b6000606f821015610a8c57506001600160a01b03821660009081526002602052604090206001015461082d565b6104c6821015610ab957506001600160a01b0382166000908152600260208190526040909120015461082d565b50506001600160a01b031660009081526002602052604090206003015490565b6000546001600160a01b03163314610b035760405162461bcd60e51b815260040161051a9061152d565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610b6a836108df565b805190915060005b81811015610bb157610b9d86848381518110610b9057610b906115a9565b6020026020010151610bba565b610ba790856116ce565b9350600101610b72565b50505092915050565b600080610bc6836107db565b90506000610bd48585610a5f565b90506001600160a01b03851673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214610c0957610c0481836116e6565b610c25565b610c11610972565b610c1b82846116e6565b610c2591906115bf565b95945050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c945760405162461bcd60e51b815260206004820152600b60248201526a4f6e6c7920426f6465676160a81b604482015260640161051a565b6000908152600160205260409020439055565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161051a9061152d565b604051600090339083908381818185875af1925050503d8060008114610d13576040519150601f19603f3d011682016040523d82523d6000602084013e610d18565b606091505b505090508061065857600080fd5b600081815b81811015610e66576000858583818110610d4757610d476115a9565b905060200201359050866001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610da891815260200190565b602060405180830381865afa158015610dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de99190611705565b6001600160a01b031614610e365760405162461bcd60e51b8152602060048201526014602482015273139bdd0813dddb995c8813d988151bdad95b925160621b604482015260640161051a565b610e408882610bba565b610e4a90856116ce565b6000918252600160208190526040909220439055935001610d2b565b506105df8686846110be565b6040516331a9108f60e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190611705565b90506001600160a01b038116610f435760405162461bcd60e51b815260206004820152600a6024820152692d32b9379027bbb732b960b11b604482015260640161051a565b6000610f4f8484610bba565b60008481526001602052604090204390559050610f6d8483836110be565b50505050565b8051600090815b818110156110b6576000848281518110610f9657610f966115a9565b60200260200101519050856001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610ff891815260200190565b602060405180830381865afa158015611015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110399190611705565b6001600160a01b0316146110865760405162461bcd60e51b8152602060048201526014602482015273139bdd0813dddb995c8813d988151bdad95b925160621b604482015260640161051a565b6110908782610bba565b61109a90856116ce565b6000918252600160208190526040909220439055935001610f7a565b506106d48585845b6001600160a01b03831673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214600081611152576040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa158015611129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114d91906116b5565b611154565b475b905080831115611162578092505b82600003611171575050505050565b81156111dd576000846001600160a01b03168460405160006040518083038185875af1925050503d80600081146111c4576040519150601f19603f3d011682016040523d82523d6000602084013e6111c9565b606091505b50509050806111d757600080fd5b506106d4565b73dac17f958d2ee523a2206206994597c13d831ec6196001600160a01b038616016112695760405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb90604401600060405180830381600087803b15801561124c57600080fd5b505af1158015611260573d6000803e3d6000fd5b505050506106d4565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb906044016020604051808303816000875af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105df919061155a565b6001600160a01b038116811461087e57600080fd5b60008083601f84011261130357600080fd5b50813567ffffffffffffffff81111561131b57600080fd5b6020830191508360208260051b850101111561133657600080fd5b9250929050565b60008060006040848603121561135257600080fd5b833561135d816112dc565b9250602084013567ffffffffffffffff81111561137957600080fd5b611385868287016112f1565b9497909650939450505050565b600080604083850312156113a557600080fd5b82356113b0816112dc565b946020939093013593505050565b6000806000604084860312156113d357600080fd5b833567ffffffffffffffff8111156113ea57600080fd5b6113f6868287016112f1565b909790965060209590950135949350505050565b6000806000806080858703121561142057600080fd5b843561142b816112dc565b966020860135965060408601359560600135945092505050565b60006020828403121561145757600080fd5b5035919050565b60006020828403121561147057600080fd5b813561147b816112dc565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156114ba5783518352928401929184019160010161149e565b50909695505050505050565b600080604083850312156114d957600080fd5b82356114e4816112dc565b915060208301356114f4816112dc565b809150509250929050565b6020808252601490820152734f6e6c7920417070726f76656420546f6b656e7360601b604082015260600190565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b60006020828403121561156c57600080fd5b8151801515811461147b57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156115a4576115a461157c565b500390565b634e487b7160e01b600052603260045260246000fd5b6000826115dc57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561160a57600080fd5b825167ffffffffffffffff8082111561162257600080fd5b818501915085601f83011261163657600080fd5b815181811115611648576116486115e1565b8060051b604051601f19603f8301168101818110858211171561166d5761166d6115e1565b60405291825284820192508381018501918883111561168b57600080fd5b938501935b828510156116a957845184529385019392850192611690565b98975050505050505050565b6000602082840312156116c757600080fd5b5051919050565b600082198211156116e1576116e161157c565b500190565b60008160001904831182151516156117005761170061157c565b500290565b60006020828403121561171757600080fd5b815161147b816112dc56fea2646970667358221220e9995403275c4ed543ee3fe54bc2499db1572fb8f08a5e435e14427ec6e7170064736f6c634300080e0033000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc9
Deployed Bytecode
0x60806040526004361061014f5760003560e01c806387a7433b116100b6578063af7665ce1161006f578063af7665ce146103bc578063b121c95e146103e4578063cdef91d014610404578063d8cb735a1461046e578063da7e690c1461048e578063f14210a6146104c257600080fd5b806387a7433b146102f4578063887c207a14610314578063893d20e81461032a57806398eaf9551461035c578063a6f9dae11461037c578063aea95da61461039c57600080fd5b806337619e761161010857806337619e76146102305780633d3728b5146102505780633d509c971461027d5780635bf244be1461029d5780635ece6aa1146102ca578063858b033d146102df57600080fd5b806305231dea1461015b57806306b091f91461017d5780630b87d4c61461019d578063174e31c4146101bd57806327692420146101dd5780633187e5a0146101fd57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5061017b61017636600461133d565b6104e2565b005b34801561018957600080fd5b5061017b610198366004611392565b610534565b3480156101a957600080fd5b5061017b6101b83660046113be565b61065c565b3480156101c957600080fd5b5061017b6101d8366004611392565b6106db565b3480156101e957600080fd5b5061017b6101f836600461140a565b61071d565b34801561020957600080fd5b5061021d610218366004611445565b6107db565b6040519081526020015b60405180910390f35b34801561023c57600080fd5b5061017b61024b36600461145e565b610833565b34801561025c57600080fd5b5061021d61026b366004611445565b60016020526000908152604090205481565b34801561028957600080fd5b5061017b61029836600461145e565b610881565b3480156102a957600080fd5b506102bd6102b836600461145e565b6108df565b6040516102279190611482565b3480156102d657600080fd5b5061021d606f81565b3480156102eb57600080fd5b5061021d610972565b34801561030057600080fd5b5061021d61030f36600461133d565b610a13565b34801561032057600080fd5b5061021d6104c681565b34801561033657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610227565b34801561036857600080fd5b5061021d610377366004611392565b610a5f565b34801561038857600080fd5b5061017b61039736600461145e565b610ad9565b3480156103a857600080fd5b5061021d6103b73660046114c6565b610b5e565b3480156103c857600080fd5b50610344735f4ec3df9cbd43714fe2740f5e3616155c5b841981565b3480156103f057600080fd5b5061021d6103ff366004611392565b610bba565b34801561041057600080fd5b5061044c61041f36600461145e565b6002602081905260009182526040909120805460018201549282015460039092015460ff90911692919084565b6040805194151585526020850193909352918301526060820152608001610227565b34801561047a57600080fd5b5061017b610489366004611445565b610c2e565b34801561049a57600080fd5b506103447f000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc981565b3480156104ce57600080fd5b5061017b6104dd366004611445565b610ca7565b6001600160a01b03831660009081526002602052604090205460ff166105235760405162461bcd60e51b815260040161051a906114ff565b60405180910390fd5b61052f83338484610d26565b505050565b6000546001600160a01b0316331461055e5760405162461bcd60e51b815260040161051a9061152d565b73dac17f958d2ee523a2206206994597c13d831ec6196001600160a01b038316016105e75760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401600060405180830381600087803b1580156105cb57600080fd5b505af11580156105df573d6000803e3d6000fd5b505050505050565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f919061155a565b5050565b6000546001600160a01b031633146106865760405162461bcd60e51b815260040161051a9061152d565b8160005b818110156106d45761069c8343611592565b600160008787858181106106b2576106b26115a9565b602090810292909201358352508101919091526040016000205560010161068a565b5050505050565b6001600160a01b03821660009081526002602052604090205460ff166107135760405162461bcd60e51b815260040161051a906114ff565b6106588282610e72565b6000546001600160a01b031633146107475760405162461bcd60e51b815260040161051a9061152d565b60408051608081019091526001815260208101610766611680866115bf565b8152602001610777611680856115bf565b8152602001610788611680846115bf565b90526001600160a01b03949094166000908152600260208181526040928390208751815460ff19169015151781559087015160018201559186015190820155606090940151600390940193909355505050565b60008181526001602052604081205481036107f857506000919050565b600082815260016020526040902054431161081457600061082d565b60008281526001602052604090205461082d9043611592565b92915050565b6001600160a01b03811660009081526002602052604090205460ff1661086b5760405162461bcd60e51b815260040161051a906114ff565b61087e8133610879336108df565b610f73565b50565b6000546001600160a01b031633146108ab5760405162461bcd60e51b815260040161051a9061152d565b6001600160a01b031660009081526002602081905260408220805460ff191681556001810183905590810182905560030155565b604051632df9225f60e11b81526001600160a01b0382811660048301526060917f000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc990911690635bf244be90602401600060405180830381865afa15801561094a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082d91908101906115f7565b600080735f4ec3df9cbd43714fe2740f5e3616155c5b84196001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb91906116b5565b90506103e88112156109ff57600091505090565b610a0d6305f5e100826115bf565b91505090565b600081815b81811015610a5657610a4286868684818110610a3657610a366115a9565b90506020020135610bba565b610a4c90846116ce565b9250600101610a18565b50509392505050565b6000606f821015610a8c57506001600160a01b03821660009081526002602052604090206001015461082d565b6104c6821015610ab957506001600160a01b0382166000908152600260208190526040909120015461082d565b50506001600160a01b031660009081526002602052604090206003015490565b6000546001600160a01b03163314610b035760405162461bcd60e51b815260040161051a9061152d565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610b6a836108df565b805190915060005b81811015610bb157610b9d86848381518110610b9057610b906115a9565b6020026020010151610bba565b610ba790856116ce565b9350600101610b72565b50505092915050565b600080610bc6836107db565b90506000610bd48585610a5f565b90506001600160a01b03851673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214610c0957610c0481836116e6565b610c25565b610c11610972565b610c1b82846116e6565b610c2591906115bf565b95945050505050565b336001600160a01b037f000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc91614610c945760405162461bcd60e51b815260206004820152600b60248201526a4f6e6c7920426f6465676160a81b604482015260640161051a565b6000908152600160205260409020439055565b6000546001600160a01b03163314610cd15760405162461bcd60e51b815260040161051a9061152d565b604051600090339083908381818185875af1925050503d8060008114610d13576040519150601f19603f3d011682016040523d82523d6000602084013e610d18565b606091505b505090508061065857600080fd5b600081815b81811015610e66576000858583818110610d4757610d476115a9565b905060200201359050866001600160a01b03167f000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc96001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610da891815260200190565b602060405180830381865afa158015610dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de99190611705565b6001600160a01b031614610e365760405162461bcd60e51b8152602060048201526014602482015273139bdd0813dddb995c8813d988151bdad95b925160621b604482015260640161051a565b610e408882610bba565b610e4a90856116ce565b6000918252600160208190526040909220439055935001610d2b565b506105df8686846110be565b6040516331a9108f60e11b8152600481018290526000907f000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc96001600160a01b031690636352211e90602401602060405180830381865afa158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe9190611705565b90506001600160a01b038116610f435760405162461bcd60e51b815260206004820152600a6024820152692d32b9379027bbb732b960b11b604482015260640161051a565b6000610f4f8484610bba565b60008481526001602052604090204390559050610f6d8483836110be565b50505050565b8051600090815b818110156110b6576000848281518110610f9657610f966115a9565b60200260200101519050856001600160a01b03167f000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc96001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610ff891815260200190565b602060405180830381865afa158015611015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110399190611705565b6001600160a01b0316146110865760405162461bcd60e51b8152602060048201526014602482015273139bdd0813dddb995c8813d988151bdad95b925160621b604482015260640161051a565b6110908782610bba565b61109a90856116ce565b6000918252600160208190526040909220439055935001610f7a565b506106d48585845b6001600160a01b03831673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214600081611152576040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa158015611129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114d91906116b5565b611154565b475b905080831115611162578092505b82600003611171575050505050565b81156111dd576000846001600160a01b03168460405160006040518083038185875af1925050503d80600081146111c4576040519150601f19603f3d011682016040523d82523d6000602084013e6111c9565b606091505b50509050806111d757600080fd5b506106d4565b73dac17f958d2ee523a2206206994597c13d831ec6196001600160a01b038616016112695760405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb90604401600060405180830381600087803b15801561124c57600080fd5b505af1158015611260573d6000803e3d6000fd5b505050506106d4565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb906044016020604051808303816000875af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105df919061155a565b6001600160a01b038116811461087e57600080fd5b60008083601f84011261130357600080fd5b50813567ffffffffffffffff81111561131b57600080fd5b6020830191508360208260051b850101111561133657600080fd5b9250929050565b60008060006040848603121561135257600080fd5b833561135d816112dc565b9250602084013567ffffffffffffffff81111561137957600080fd5b611385868287016112f1565b9497909650939450505050565b600080604083850312156113a557600080fd5b82356113b0816112dc565b946020939093013593505050565b6000806000604084860312156113d357600080fd5b833567ffffffffffffffff8111156113ea57600080fd5b6113f6868287016112f1565b909790965060209590950135949350505050565b6000806000806080858703121561142057600080fd5b843561142b816112dc565b966020860135965060408601359560600135945092505050565b60006020828403121561145757600080fd5b5035919050565b60006020828403121561147057600080fd5b813561147b816112dc565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156114ba5783518352928401929184019160010161149e565b50909695505050505050565b600080604083850312156114d957600080fd5b82356114e4816112dc565b915060208301356114f4816112dc565b809150509250929050565b6020808252601490820152734f6e6c7920417070726f76656420546f6b656e7360601b604082015260600190565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b60006020828403121561156c57600080fd5b8151801515811461147b57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156115a4576115a461157c565b500390565b634e487b7160e01b600052603260045260246000fd5b6000826115dc57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561160a57600080fd5b825167ffffffffffffffff8082111561162257600080fd5b818501915085601f83011261163657600080fd5b815181811115611648576116486115e1565b8060051b604051601f19603f8301168101818110858211171561166d5761166d6115e1565b60405291825284820192508381018501918883111561168b57600080fd5b938501935b828510156116a957845184529385019392850192611690565b98975050505050505050565b6000602082840312156116c757600080fd5b5051919050565b600082198211156116e1576116e161157c565b500190565b60008160001904831182151516156117005761170061157c565b500290565b60006020828403121561171757600080fd5b815161147b816112dc56fea2646970667358221220e9995403275c4ed543ee3fe54bc2499db1572fb8f08a5e435e14427ec6e7170064736f6c634300080e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc9
-----Decoded View---------------
Arg [0] : bodega_ (address): 0x147C0aE0FC74f59A760f6CFD0Da4907cF11B8Dc9
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000147c0ae0fc74f59a760f6cfd0da4907cf11b8dc9
Deployed Bytecode Sourcemap
4770:8436:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7794:251;;;;;;;;;;-1:-1:-1;7794:251:0;;;;;:::i;:::-;;:::i;:::-;;7021:258;;;;;;;;;;-1:-1:-1;7021:258:0;;;;;:::i;:::-;;:::i;6580:277::-;;;;;;;;;;-1:-1:-1;6580:277:0;;;;;:::i;:::-;;:::i;8053:219::-;;;;;;;;;;-1:-1:-1;8053:219:0;;;;;:::i;:::-;;:::i;5976:483::-;;;;;;;;;;-1:-1:-1;5976:483:0;;;;;:::i;:::-;;:::i;10851:241::-;;;;;;;;;;-1:-1:-1;10851:241:0;;;;;:::i;:::-;;:::i;:::-;;;2717:25:1;;;2705:2;2690:18;10851:241:0;;;;;;;;7534:252;;;;;;;;;;-1:-1:-1;7534:252:0;;;;;:::i;:::-;;:::i;5273:46::-;;;;;;;;;;-1:-1:-1;5273:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;6467:105;;;;;;;;;;-1:-1:-1;6467:105:0;;;;;:::i;:::-;;:::i;13041:162::-;;;;;;;;;;-1:-1:-1;13041:162:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5644:41::-;;;;;;;;;;;;5682:3;5644:41;;11496:241;;;;;;;;;;;;;:::i;12283:362::-;;;;;;;;;;-1:-1:-1;12283:362:0;;;;;:::i;:::-;;:::i;5692:43::-;;;;;;;;;;;;5730:5;5692:43;;4297:83;;;;;;;;;;-1:-1:-1;4340:7:0;4367:5;-1:-1:-1;;;;;4367:5:0;4297:83;;;-1:-1:-1;;;;;3806:32:1;;;3788:51;;3776:2;3761:18;4297:83:0;3642:203:1;11100:388:0;;;;;;;;;;-1:-1:-1;11100:388:0;;;;;:::i;:::-;;:::i;4072:132::-;;;;;;;;;;-1:-1:-1;4072:132:0;;;;;:::i;:::-;;:::i;11802:416::-;;;;;;;;;;-1:-1:-1;11802:416:0;;;;;:::i;:::-;;:::i;5032:114::-;;;;;;;;;;;;5103:42;5032:114;;12710:323;;;;;;;;;;-1:-1:-1;12710:323:0;;;;;:::i;:::-;;:::i;5552:53::-;;;;;;;;;;-1:-1:-1;5552:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4728:14:1;;4721:22;4703:41;;4775:2;4760:18;;4753:34;;;;4803:18;;;4796:34;4861:2;4846:18;;4839:34;4690:3;4675:19;5552:53:0;4478:401:1;7324:200:0;;;;;;;;;;-1:-1:-1;7324:200:0;;;;;:::i;:::-;;:::i;5183:31::-;;;;;;;;;;;;;;;6865:148;;;;;;;;;;-1:-1:-1;6865:148:0;;;;;:::i;:::-;;:::i;7794:251::-;-1:-1:-1;;;;;7902:18:0;;;;;;:11;:18;;;;;:29;;;7880:99;;;;-1:-1:-1;;;7880:99:0;;;;;;;:::i;:::-;;;;;;;;;7990:47;8009:5;8016:10;8028:8;;7990:18;:47::i;:::-;7794:251;;;:::o;7021:258::-;3683:5;;-1:-1:-1;;;;;3683:5:0;3669:10;:19;3661:51;;;;-1:-1:-1;;;3661:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;7107:13:0;::::1;::::0;7103:169:::1;;7137:48;::::0;-1:-1:-1;;;7137:48:0;;7166:10:::1;7137:48;::::0;::::1;5978:51:1::0;6045:18;;;6038:34;;;-1:-1:-1;;;;;7137:28:0;::::1;::::0;::::1;::::0;5951:18:1;;7137:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7021:258:::0;;:::o;7103:169::-:1;7218:42;::::0;-1:-1:-1;;;7218:42:0;;7241:10:::1;7218:42;::::0;::::1;5978:51:1::0;6045:18;;;6038:34;;;-1:-1:-1;;;;;7218:22:0;::::1;::::0;::::1;::::0;5951:18:1;;7218:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7103:169::-;7021:258:::0;;:::o;6580:277::-;3683:5;;-1:-1:-1;;;;;3683:5:0;3669:10;:19;3661:51;;;;-1:-1:-1;;;3661:51:0;;;;;;;:::i;:::-;6689:8;6678::::1;6715:135;6736:3;6732:1;:7;6715:135;;;6782:24;6797:9:::0;6782:12:::1;:24;:::i;:::-;6757:9;:22;6767:8;;6776:1;6767:11;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;6757:22:::0;;-1:-1:-1;6757:22:0;::::1;::::0;;;;;;-1:-1:-1;6757:22:0;:49;6833:3:::1;;6715:135;;;;6667:190;6580:277:::0;;;:::o;8053:219::-;-1:-1:-1;;;;;8148:18:0;;;;;;:11;:18;;;;;:29;;;8126:99;;;;-1:-1:-1;;;8126:99:0;;;;;;;:::i;:::-;8236:28;8249:5;8256:7;8236:12;:28::i;5976:483::-;3683:5;;-1:-1:-1;;;;;3683:5:0;3669:10;:19;3661:51;;;;-1:-1:-1;;;3661:51:0;;;;;;;:::i;:::-;6200:251:::1;::::0;;::::1;::::0;::::1;::::0;;;6239:4:::1;6200:251:::0;;::::1;::::0;::::1;6280:28;6304:4;6280:21:::0;:28:::1;:::i;:::-;6200:251:::0;;::::1;;6345:29;6370:4;6345:22:::0;:29:::1;:::i;:::-;6200:251:::0;;::::1;;6411:28;6435:4;6411:21:::0;:28:::1;:::i;:::-;6200:251:::0;;-1:-1:-1;;;;;6179:18:0;;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;;:272;;;;-1:-1:-1;;6179:272:0::1;::::0;::::1;;;::::0;;;;::::1;::::0;-1:-1:-1;6179:272:0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;5976:483:0:o;10851:241::-;10908:7;10932:18;;;:9;:18;;;;;;:23;;10928:64;;-1:-1:-1;10979:1:0;;10851:241;-1:-1:-1;10851:241:0:o;10928:64::-;11011:18;;;;:9;:18;;;;;;11032:12;-1:-1:-1;11011:73:0;;11083:1;11011:73;;;11062:18;;;;:9;:18;;;;;;11047:33;;:12;:33;:::i;:::-;11004:80;10851:241;-1:-1:-1;;10851:241:0:o;7534:252::-;-1:-1:-1;;;;;7620:18:0;;;;;;:11;:18;;;;;:29;;;7598:99;;;;-1:-1:-1;;;7598:99:0;;;;;;;:::i;:::-;7708:70;7733:5;7740:10;7752:25;7766:10;7752:13;:25::i;:::-;7708:24;:70::i;:::-;7534:252;:::o;6467:105::-;3683:5;;-1:-1:-1;;;;;3683:5:0;3669:10;:19;3661:51;;;;-1:-1:-1;;;3661:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6546:18:0::1;;::::0;;;:11:::1;:18;::::0;;;;;;6539:25;;-1:-1:-1;;6539:25:0::1;::::0;;;;::::1;::::0;;;;;::::1;::::0;;;::::1;;::::0;6467:105::o;13041:162::-;13168:27;;-1:-1:-1;;;13168:27:0;;-1:-1:-1;;;;;3806:32:1;;;13168:27:0;;;3788:51:1;13127:16:0;;13168:6;:20;;;;;;3761:18:1;;13168:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13168:27:0;;;;;;;;;;;;:::i;11496:241::-;11539:7;11559:13;5103:42;-1:-1:-1;;;;;11575:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11559:43;;11626:4;11617:6;:13;11613:117;;;11654:1;11647:8;;;11496:241;:::o;11613:117::-;11695:23;11713:5;11703:6;11695:23;:::i;:::-;11688:30;;;11496:241;:::o;12283:362::-;12399:13;12444:8;12399:13;12470:168;12494:3;12490:1;:7;12470:168;;;12525:39;12545:5;12552:8;;12561:1;12552:11;;;;;;;:::i;:::-;;;;;;;12525:19;:39::i;:::-;12516:48;;;;:::i;:::-;;-1:-1:-1;12608:3:0;;12470:168;;;;12419:226;12283:362;;;;;:::o;11100:388::-;11176:7;5682:3;11200:7;:21;11196:285;;;-1:-1:-1;;;;;;11245:18:0;;;;;;:11;:18;;;;;:39;;;11238:46;;11196:285;5730:5;11306:7;:21;11302:179;;;-1:-1:-1;;;;;;11351:18:0;;;;;;:11;:18;;;;;;;;:39;;11344:46;;11302:179;-1:-1:-1;;;;;;;11430:18:0;;;;;:11;:18;;;;;:39;;;;11100:388::o;4072:132::-;3683:5;;-1:-1:-1;;;;;3683:5:0;3669:10;:19;3661:51;;;;-1:-1:-1;;;3661:51:0;;;;;;;:::i;:::-;4153:5:::1;::::0;;4144:25:::1;::::0;-1:-1:-1;;;;;4144:25:0;;::::1;::::0;4153:5;::::1;::::0;4144:25:::1;::::0;::::1;4180:5;:16:::0;;-1:-1:-1;;;;;;4180:16:0::1;-1:-1:-1::0;;;;;4180:16:0;;;::::1;::::0;;;::::1;::::0;;4072:132::o;11802:416::-;11912:13;11943:25;11971:19;11985:4;11971:13;:19::i;:::-;12017:15;;11943:47;;-1:-1:-1;12003:11:0;12043:168;12067:3;12063:1;:7;12043:168;;;12098:39;12118:5;12125:8;12134:1;12125:11;;;;;;;;:::i;:::-;;;;;;;12098:19;:39::i;:::-;12089:48;;;;:::i;:::-;;-1:-1:-1;12181:3:0;;12043:168;;;;11932:286;;11802:416;;;;:::o;12710:323::-;12819:7;12844:15;12862:18;12872:7;12862:9;:18::i;:::-;12844:36;;12891:10;12904:29;12918:5;12925:7;12904:13;:29::i;:::-;12891:42;-1:-1:-1;;;;;;12953:13:0;;4856:42;12953:13;:72;;13007:18;13020:5;13007:10;:18;:::i;:::-;12953:72;;;12992:12;:10;:12::i;:::-;12970:18;12983:5;12970:10;:18;:::i;:::-;12969:35;;;;:::i;:::-;12946:79;12710:323;-1:-1:-1;;;;;12710:323:0:o;7324:200::-;7404:10;-1:-1:-1;;;;;7426:6:0;7404:29;;7382:90;;;;-1:-1:-1;;;7382:90:0;;8919:2:1;7382:90:0;;;8901:21:1;8958:2;8938:18;;;8931:30;-1:-1:-1;;;8977:18:1;;;8970:41;9028:18;;7382:90:0;8717:335:1;7382:90:0;7483:18;;;;:9;:18;;;;;7504:12;7483:33;;7324:200::o;6865:148::-;3683:5;;-1:-1:-1;;;;;3683:5:0;3669:10;:19;3661:51;;;;-1:-1:-1;;;3661:51:0;;;;;;;:::i;:::-;6941:43:::1;::::0;6930:6:::1;::::0;6949:10:::1;::::0;6973:6;;6930;6941:43;6930:6;6941:43;6973:6;6949:10;6941:43:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6929:55;;;7003:1;6995:10;;;::::0;::::1;8282:579:::0;8402:13;8440:8;8402:13;8468:315;8492:3;8488:1;:7;8468:315;;;8514:10;8527:8;;8536:1;8527:11;;;;;;;:::i;:::-;;;;;;;8514:24;;8583:4;-1:-1:-1;;;;;8561:26:0;:6;-1:-1:-1;;;;;8561:14:0;;8576:2;8561:18;;;;;;;;;;;;;2717:25:1;;2705:2;2690:18;;2571:177;8561:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8561:26:0;;8553:59;;;;-1:-1:-1;;;8553:59:0;;9725:2:1;8553:59:0;;;9707:21:1;9764:2;9744:18;;;9737:30;-1:-1:-1;;;9783:18:1;;;9776:50;9843:18;;8553:59:0;9523:344:1;8553:59:0;8636:30;8656:5;8663:2;8636:19;:30::i;:::-;8627:39;;;;:::i;:::-;8681:13;;;;:9;:13;;;;;;;;8697:12;8681:28;;8627:39;-1:-1:-1;8753:3:0;8468:315;;;;8828:25;8834:5;8841:4;8847:5;8828;:25::i;9510:495::-;9632:23;;-1:-1:-1;;;9632:23:0;;;;;2717:25:1;;;9616:13:0;;9632:6;-1:-1:-1;;;;;9632:14:0;;;;2690:18:1;;9632:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9616:39;-1:-1:-1;;;;;;9688:19:0;;9666:79;;;;-1:-1:-1;;;9666:79:0;;10074:2:1;9666:79:0;;;10056:21:1;10113:2;10093:18;;;10086:30;-1:-1:-1;;;10132:18:1;;;10125:40;10182:18;;9666:79:0;9872:334:1;9666:79:0;9792:15;9810:35;9830:5;9837:7;9810:19;:35::i;:::-;9887:18;;;;:9;:18;;;;;9908:12;9887:33;;9792:53;-1:-1:-1;9969:28:0;9975:5;9982;9792:53;9969:5;:28::i;:::-;9573:432;;9510:495;;:::o;8869:583::-;9031:15;;8993:13;;;9059:315;9083:3;9079:1;:7;9059:315;;;9105:10;9118:8;9127:1;9118:11;;;;;;;;:::i;:::-;;;;;;;9105:24;;9174:4;-1:-1:-1;;;;;9152:26:0;:6;-1:-1:-1;;;;;9152:14:0;;9167:2;9152:18;;;;;;;;;;;;;2717:25:1;;2705:2;2690:18;;2571:177;9152:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9152:26:0;;9144:59;;;;-1:-1:-1;;;9144:59:0;;9725:2:1;9144:59:0;;;9707:21:1;9764:2;9744:18;;;9737:30;-1:-1:-1;;;9783:18:1;;;9776:50;9843:18;;9144:59:0;9523:344:1;9144:59:0;9227:30;9247:5;9254:2;9227:19;:30::i;:::-;9218:39;;;;:::i;:::-;9272:13;;;;:9;:13;;;;;;;;9288:12;9272:28;;9218:39;-1:-1:-1;9344:3:0;9059:315;;;;9419:25;9425:5;9432:4;9438:5;10013:830;-1:-1:-1;;;;;10144:13:0;;4856:42;10144:13;10130:11;10144:13;10218:71;;10251:38;;-1:-1:-1;;;10251:38:0;;10283:4;10251:38;;;3788:51:1;-1:-1:-1;;;;;10251:23:0;;;;;3761:18:1;;10251:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10218:71;;;10227:21;10218:71;10203:86;;10343:4;10334:6;:13;10330:59;;;10373:4;10364:13;;10330:59;10438:6;10448:1;10438:11;10434:50;;10466:7;;10013:830;;;:::o;10434:50::-;10528:6;10524:312;;;10552:6;10571:2;-1:-1:-1;;;;;10563:16:0;10587:6;10563:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10551:47;;;10621:1;10613:10;;;;;;10536:99;10524:312;;;-1:-1:-1;;;;;;;10660:13:0;;;10656:169;;10694:40;;-1:-1:-1;;;10694:40:0;;-1:-1:-1;;;;;5996:32:1;;;10694:40:0;;;5978:51:1;6045:18;;;6038:34;;;10694:28:0;;;;;5951:18:1;;10694:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10656:169;;;10775:34;;-1:-1:-1;;;10775:34:0;;-1:-1:-1;;;;;5996:32:1;;;10775:34:0;;;5978:51:1;6045:18;;;6038:34;;;10775:22:0;;;;;5951:18:1;;10775:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:367;213:8;223:6;277:3;270:4;262:6;258:17;254:27;244:55;;295:1;292;285:12;244:55;-1:-1:-1;318:20:1;;361:18;350:30;;347:50;;;393:1;390;383:12;347:50;430:4;422:6;418:17;406:29;;490:3;483:4;473:6;470:1;466:14;458:6;454:27;450:38;447:47;444:67;;;507:1;504;497:12;444:67;150:367;;;;;:::o;522:572::-;617:6;625;633;686:2;674:9;665:7;661:23;657:32;654:52;;;702:1;699;692:12;654:52;741:9;728:23;760:31;785:5;760:31;:::i;:::-;810:5;-1:-1:-1;866:2:1;851:18;;838:32;893:18;882:30;;879:50;;;925:1;922;915:12;879:50;964:70;1026:7;1017:6;1006:9;1002:22;964:70;:::i;:::-;522:572;;1053:8;;-1:-1:-1;938:96:1;;-1:-1:-1;;;;522:572:1:o;1099:315::-;1167:6;1175;1228:2;1216:9;1207:7;1203:23;1199:32;1196:52;;;1244:1;1241;1234:12;1196:52;1283:9;1270:23;1302:31;1327:5;1302:31;:::i;:::-;1352:5;1404:2;1389:18;;;;1376:32;;-1:-1:-1;;;1099:315:1:o;1419:505::-;1514:6;1522;1530;1583:2;1571:9;1562:7;1558:23;1554:32;1551:52;;;1599:1;1596;1589:12;1551:52;1639:9;1626:23;1672:18;1664:6;1661:30;1658:50;;;1704:1;1701;1694:12;1658:50;1743:70;1805:7;1796:6;1785:9;1781:22;1743:70;:::i;:::-;1832:8;;1717:96;;-1:-1:-1;1914:2:1;1899:18;;;;1886:32;;1419:505;-1:-1:-1;;;;1419:505:1:o;1929:452::-;2015:6;2023;2031;2039;2092:3;2080:9;2071:7;2067:23;2063:33;2060:53;;;2109:1;2106;2099:12;2060:53;2148:9;2135:23;2167:31;2192:5;2167:31;:::i;:::-;2217:5;2269:2;2254:18;;2241:32;;-1:-1:-1;2320:2:1;2305:18;;2292:32;;2371:2;2356:18;2343:32;;-1:-1:-1;1929:452:1;-1:-1:-1;;;1929:452:1:o;2386:180::-;2445:6;2498:2;2486:9;2477:7;2473:23;2469:32;2466:52;;;2514:1;2511;2504:12;2466:52;-1:-1:-1;2537:23:1;;2386:180;-1:-1:-1;2386:180:1:o;2753:247::-;2812:6;2865:2;2853:9;2844:7;2840:23;2836:32;2833:52;;;2881:1;2878;2871:12;2833:52;2920:9;2907:23;2939:31;2964:5;2939:31;:::i;:::-;2989:5;2753:247;-1:-1:-1;;;2753:247:1:o;3005:632::-;3176:2;3228:21;;;3298:13;;3201:18;;;3320:22;;;3147:4;;3176:2;3399:15;;;;3373:2;3358:18;;;3147:4;3442:169;3456:6;3453:1;3450:13;3442:169;;;3517:13;;3505:26;;3586:15;;;;3551:12;;;;3478:1;3471:9;3442:169;;;-1:-1:-1;3628:3:1;;3005:632;-1:-1:-1;;;;;;3005:632:1:o;3850:388::-;3918:6;3926;3979:2;3967:9;3958:7;3954:23;3950:32;3947:52;;;3995:1;3992;3985:12;3947:52;4034:9;4021:23;4053:31;4078:5;4053:31;:::i;:::-;4103:5;-1:-1:-1;4160:2:1;4145:18;;4132:32;4173:33;4132:32;4173:33;:::i;:::-;4225:7;4215:17;;;3850:388;;;;;:::o;5107:344::-;5309:2;5291:21;;;5348:2;5328:18;;;5321:30;-1:-1:-1;;;5382:2:1;5367:18;;5360:50;5442:2;5427:18;;5107:344::o;5456:343::-;5658:2;5640:21;;;5697:2;5677:18;;;5670:30;-1:-1:-1;;;5731:2:1;5716:18;;5709:49;5790:2;5775:18;;5456:343::o;6083:277::-;6150:6;6203:2;6191:9;6182:7;6178:23;6174:32;6171:52;;;6219:1;6216;6209:12;6171:52;6251:9;6245:16;6304:5;6297:13;6290:21;6283:5;6280:32;6270:60;;6326:1;6323;6316:12;6365:127;6426:10;6421:3;6417:20;6414:1;6407:31;6457:4;6454:1;6447:15;6481:4;6478:1;6471:15;6497:125;6537:4;6565:1;6562;6559:8;6556:34;;;6570:18;;:::i;:::-;-1:-1:-1;6607:9:1;;6497:125::o;6627:127::-;6688:10;6683:3;6679:20;6676:1;6669:31;6719:4;6716:1;6709:15;6743:4;6740:1;6733:15;6759:217;6799:1;6825;6815:132;;6869:10;6864:3;6860:20;6857:1;6850:31;6904:4;6901:1;6894:15;6932:4;6929:1;6922:15;6815:132;-1:-1:-1;6961:9:1;;6759:217::o;6981:127::-;7042:10;7037:3;7033:20;7030:1;7023:31;7073:4;7070:1;7063:15;7097:4;7094:1;7087:15;7113:1105;7208:6;7239:2;7282;7270:9;7261:7;7257:23;7253:32;7250:52;;;7298:1;7295;7288:12;7250:52;7331:9;7325:16;7360:18;7401:2;7393:6;7390:14;7387:34;;;7417:1;7414;7407:12;7387:34;7455:6;7444:9;7440:22;7430:32;;7500:7;7493:4;7489:2;7485:13;7481:27;7471:55;;7522:1;7519;7512:12;7471:55;7551:2;7545:9;7573:2;7569;7566:10;7563:36;;;7579:18;;:::i;:::-;7625:2;7622:1;7618:10;7657:2;7651:9;7720:2;7716:7;7711:2;7707;7703:11;7699:25;7691:6;7687:38;7775:6;7763:10;7760:22;7755:2;7743:10;7740:18;7737:46;7734:72;;;7786:18;;:::i;:::-;7822:2;7815:22;7872:18;;;7906:15;;;;-1:-1:-1;7948:11:1;;;7944:20;;;7976:19;;;7973:39;;;8008:1;8005;7998:12;7973:39;8032:11;;;;8052:135;8068:6;8063:3;8060:15;8052:135;;;8134:10;;8122:23;;8085:12;;;;8165;;;;8052:135;;;8206:6;7113:1105;-1:-1:-1;;;;;;;;7113:1105:1:o;8223:183::-;8292:6;8345:2;8333:9;8324:7;8320:23;8316:32;8313:52;;;8361:1;8358;8351:12;8313:52;-1:-1:-1;8384:16:1;;8223:183;-1:-1:-1;8223:183:1:o;8411:128::-;8451:3;8482:1;8478:6;8475:1;8472:13;8469:39;;;8488:18;;:::i;:::-;-1:-1:-1;8524:9:1;;8411:128::o;8544:168::-;8584:7;8650:1;8646;8642:6;8638:14;8635:1;8632:21;8627:1;8620:9;8613:17;8609:45;8606:71;;;8657:18;;:::i;:::-;-1:-1:-1;8697:9:1;;8544:168::o;9267:251::-;9337:6;9390:2;9378:9;9369:7;9365:23;9361:32;9358:52;;;9406:1;9403;9396:12;9358:52;9438:9;9432:16;9457:31;9482:5;9457:31;:::i
Swarm Source
ipfs://e9995403275c4ed543ee3fe54bc2499db1572fb8f08a5e435e14427ec6e71700
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.