Overview
S Balance
0 S
S Value
-More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update Fee Recip... | 657847 | 7 hrs ago | IN | 0 S | 0.00003395 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
StakingWithOptionalReferral
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2024-12-19 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /// @title StakingWithOptionalReferral - A staking contract for SANIC tokens with optional referrals and compounding rewards. /// @dev This contract includes the IERC20 interface inline to avoid external imports. interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract StakingWithOptionalReferral { IERC20 public sanicToken; // Token to be staked address public feeRecipient; // Address to receive fees address public owner; // Contract owner uint256 public dailyRewardRate = 8; // 8% daily rewards uint256 public depositFee = 5; // 5% deposit fee uint256 public referralFee = 12; // 12% referral bonus if a referrer is provided struct User { uint256 depositedAmount; uint256 lastClaimTime; } mapping(address => User) public users; mapping(address => address) public referrers; // Tracks referrers for users event Deposit( address indexed user, uint256 amount, uint256 netAmount, address indexed referrer ); event ClaimRewards(address indexed user, uint256 reward, uint256 fee); event Compound(address indexed user, uint256 compoundedAmount); event FeePaid(address indexed user, uint256 fee); event ReferralBonusPaid(address indexed referrer, uint256 bonus); event TokenUpdated(address indexed oldToken, address indexed newToken); event FeeRecipientUpdated(address indexed oldRecipient, address indexed newRecipient); modifier onlyOwner() { require(msg.sender == owner, "Not authorized"); _; } constructor() { sanicToken = IERC20(0x18b7566936e19FdFff08A1e20c301bc401985666); // Hardcoded SANIC token address feeRecipient = 0x18b7566936e19FdFff08A1e20c301bc401985666; // Hardcoded fee recipient address owner = msg.sender; } function deposit(uint256 _amount, address _referrer) external { require(_amount > 0, "Deposit amount must be greater than zero"); // Check allowance uint256 allowance = sanicToken.allowance(msg.sender, address(this)); require(allowance >= _amount, "Token allowance too low. Approve the contract first."); // Check sender's balance uint256 balance = sanicToken.balanceOf(msg.sender); require(balance >= _amount, "Insufficient token balance for deposit."); // Transfer tokens from sender to contract bool success = sanicToken.transferFrom(msg.sender, address(this), _amount); require(success, "Token transfer failed"); // Calculate deposit fee uint256 fee = (_amount * depositFee) / 100; uint256 netAmount = _amount - fee; // Transfer fee to feeRecipient success = sanicToken.transfer(feeRecipient, fee); require(success, "Fee transfer failed"); // Handle optional referral bonus if (_referrer != address(0) && _referrer != msg.sender) { uint256 referralBonus = (_amount * referralFee) / 100; success = sanicToken.transfer(_referrer, referralBonus); require(success, "Referral bonus transfer failed"); referrers[msg.sender] = _referrer; emit ReferralBonusPaid(_referrer, referralBonus); } // Update user's deposited amount and last claim time User storage user = users[msg.sender]; user.depositedAmount += netAmount; user.lastClaimTime = block.timestamp; emit Deposit(msg.sender, _amount, netAmount, _referrer); emit FeePaid(msg.sender, fee); } function claimRewards() external { User storage user = users[msg.sender]; require(user.depositedAmount > 0, "No deposits found"); uint256 rewards = calculateRewards(msg.sender); require(rewards > 0, "No rewards available"); // Calculate claim fee uint256 fee = (rewards * depositFee) / 100; // Claim rewards fee uint256 netRewards = rewards - fee; // Update user's last claim time user.lastClaimTime = block.timestamp; // Transfer net rewards to user bool success = sanicToken.transfer(msg.sender, netRewards); require(success, "Reward transfer failed"); // Transfer fee to feeRecipient success = sanicToken.transfer(feeRecipient, fee); require(success, "Fee transfer failed"); emit ClaimRewards(msg.sender, netRewards, fee); } function compound() external { User storage user = users[msg.sender]; require(user.depositedAmount > 0, "No deposits found"); uint256 rewards = calculateRewards(msg.sender); require(rewards > 0, "No rewards available"); // Update user's last claim time user.lastClaimTime = block.timestamp; // Add rewards to deposited amount (compounding) user.depositedAmount += rewards; emit Compound(msg.sender, rewards); } function calculateRewards(address _user) public view returns (uint256) { User memory user = users[_user]; uint256 elapsedTime = block.timestamp - user.lastClaimTime; uint256 dailyRewards = (user.depositedAmount * dailyRewardRate) / 100; return (dailyRewards * elapsedTime) / 1 days; } function updateToken(address _newToken) external onlyOwner { require(_newToken != address(0), "Invalid token address"); address oldToken = address(sanicToken); sanicToken = IERC20(_newToken); emit TokenUpdated(oldToken, _newToken); } function updateFeeRecipient(address _newRecipient) external onlyOwner { require(_newRecipient != address(0), "Invalid fee recipient address"); address oldRecipient = feeRecipient; feeRecipient = _newRecipient; emit FeeRecipientUpdated(oldRecipient, _newRecipient); } function getDepositedAmount(address _user) external view returns (uint256) { return users[_user].depositedAmount; } function getPendingRewards(address _user) external view returns (uint256) { return calculateRewards(_user); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"ClaimRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"compoundedAmount","type":"uint256"}],"name":"Compound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"netAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeePaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldRecipient","type":"address"},{"indexed":true,"internalType":"address","name":"newRecipient","type":"address"}],"name":"FeeRecipientUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint256","name":"bonus","type":"uint256"}],"name":"ReferralBonusPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldToken","type":"address"},{"indexed":true,"internalType":"address","name":"newToken","type":"address"}],"name":"TokenUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"calculateRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dailyRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_referrer","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDepositedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sanicToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newRecipient","type":"address"}],"name":"updateFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newToken","type":"address"}],"name":"updateToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"lastClaimTime","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405260086003556005600455600c60055534801561001e575f80fd5b507318b7566936e19fdfff08a1e20c301bc4019856665f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507318b7566936e19fdfff08a1e20c301bc40198566660015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611e17806101135f395ff3fe608060405234801561000f575f80fd5b50600436106100fe575f3560e01c80638da5cb5b11610095578063f160d36911610064578063f160d3691461029b578063f69e2046146102b7578063f6ed2017146102c1578063f7128024146102f1576100fe565b80638da5cb5b146101fe578063a87430ba1461021c578063c1e3d2dd1461024d578063e9081ec71461026b576100fe565b806367a52793116100d157806367a527931461018a5780636e553f65146101a85780637ad3def2146101c457806384ae2bc6146101e0576100fe565b8063372500ab14610102578063469048401461010c5780634a3b68cc1461012a57806364ab86751461015a575b5f80fd5b61010a61030f565b005b610114610649565b6040516101219190611486565b60405180910390f35b610144600480360381019061013f91906114cd565b61066e565b6040516101519190611486565b60405180910390f35b610174600480360381019061016f91906114cd565b61069e565b6040516101819190611510565b60405180910390f35b610192610754565b60405161019f9190611510565b60405180910390f35b6101c260048036038101906101bd9190611553565b61075a565b005b6101de60048036038101906101d991906114cd565b610eb5565b005b6101e8611073565b6040516101f59190611510565b60405180910390f35b610206611079565b6040516102139190611486565b60405180910390f35b610236600480360381019061023191906114cd565b61109e565b604051610244929190611591565b60405180910390f35b6102556110be565b6040516102629190611510565b60405180910390f35b610285600480360381019061028091906114cd565b6110c4565b6040516102929190611510565b60405180910390f35b6102b560048036038101906102b091906114cd565b61110c565b005b6102bf6112cc565b005b6102db60048036038101906102d691906114cd565b611413565b6040516102e89190611510565b60405180910390f35b6102f9611424565b6040516103069190611613565b60405180910390f35b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f015411610394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038b90611686565b60405180910390fd5b5f61039e3361069e565b90505f81116103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d9906116ee565b60405180910390fd5b5f6064600454836103f39190611739565b6103fd91906117a7565b90505f818361040c91906117d7565b90504284600101819055505f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161047392919061180a565b6020604051808303815f875af115801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190611866565b9050806104f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ec906118db565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161057092919061180a565b6020604051808303815f875af115801561058c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b09190611866565b9050806105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990611943565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f674a8930d4166ce2352c3dc1e9ff633595db479f71f3741270a0a73a52cb7b0f838560405161063a929190611591565b60405180910390a25050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f820154815260200160018201548152505090505f81602001514261070e91906117d7565b90505f6064600354845f01516107249190611739565b61072e91906117a7565b90506201518082826107409190611739565b61074a91906117a7565b9350505050919050565b60045481565b5f821161079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906119d1565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016107f89291906119ef565b602060405180830381865afa158015610813573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108379190611a2a565b90508281101561087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390611ac5565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016108d69190611486565b602060405180830381865afa1580156108f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190611a2a565b90508381101561095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095190611b53565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b81526004016109b893929190611b71565b6020604051808303815f875af11580156109d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f89190611866565b905080610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3190611bf0565b60405180910390fd5b5f606460045487610a4b9190611739565b610a5591906117a7565b90505f8187610a6491906117d7565b90505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610ae192919061180a565b6020604051808303815f875af1158015610afd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b219190611866565b925082610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a90611943565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610bcb57503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15610d94575f606460055489610be19190611739565b610beb91906117a7565b90505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88836040518363ffffffff1660e01b8152600401610c4792919061180a565b6020604051808303815f875af1158015610c63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c879190611866565b935083610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090611c58565b60405180910390fd5b8660075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508673ffffffffffffffffffffffffffffffffffffffff167f050bae3eeefac62a4ee36c766f4f426f09edf96ae8fb3034ebbf961e4acc78e282604051610d8a9190611510565b60405180910390a2505b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905081815f015f828254610de69190611c76565b925050819055504281600101819055508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b478a85604051610e55929190611591565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f075a2720282fdf622141dae0b048ef90a21a7e57c134c76912d19d006b3b3f6f84604051610ea39190611510565b60405180910390a25050505050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90611cf3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa990611d5b565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0b1186973f810894b87ab0bfbee422fddcaad21b46dc705a561451bbb6bac11760405160405180910390a35050565b60055481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6006602052805f5260405f205f91509050805f0154908060010154905082565b60035481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01549050919050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290611cf3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120090611dc3565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360405160405180910390a35050565b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f015411611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134890611686565b60405180910390fd5b5f61135b3361069e565b90505f811161139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906116ee565b60405180910390fd5b42826001018190555080825f015f8282546113ba9190611c76565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f169f1815ebdea059aac3bb00ec9a9594c7a5ffcb64a17e8392b5d84909a14556826040516114079190611510565b60405180910390a25050565b5f61141d8261069e565b9050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61147082611447565b9050919050565b61148081611466565b82525050565b5f6020820190506114995f830184611477565b92915050565b5f80fd5b6114ac81611466565b81146114b6575f80fd5b50565b5f813590506114c7816114a3565b92915050565b5f602082840312156114e2576114e161149f565b5b5f6114ef848285016114b9565b91505092915050565b5f819050919050565b61150a816114f8565b82525050565b5f6020820190506115235f830184611501565b92915050565b611532816114f8565b811461153c575f80fd5b50565b5f8135905061154d81611529565b92915050565b5f80604083850312156115695761156861149f565b5b5f6115768582860161153f565b9250506020611587858286016114b9565b9150509250929050565b5f6040820190506115a45f830185611501565b6115b16020830184611501565b9392505050565b5f819050919050565b5f6115db6115d66115d184611447565b6115b8565b611447565b9050919050565b5f6115ec826115c1565b9050919050565b5f6115fd826115e2565b9050919050565b61160d816115f3565b82525050565b5f6020820190506116265f830184611604565b92915050565b5f82825260208201905092915050565b7f4e6f206465706f7369747320666f756e640000000000000000000000000000005f82015250565b5f61167060118361162c565b915061167b8261163c565b602082019050919050565b5f6020820190508181035f83015261169d81611664565b9050919050565b7f4e6f207265776172647320617661696c61626c650000000000000000000000005f82015250565b5f6116d860148361162c565b91506116e3826116a4565b602082019050919050565b5f6020820190508181035f830152611705816116cc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611743826114f8565b915061174e836114f8565b925082820261175c816114f8565b915082820484148315176117735761177261170c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6117b1826114f8565b91506117bc836114f8565b9250826117cc576117cb61177a565b5b828204905092915050565b5f6117e1826114f8565b91506117ec836114f8565b92508282039050818111156118045761180361170c565b5b92915050565b5f60408201905061181d5f830185611477565b61182a6020830184611501565b9392505050565b5f8115159050919050565b61184581611831565b811461184f575f80fd5b50565b5f815190506118608161183c565b92915050565b5f6020828403121561187b5761187a61149f565b5b5f61188884828501611852565b91505092915050565b7f526577617264207472616e73666572206661696c6564000000000000000000005f82015250565b5f6118c560168361162c565b91506118d082611891565b602082019050919050565b5f6020820190508181035f8301526118f2816118b9565b9050919050565b7f466565207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f61192d60138361162c565b9150611938826118f9565b602082019050919050565b5f6020820190508181035f83015261195a81611921565b9050919050565b7f4465706f73697420616d6f756e74206d757374206265206772656174657220745f8201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b5f6119bb60288361162c565b91506119c682611961565b604082019050919050565b5f6020820190508181035f8301526119e8816119af565b9050919050565b5f604082019050611a025f830185611477565b611a0f6020830184611477565b9392505050565b5f81519050611a2481611529565b92915050565b5f60208284031215611a3f57611a3e61149f565b5b5f611a4c84828501611a16565b91505092915050565b7f546f6b656e20616c6c6f77616e636520746f6f206c6f772e20417070726f76655f8201527f2074686520636f6e74726163742066697273742e000000000000000000000000602082015250565b5f611aaf60348361162c565b9150611aba82611a55565b604082019050919050565b5f6020820190508181035f830152611adc81611aa3565b9050919050565b7f496e73756666696369656e7420746f6b656e2062616c616e636520666f7220645f8201527f65706f7369742e00000000000000000000000000000000000000000000000000602082015250565b5f611b3d60278361162c565b9150611b4882611ae3565b604082019050919050565b5f6020820190508181035f830152611b6a81611b31565b9050919050565b5f606082019050611b845f830186611477565b611b916020830185611477565b611b9e6040830184611501565b949350505050565b7f546f6b656e207472616e73666572206661696c656400000000000000000000005f82015250565b5f611bda60158361162c565b9150611be582611ba6565b602082019050919050565b5f6020820190508181035f830152611c0781611bce565b9050919050565b7f526566657272616c20626f6e7573207472616e73666572206661696c656400005f82015250565b5f611c42601e8361162c565b9150611c4d82611c0e565b602082019050919050565b5f6020820190508181035f830152611c6f81611c36565b9050919050565b5f611c80826114f8565b9150611c8b836114f8565b9250828201905080821115611ca357611ca261170c565b5b92915050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f611cdd600e8361162c565b9150611ce882611ca9565b602082019050919050565b5f6020820190508181035f830152611d0a81611cd1565b9050919050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f611d4560158361162c565b9150611d5082611d11565b602082019050919050565b5f6020820190508181035f830152611d7281611d39565b9050919050565b7f496e76616c69642066656520726563697069656e7420616464726573730000005f82015250565b5f611dad601d8361162c565b9150611db882611d79565b602082019050919050565b5f6020820190508181035f830152611dda81611da1565b905091905056fea264697066735822122098ab8ad6003ff632b2435d11397ce1f064483d2a64f0acc936c7b00b8d5a36e264736f6c634300081a0033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100fe575f3560e01c80638da5cb5b11610095578063f160d36911610064578063f160d3691461029b578063f69e2046146102b7578063f6ed2017146102c1578063f7128024146102f1576100fe565b80638da5cb5b146101fe578063a87430ba1461021c578063c1e3d2dd1461024d578063e9081ec71461026b576100fe565b806367a52793116100d157806367a527931461018a5780636e553f65146101a85780637ad3def2146101c457806384ae2bc6146101e0576100fe565b8063372500ab14610102578063469048401461010c5780634a3b68cc1461012a57806364ab86751461015a575b5f80fd5b61010a61030f565b005b610114610649565b6040516101219190611486565b60405180910390f35b610144600480360381019061013f91906114cd565b61066e565b6040516101519190611486565b60405180910390f35b610174600480360381019061016f91906114cd565b61069e565b6040516101819190611510565b60405180910390f35b610192610754565b60405161019f9190611510565b60405180910390f35b6101c260048036038101906101bd9190611553565b61075a565b005b6101de60048036038101906101d991906114cd565b610eb5565b005b6101e8611073565b6040516101f59190611510565b60405180910390f35b610206611079565b6040516102139190611486565b60405180910390f35b610236600480360381019061023191906114cd565b61109e565b604051610244929190611591565b60405180910390f35b6102556110be565b6040516102629190611510565b60405180910390f35b610285600480360381019061028091906114cd565b6110c4565b6040516102929190611510565b60405180910390f35b6102b560048036038101906102b091906114cd565b61110c565b005b6102bf6112cc565b005b6102db60048036038101906102d691906114cd565b611413565b6040516102e89190611510565b60405180910390f35b6102f9611424565b6040516103069190611613565b60405180910390f35b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f015411610394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038b90611686565b60405180910390fd5b5f61039e3361069e565b90505f81116103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d9906116ee565b60405180910390fd5b5f6064600454836103f39190611739565b6103fd91906117a7565b90505f818361040c91906117d7565b90504284600101819055505f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161047392919061180a565b6020604051808303815f875af115801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190611866565b9050806104f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ec906118db565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161057092919061180a565b6020604051808303815f875af115801561058c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b09190611866565b9050806105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990611943565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f674a8930d4166ce2352c3dc1e9ff633595db479f71f3741270a0a73a52cb7b0f838560405161063a929190611591565b60405180910390a25050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060400160405290815f820154815260200160018201548152505090505f81602001514261070e91906117d7565b90505f6064600354845f01516107249190611739565b61072e91906117a7565b90506201518082826107409190611739565b61074a91906117a7565b9350505050919050565b60045481565b5f821161079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906119d1565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016107f89291906119ef565b602060405180830381865afa158015610813573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108379190611a2a565b90508281101561087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390611ac5565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016108d69190611486565b602060405180830381865afa1580156108f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190611a2a565b90508381101561095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095190611b53565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b81526004016109b893929190611b71565b6020604051808303815f875af11580156109d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f89190611866565b905080610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3190611bf0565b60405180910390fd5b5f606460045487610a4b9190611739565b610a5591906117a7565b90505f8187610a6491906117d7565b90505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610ae192919061180a565b6020604051808303815f875af1158015610afd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b219190611866565b925082610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a90611943565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610bcb57503373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15610d94575f606460055489610be19190611739565b610beb91906117a7565b90505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb88836040518363ffffffff1660e01b8152600401610c4792919061180a565b6020604051808303815f875af1158015610c63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c879190611866565b935083610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090611c58565b60405180910390fd5b8660075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508673ffffffffffffffffffffffffffffffffffffffff167f050bae3eeefac62a4ee36c766f4f426f09edf96ae8fb3034ebbf961e4acc78e282604051610d8a9190611510565b60405180910390a2505b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905081815f015f828254610de69190611c76565b925050819055504281600101819055508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b478a85604051610e55929190611591565b60405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f075a2720282fdf622141dae0b048ef90a21a7e57c134c76912d19d006b3b3f6f84604051610ea39190611510565b60405180910390a25050505050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90611cf3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa990611d5b565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0b1186973f810894b87ab0bfbee422fddcaad21b46dc705a561451bbb6bac11760405160405180910390a35050565b60055481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6006602052805f5260405f205f91509050805f0154908060010154905082565b60035481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01549050919050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290611cf3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120090611dc3565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167faaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d360405160405180910390a35050565b5f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f815f015411611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134890611686565b60405180910390fd5b5f61135b3361069e565b90505f811161139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906116ee565b60405180910390fd5b42826001018190555080825f015f8282546113ba9190611c76565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f169f1815ebdea059aac3bb00ec9a9594c7a5ffcb64a17e8392b5d84909a14556826040516114079190611510565b60405180910390a25050565b5f61141d8261069e565b9050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61147082611447565b9050919050565b61148081611466565b82525050565b5f6020820190506114995f830184611477565b92915050565b5f80fd5b6114ac81611466565b81146114b6575f80fd5b50565b5f813590506114c7816114a3565b92915050565b5f602082840312156114e2576114e161149f565b5b5f6114ef848285016114b9565b91505092915050565b5f819050919050565b61150a816114f8565b82525050565b5f6020820190506115235f830184611501565b92915050565b611532816114f8565b811461153c575f80fd5b50565b5f8135905061154d81611529565b92915050565b5f80604083850312156115695761156861149f565b5b5f6115768582860161153f565b9250506020611587858286016114b9565b9150509250929050565b5f6040820190506115a45f830185611501565b6115b16020830184611501565b9392505050565b5f819050919050565b5f6115db6115d66115d184611447565b6115b8565b611447565b9050919050565b5f6115ec826115c1565b9050919050565b5f6115fd826115e2565b9050919050565b61160d816115f3565b82525050565b5f6020820190506116265f830184611604565b92915050565b5f82825260208201905092915050565b7f4e6f206465706f7369747320666f756e640000000000000000000000000000005f82015250565b5f61167060118361162c565b915061167b8261163c565b602082019050919050565b5f6020820190508181035f83015261169d81611664565b9050919050565b7f4e6f207265776172647320617661696c61626c650000000000000000000000005f82015250565b5f6116d860148361162c565b91506116e3826116a4565b602082019050919050565b5f6020820190508181035f830152611705816116cc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611743826114f8565b915061174e836114f8565b925082820261175c816114f8565b915082820484148315176117735761177261170c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6117b1826114f8565b91506117bc836114f8565b9250826117cc576117cb61177a565b5b828204905092915050565b5f6117e1826114f8565b91506117ec836114f8565b92508282039050818111156118045761180361170c565b5b92915050565b5f60408201905061181d5f830185611477565b61182a6020830184611501565b9392505050565b5f8115159050919050565b61184581611831565b811461184f575f80fd5b50565b5f815190506118608161183c565b92915050565b5f6020828403121561187b5761187a61149f565b5b5f61188884828501611852565b91505092915050565b7f526577617264207472616e73666572206661696c6564000000000000000000005f82015250565b5f6118c560168361162c565b91506118d082611891565b602082019050919050565b5f6020820190508181035f8301526118f2816118b9565b9050919050565b7f466565207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f61192d60138361162c565b9150611938826118f9565b602082019050919050565b5f6020820190508181035f83015261195a81611921565b9050919050565b7f4465706f73697420616d6f756e74206d757374206265206772656174657220745f8201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b5f6119bb60288361162c565b91506119c682611961565b604082019050919050565b5f6020820190508181035f8301526119e8816119af565b9050919050565b5f604082019050611a025f830185611477565b611a0f6020830184611477565b9392505050565b5f81519050611a2481611529565b92915050565b5f60208284031215611a3f57611a3e61149f565b5b5f611a4c84828501611a16565b91505092915050565b7f546f6b656e20616c6c6f77616e636520746f6f206c6f772e20417070726f76655f8201527f2074686520636f6e74726163742066697273742e000000000000000000000000602082015250565b5f611aaf60348361162c565b9150611aba82611a55565b604082019050919050565b5f6020820190508181035f830152611adc81611aa3565b9050919050565b7f496e73756666696369656e7420746f6b656e2062616c616e636520666f7220645f8201527f65706f7369742e00000000000000000000000000000000000000000000000000602082015250565b5f611b3d60278361162c565b9150611b4882611ae3565b604082019050919050565b5f6020820190508181035f830152611b6a81611b31565b9050919050565b5f606082019050611b845f830186611477565b611b916020830185611477565b611b9e6040830184611501565b949350505050565b7f546f6b656e207472616e73666572206661696c656400000000000000000000005f82015250565b5f611bda60158361162c565b9150611be582611ba6565b602082019050919050565b5f6020820190508181035f830152611c0781611bce565b9050919050565b7f526566657272616c20626f6e7573207472616e73666572206661696c656400005f82015250565b5f611c42601e8361162c565b9150611c4d82611c0e565b602082019050919050565b5f6020820190508181035f830152611c6f81611c36565b9050919050565b5f611c80826114f8565b9150611c8b836114f8565b9250828201905080821115611ca357611ca261170c565b5b92915050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f611cdd600e8361162c565b9150611ce882611ca9565b602082019050919050565b5f6020820190508181035f830152611d0a81611cd1565b9050919050565b7f496e76616c696420746f6b656e206164647265737300000000000000000000005f82015250565b5f611d4560158361162c565b9150611d5082611d11565b602082019050919050565b5f6020820190508181035f830152611d7281611d39565b9050919050565b7f496e76616c69642066656520726563697069656e7420616464726573730000005f82015250565b5f611dad601d8361162c565b9150611db882611d79565b602082019050919050565b5f6020820190508181035f830152611dda81611da1565b905091905056fea264697066735822122098ab8ad6003ff632b2435d11397ce1f064483d2a64f0acc936c7b00b8d5a36e264736f6c634300081a0033
Deployed Bytecode Sourcemap
966:5956:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4321:888;;;:::i;:::-;;1063:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1512:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5729:325;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1232:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2558:1755;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6062:274;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1286:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1124:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1468:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1171:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6659:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6344:307;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5217:504;;;:::i;:::-;;6796:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1010:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4321:888;4365:17;4385:5;:17;4391:10;4385:17;;;;;;;;;;;;;;;4365:37;;4444:1;4421:4;:20;;;:24;4413:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;4480:15;4498:28;4515:10;4498:16;:28::i;:::-;4480:46;;4555:1;4545:7;:11;4537:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4626:11;4665:3;4651:10;;4641:7;:20;;;;:::i;:::-;4640:28;;;;:::i;:::-;4626:42;;4700:18;4731:3;4721:7;:13;;;;:::i;:::-;4700:34;;4810:15;4789:4;:18;;:36;;;;4879:12;4894:10;;;;;;;;;;;:19;;;4914:10;4926;4894:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4879:58;;4956:7;4948:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;5054:10;;;;;;;;;;:19;;;5074:12;;;;;;;;;;;5088:3;5054:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5044:48;;5111:7;5103:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;5173:10;5160:41;;;5185:10;5197:3;5160:41;;;;;;;:::i;:::-;;;;;;;;4354:855;;;;;4321:888::o;1063:27::-;;;;;;;;;;;;;:::o;1512:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;5729:325::-;5791:7;5811:16;5830:5;:12;5836:5;5830:12;;;;;;;;;;;;;;;5811:31;;;;;;;;;;;;;;;;;;;;;;;;;;;5853:19;5893:4;:18;;;5875:15;:36;;;;:::i;:::-;5853:58;;5922:20;5988:3;5969:15;;5946:4;:20;;;:38;;;;:::i;:::-;5945:46;;;;:::i;:::-;5922:69;;6040:6;6025:11;6010:12;:26;;;;:::i;:::-;6009:37;;;;:::i;:::-;6002:44;;;;;5729:325;;;:::o;1232:29::-;;;;:::o;2558:1755::-;2649:1;2639:7;:11;2631:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2736:17;2756:10;;;;;;;;;;;:20;;;2777:10;2797:4;2756:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2736:67;;2835:7;2822:9;:20;;2814:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2947:15;2965:10;;;;;;;;;;;:20;;;2986:10;2965:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2947:50;;3027:7;3016;:18;;3008:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;3143:12;3158:10;;;;;;;;;;;:23;;;3182:10;3202:4;3209:7;3158:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3143:74;;3236:7;3228:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;3316:11;3355:3;3341:10;;3331:7;:20;;;;:::i;:::-;3330:28;;;;:::i;:::-;3316:42;;3369:17;3399:3;3389:7;:13;;;;:::i;:::-;3369:33;;3466:10;;;;;;;;;;:19;;;3486:12;;;;;;;;;;;3500:3;3466:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3456:48;;3523:7;3515:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;3635:1;3614:23;;:9;:23;;;;:50;;;;;3654:10;3641:23;;:9;:23;;;;3614:50;3610:384;;;3681:21;3731:3;3716:11;;3706:7;:21;;;;:::i;:::-;3705:29;;;;:::i;:::-;3681:53;;3759:10;;;;;;;;;;:19;;;3779:9;3790:13;3759:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3749:55;;3827:7;3819:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3908:9;3884;:21;3894:10;3884:21;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3957:9;3939:43;;;3968:13;3939:43;;;;;;:::i;:::-;;;;;;;;3666:328;3610:384;4069:17;4089:5;:17;4095:10;4089:17;;;;;;;;;;;;;;;4069:37;;4141:9;4117:4;:20;;;:33;;;;;;;:::i;:::-;;;;;;;;4182:15;4161:4;:18;;:36;;;;4255:9;4215:50;;4223:10;4215:50;;;4235:7;4244:9;4215:50;;;;;;;:::i;:::-;;;;;;;;4289:10;4281:24;;;4301:3;4281:24;;;;;;:::i;:::-;;;;;;;;2620:1693;;;;;;2558:1755;;:::o;6062:274::-;2237:5;;;;;;;;;;;2223:19;;:10;:19;;;2215:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6161:1:::1;6140:23;;:9;:23;;::::0;6132:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6200:16;6227:10:::0;::::1;;;;;;;;;;6200:38;;6269:9;6249:10;::::0;:30:::1;;;;;;;;;;;;;;;;;;6318:9;6295:33;;6308:8;6295:33;;;;;;;;;;;;6121:215;6062:274:::0;:::o;1286:31::-;;;;:::o;1124:20::-;;;;;;;;;;;;;:::o;1468:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1171:34::-;;;;:::o;6659:129::-;6725:7;6752:5;:12;6758:5;6752:12;;;;;;;;;;;;;;;:28;;;6745:35;;6659:129;;;:::o;6344:307::-;2237:5;;;;;;;;;;;2223:19;;:10;:19;;;2215:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6458:1:::1;6433:27;;:13;:27;;::::0;6425:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6505:20;6528:12;;;;;;;;;;;6505:35;;6566:13;6551:12;;:28;;;;;;;;;;;;;;;;;;6629:13;6595:48;;6615:12;6595:48;;;;;;;;;;;;6414:237;6344:307:::0;:::o;5217:504::-;5257:17;5277:5;:17;5283:10;5277:17;;;;;;;;;;;;;;;5257:37;;5336:1;5313:4;:20;;;:24;5305:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;5372:15;5390:28;5407:10;5390:16;:28::i;:::-;5372:46;;5447:1;5437:7;:11;5429:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:15;5528:4;:18;;:36;;;;5659:7;5635:4;:20;;;:31;;;;;;;:::i;:::-;;;;;;;;5693:10;5684:29;;;5705:7;5684:29;;;;;;:::i;:::-;;;;;;;;5246:475;;5217:504::o;6796:123::-;6861:7;6888:23;6905:5;6888:16;:23::i;:::-;6881:30;;6796:123;;;:::o;1010:24::-;;;;;;;;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:77::-;1565:7;1594:5;1583:16;;1528:77;;;:::o;1611:118::-;1698:24;1716:5;1698:24;:::i;:::-;1693:3;1686:37;1611:118;;:::o;1735:222::-;1828:4;1866:2;1855:9;1851:18;1843:26;;1879:71;1947:1;1936:9;1932:17;1923:6;1879:71;:::i;:::-;1735:222;;;;:::o;1963:122::-;2036:24;2054:5;2036:24;:::i;:::-;2029:5;2026:35;2016:63;;2075:1;2072;2065:12;2016:63;1963:122;:::o;2091:139::-;2137:5;2175:6;2162:20;2153:29;;2191:33;2218:5;2191:33;:::i;:::-;2091:139;;;;:::o;2236:474::-;2304:6;2312;2361:2;2349:9;2340:7;2336:23;2332:32;2329:119;;;2367:79;;:::i;:::-;2329:119;2487:1;2512:53;2557:7;2548:6;2537:9;2533:22;2512:53;:::i;:::-;2502:63;;2458:117;2614:2;2640:53;2685:7;2676:6;2665:9;2661:22;2640:53;:::i;:::-;2630:63;;2585:118;2236:474;;;;;:::o;2716:332::-;2837:4;2875:2;2864:9;2860:18;2852:26;;2888:71;2956:1;2945:9;2941:17;2932:6;2888:71;:::i;:::-;2969:72;3037:2;3026:9;3022:18;3013:6;2969:72;:::i;:::-;2716:332;;;;;:::o;3054:60::-;3082:3;3103:5;3096:12;;3054:60;;;:::o;3120:142::-;3170:9;3203:53;3221:34;3230:24;3248:5;3230:24;:::i;:::-;3221:34;:::i;:::-;3203:53;:::i;:::-;3190:66;;3120:142;;;:::o;3268:126::-;3318:9;3351:37;3382:5;3351:37;:::i;:::-;3338:50;;3268:126;;;:::o;3400:139::-;3463:9;3496:37;3527:5;3496:37;:::i;:::-;3483:50;;3400:139;;;:::o;3545:157::-;3645:50;3689:5;3645:50;:::i;:::-;3640:3;3633:63;3545:157;;:::o;3708:248::-;3814:4;3852:2;3841:9;3837:18;3829:26;;3865:84;3946:1;3935:9;3931:17;3922:6;3865:84;:::i;:::-;3708:248;;;;:::o;3962:169::-;4046:11;4080:6;4075:3;4068:19;4120:4;4115:3;4111:14;4096:29;;3962:169;;;;:::o;4137:167::-;4277:19;4273:1;4265:6;4261:14;4254:43;4137:167;:::o;4310:366::-;4452:3;4473:67;4537:2;4532:3;4473:67;:::i;:::-;4466:74;;4549:93;4638:3;4549:93;:::i;:::-;4667:2;4662:3;4658:12;4651:19;;4310:366;;;:::o;4682:419::-;4848:4;4886:2;4875:9;4871:18;4863:26;;4935:9;4929:4;4925:20;4921:1;4910:9;4906:17;4899:47;4963:131;5089:4;4963:131;:::i;:::-;4955:139;;4682:419;;;:::o;5107:170::-;5247:22;5243:1;5235:6;5231:14;5224:46;5107:170;:::o;5283:366::-;5425:3;5446:67;5510:2;5505:3;5446:67;:::i;:::-;5439:74;;5522:93;5611:3;5522:93;:::i;:::-;5640:2;5635:3;5631:12;5624:19;;5283:366;;;:::o;5655:419::-;5821:4;5859:2;5848:9;5844:18;5836:26;;5908:9;5902:4;5898:20;5894:1;5883:9;5879:17;5872:47;5936:131;6062:4;5936:131;:::i;:::-;5928:139;;5655:419;;;:::o;6080:180::-;6128:77;6125:1;6118:88;6225:4;6222:1;6215:15;6249:4;6246:1;6239:15;6266:410;6306:7;6329:20;6347:1;6329:20;:::i;:::-;6324:25;;6363:20;6381:1;6363:20;:::i;:::-;6358:25;;6418:1;6415;6411:9;6440:30;6458:11;6440:30;:::i;:::-;6429:41;;6619:1;6610:7;6606:15;6603:1;6600:22;6580:1;6573:9;6553:83;6530:139;;6649:18;;:::i;:::-;6530:139;6314:362;6266:410;;;;:::o;6682:180::-;6730:77;6727:1;6720:88;6827:4;6824:1;6817:15;6851:4;6848:1;6841:15;6868:185;6908:1;6925:20;6943:1;6925:20;:::i;:::-;6920:25;;6959:20;6977:1;6959:20;:::i;:::-;6954:25;;6998:1;6988:35;;7003:18;;:::i;:::-;6988:35;7045:1;7042;7038:9;7033:14;;6868:185;;;;:::o;7059:194::-;7099:4;7119:20;7137:1;7119:20;:::i;:::-;7114:25;;7153:20;7171:1;7153:20;:::i;:::-;7148:25;;7197:1;7194;7190:9;7182:17;;7221:1;7215:4;7212:11;7209:37;;;7226:18;;:::i;:::-;7209:37;7059:194;;;;:::o;7259:332::-;7380:4;7418:2;7407:9;7403:18;7395:26;;7431:71;7499:1;7488:9;7484:17;7475:6;7431:71;:::i;:::-;7512:72;7580:2;7569:9;7565:18;7556:6;7512:72;:::i;:::-;7259:332;;;;;:::o;7597:90::-;7631:7;7674:5;7667:13;7660:21;7649:32;;7597:90;;;:::o;7693:116::-;7763:21;7778:5;7763:21;:::i;:::-;7756:5;7753:32;7743:60;;7799:1;7796;7789:12;7743:60;7693:116;:::o;7815:137::-;7869:5;7900:6;7894:13;7885:22;;7916:30;7940:5;7916:30;:::i;:::-;7815:137;;;;:::o;7958:345::-;8025:6;8074:2;8062:9;8053:7;8049:23;8045:32;8042:119;;;8080:79;;:::i;:::-;8042:119;8200:1;8225:61;8278:7;8269:6;8258:9;8254:22;8225:61;:::i;:::-;8215:71;;8171:125;7958:345;;;;:::o;8309:172::-;8449:24;8445:1;8437:6;8433:14;8426:48;8309:172;:::o;8487:366::-;8629:3;8650:67;8714:2;8709:3;8650:67;:::i;:::-;8643:74;;8726:93;8815:3;8726:93;:::i;:::-;8844:2;8839:3;8835:12;8828:19;;8487:366;;;:::o;8859:419::-;9025:4;9063:2;9052:9;9048:18;9040:26;;9112:9;9106:4;9102:20;9098:1;9087:9;9083:17;9076:47;9140:131;9266:4;9140:131;:::i;:::-;9132:139;;8859:419;;;:::o;9284:169::-;9424:21;9420:1;9412:6;9408:14;9401:45;9284:169;:::o;9459:366::-;9601:3;9622:67;9686:2;9681:3;9622:67;:::i;:::-;9615:74;;9698:93;9787:3;9698:93;:::i;:::-;9816:2;9811:3;9807:12;9800:19;;9459:366;;;:::o;9831:419::-;9997:4;10035:2;10024:9;10020:18;10012:26;;10084:9;10078:4;10074:20;10070:1;10059:9;10055:17;10048:47;10112:131;10238:4;10112:131;:::i;:::-;10104:139;;9831:419;;;:::o;10256:227::-;10396:34;10392:1;10384:6;10380:14;10373:58;10465:10;10460:2;10452:6;10448:15;10441:35;10256:227;:::o;10489:366::-;10631:3;10652:67;10716:2;10711:3;10652:67;:::i;:::-;10645:74;;10728:93;10817:3;10728:93;:::i;:::-;10846:2;10841:3;10837:12;10830:19;;10489:366;;;:::o;10861:419::-;11027:4;11065:2;11054:9;11050:18;11042:26;;11114:9;11108:4;11104:20;11100:1;11089:9;11085:17;11078:47;11142:131;11268:4;11142:131;:::i;:::-;11134:139;;10861:419;;;:::o;11286:332::-;11407:4;11445:2;11434:9;11430:18;11422:26;;11458:71;11526:1;11515:9;11511:17;11502:6;11458:71;:::i;:::-;11539:72;11607:2;11596:9;11592:18;11583:6;11539:72;:::i;:::-;11286:332;;;;;:::o;11624:143::-;11681:5;11712:6;11706:13;11697:22;;11728:33;11755:5;11728:33;:::i;:::-;11624:143;;;;:::o;11773:351::-;11843:6;11892:2;11880:9;11871:7;11867:23;11863:32;11860:119;;;11898:79;;:::i;:::-;11860:119;12018:1;12043:64;12099:7;12090:6;12079:9;12075:22;12043:64;:::i;:::-;12033:74;;11989:128;11773:351;;;;:::o;12130:239::-;12270:34;12266:1;12258:6;12254:14;12247:58;12339:22;12334:2;12326:6;12322:15;12315:47;12130:239;:::o;12375:366::-;12517:3;12538:67;12602:2;12597:3;12538:67;:::i;:::-;12531:74;;12614:93;12703:3;12614:93;:::i;:::-;12732:2;12727:3;12723:12;12716:19;;12375:366;;;:::o;12747:419::-;12913:4;12951:2;12940:9;12936:18;12928:26;;13000:9;12994:4;12990:20;12986:1;12975:9;12971:17;12964:47;13028:131;13154:4;13028:131;:::i;:::-;13020:139;;12747:419;;;:::o;13172:226::-;13312:34;13308:1;13300:6;13296:14;13289:58;13381:9;13376:2;13368:6;13364:15;13357:34;13172:226;:::o;13404:366::-;13546:3;13567:67;13631:2;13626:3;13567:67;:::i;:::-;13560:74;;13643:93;13732:3;13643:93;:::i;:::-;13761:2;13756:3;13752:12;13745:19;;13404:366;;;:::o;13776:419::-;13942:4;13980:2;13969:9;13965:18;13957:26;;14029:9;14023:4;14019:20;14015:1;14004:9;14000:17;13993:47;14057:131;14183:4;14057:131;:::i;:::-;14049:139;;13776:419;;;:::o;14201:442::-;14350:4;14388:2;14377:9;14373:18;14365:26;;14401:71;14469:1;14458:9;14454:17;14445:6;14401:71;:::i;:::-;14482:72;14550:2;14539:9;14535:18;14526:6;14482:72;:::i;:::-;14564;14632:2;14621:9;14617:18;14608:6;14564:72;:::i;:::-;14201:442;;;;;;:::o;14649:171::-;14789:23;14785:1;14777:6;14773:14;14766:47;14649:171;:::o;14826:366::-;14968:3;14989:67;15053:2;15048:3;14989:67;:::i;:::-;14982:74;;15065:93;15154:3;15065:93;:::i;:::-;15183:2;15178:3;15174:12;15167:19;;14826:366;;;:::o;15198:419::-;15364:4;15402:2;15391:9;15387:18;15379:26;;15451:9;15445:4;15441:20;15437:1;15426:9;15422:17;15415:47;15479:131;15605:4;15479:131;:::i;:::-;15471:139;;15198:419;;;:::o;15623:180::-;15763:32;15759:1;15751:6;15747:14;15740:56;15623:180;:::o;15809:366::-;15951:3;15972:67;16036:2;16031:3;15972:67;:::i;:::-;15965:74;;16048:93;16137:3;16048:93;:::i;:::-;16166:2;16161:3;16157:12;16150:19;;15809:366;;;:::o;16181:419::-;16347:4;16385:2;16374:9;16370:18;16362:26;;16434:9;16428:4;16424:20;16420:1;16409:9;16405:17;16398:47;16462:131;16588:4;16462:131;:::i;:::-;16454:139;;16181:419;;;:::o;16606:191::-;16646:3;16665:20;16683:1;16665:20;:::i;:::-;16660:25;;16699:20;16717:1;16699:20;:::i;:::-;16694:25;;16742:1;16739;16735:9;16728:16;;16763:3;16760:1;16757:10;16754:36;;;16770:18;;:::i;:::-;16754:36;16606:191;;;;:::o;16803:164::-;16943:16;16939:1;16931:6;16927:14;16920:40;16803:164;:::o;16973:366::-;17115:3;17136:67;17200:2;17195:3;17136:67;:::i;:::-;17129:74;;17212:93;17301:3;17212:93;:::i;:::-;17330:2;17325:3;17321:12;17314:19;;16973:366;;;:::o;17345:419::-;17511:4;17549:2;17538:9;17534:18;17526:26;;17598:9;17592:4;17588:20;17584:1;17573:9;17569:17;17562:47;17626:131;17752:4;17626:131;:::i;:::-;17618:139;;17345:419;;;:::o;17770:171::-;17910:23;17906:1;17898:6;17894:14;17887:47;17770:171;:::o;17947:366::-;18089:3;18110:67;18174:2;18169:3;18110:67;:::i;:::-;18103:74;;18186:93;18275:3;18186:93;:::i;:::-;18304:2;18299:3;18295:12;18288:19;;17947:366;;;:::o;18319:419::-;18485:4;18523:2;18512:9;18508:18;18500:26;;18572:9;18566:4;18562:20;18558:1;18547:9;18543:17;18536:47;18600:131;18726:4;18600:131;:::i;:::-;18592:139;;18319:419;;;:::o;18744:179::-;18884:31;18880:1;18872:6;18868:14;18861:55;18744:179;:::o;18929:366::-;19071:3;19092:67;19156:2;19151:3;19092:67;:::i;:::-;19085:74;;19168:93;19257:3;19168:93;:::i;:::-;19286:2;19281:3;19277:12;19270:19;;18929:366;;;:::o;19301:419::-;19467:4;19505:2;19494:9;19490:18;19482:26;;19554:9;19548:4;19544:20;19540:1;19529:9;19525:17;19518:47;19582:131;19708:4;19582:131;:::i;:::-;19574:139;;19301:419;;;:::o
Swarm Source
ipfs://98ab8ad6003ff632b2435d11397ce1f064483d2a64f0acc936c7b00b8d5a36e2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.