Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 18 from a total of 18 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deploy Token | 15778402 | 8 days ago | IN | 0 S | 0.06957405 | ||||
Deploy Token | 15778250 | 8 days ago | IN | 0 S | 0.06958365 | ||||
Deploy Token | 15778086 | 8 days ago | IN | 0 S | 0.06957265 | ||||
Deploy Token | 15777937 | 8 days ago | IN | 0 S | 0.07509373 | ||||
Deploy Token | 15777770 | 8 days ago | IN | 0 S | 0.06957645 | ||||
Deploy Token | 15777643 | 8 days ago | IN | 0 S | 0.06957405 | ||||
Deploy Token | 15777581 | 8 days ago | IN | 0 S | 0.06957885 | ||||
Deploy Token | 15776705 | 8 days ago | IN | 0 S | 0.08538304 | ||||
Deploy Token | 15776696 | 8 days ago | IN | 0 S | 0.08537826 | ||||
Deploy Token | 15776674 | 8 days ago | IN | 0 S | 0.08538777 | ||||
Deploy Token | 15776627 | 8 days ago | IN | 0 S | 0.08537688 | ||||
Deploy Token | 15776618 | 8 days ago | IN | 0 S | 0.08537688 | ||||
Deploy Token | 15776593 | 8 days ago | IN | 0 S | 0.08538068 | ||||
Deploy Token | 15776556 | 8 days ago | IN | 0 S | 0.08537826 | ||||
Deploy Token | 15776535 | 8 days ago | IN | 0 S | 0.08538304 | ||||
Deploy Token | 15768934 | 8 days ago | IN | 0 S | 0.06957765 | ||||
Deploy Token | 15768827 | 8 days ago | IN | 0 S | 0.06957525 | ||||
Deploy Token | 15768758 | 8 days ago | IN | 0 S | 0.07043505 |
Latest 18 internal transactions
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
15778402 | 8 days ago | Contract Creation | 0 S | |||
15778250 | 8 days ago | Contract Creation | 0 S | |||
15778086 | 8 days ago | Contract Creation | 0 S | |||
15777937 | 8 days ago | Contract Creation | 0 S | |||
15777770 | 8 days ago | Contract Creation | 0 S | |||
15777643 | 8 days ago | Contract Creation | 0 S | |||
15777581 | 8 days ago | Contract Creation | 0 S | |||
15776705 | 8 days ago | Contract Creation | 0 S | |||
15776696 | 8 days ago | Contract Creation | 0 S | |||
15776674 | 8 days ago | Contract Creation | 0 S | |||
15776627 | 8 days ago | Contract Creation | 0 S | |||
15776618 | 8 days ago | Contract Creation | 0 S | |||
15776593 | 8 days ago | Contract Creation | 0 S | |||
15776556 | 8 days ago | Contract Creation | 0 S | |||
15776535 | 8 days ago | Contract Creation | 0 S | |||
15768934 | 8 days ago | Contract Creation | 0 S | |||
15768827 | 8 days ago | Contract Creation | 0 S | |||
15768758 | 8 days ago | Contract Creation | 0 S |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
TokenFactory
Compiler Version
v0.8.29+commit.ab55807c
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-03-20 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.28; // Full implementation of OpenZeppelin's ERC20 and Ownable contracts contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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 ERC20 is Context, IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } contract MyToken is ERC20, Ownable { // Fixed total supply: 100,000,000,000 tokens with 18 decimals uint256 public constant TOTAL_SUPPLY = 100_000_000_000 * (10 ** 18); constructor(string memory name, string memory symbol, address owner) ERC20(name, symbol) { // Mint the total supply to the owner's address _mint(owner, TOTAL_SUPPLY); // Transfer ownership to the specified owner _transferOwnership(owner); } } contract TokenFactory { // Array to store addresses of all deployed tokens address[] public deployedTokens; // Event to emit when a new token is deployed event TokenDeployed(address indexed tokenAddress, string name, string symbol, address indexed owner); // Function to deploy a new token function deployToken(string memory name, string memory symbol) external { // Deploy a new MyToken contract and pass the user's address as the owner MyToken newToken = new MyToken(name, symbol, msg.sender); // Add the deployed token's address to the array deployedTokens.push(address(newToken)); // Emit the TokenDeployed event emit TokenDeployed(address(newToken), name, symbol, msg.sender); } // Function to get the total number of deployed tokens function getDeployedTokensCount() external view returns (uint256) { return deployedTokens.length; } // Function to get the address of a deployed token by index function getDeployedToken(uint256 index) external view returns (address) { require(index < deployedTokens.length, "Index out of bounds"); return deployedTokens[index]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"TokenDeployed","type":"event"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"name":"deployToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deployedTokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getDeployedToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDeployedTokensCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052348015600e575f5ffd5b506126e38061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80630d0d4f241461004e5780631d12b9381461007e57806325f1be1f1461009a578063ec81aadb146100b8575b5f5ffd5b6100686004803603810190610063919061030a565b6100e8565b6040516100759190610374565b60405180910390f35b610098600480360381019061009391906104c9565b610171565b005b6100a2610274565b6040516100af919061054e565b60405180910390f35b6100d260048036038101906100cd919061030a565b61027f565b6040516100df9190610374565b60405180910390f35b5f5f80549050821061012f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610126906105c1565b60405180910390fd5b5f8281548110610142576101416105df565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f828233604051610181906102b9565b61018d9392919061065c565b604051809103905ff0801580156101a6573d5f5f3e3d5ffd5b5090505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9b125304de5c1a87b82cb7735777610731fc602db9764374e5c43ab2a1d26896858560405161026792919061069f565b60405180910390a3505050565b5f5f80549050905090565b5f818154811061028d575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fd9806106d583390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6102e9816102d7565b81146102f3575f5ffd5b50565b5f81359050610304816102e0565b92915050565b5f6020828403121561031f5761031e6102cf565b5b5f61032c848285016102f6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61035e82610335565b9050919050565b61036e81610354565b82525050565b5f6020820190506103875f830184610365565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103db82610395565b810181811067ffffffffffffffff821117156103fa576103f96103a5565b5b80604052505050565b5f61040c6102c6565b905061041882826103d2565b919050565b5f67ffffffffffffffff821115610437576104366103a5565b5b61044082610395565b9050602081019050919050565b828183375f83830152505050565b5f61046d6104688461041d565b610403565b90508281526020810184848401111561048957610488610391565b5b61049484828561044d565b509392505050565b5f82601f8301126104b0576104af61038d565b5b81356104c084826020860161045b565b91505092915050565b5f5f604083850312156104df576104de6102cf565b5b5f83013567ffffffffffffffff8111156104fc576104fb6102d3565b5b6105088582860161049c565b925050602083013567ffffffffffffffff811115610529576105286102d3565b5b6105358582860161049c565b9150509250929050565b610548816102d7565b82525050565b5f6020820190506105615f83018461053f565b92915050565b5f82825260208201905092915050565b7f496e646578206f7574206f6620626f756e6473000000000000000000000000005f82015250565b5f6105ab601383610567565b91506105b682610577565b602082019050919050565b5f6020820190508181035f8301526105d88161059f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b8281835e5f83830152505050565b5f61062e8261060c565b6106388185610567565b9350610648818560208601610616565b61065181610395565b840191505092915050565b5f6060820190508181035f8301526106748186610624565b905081810360208301526106888185610624565b90506106976040830184610365565b949350505050565b5f6040820190508181035f8301526106b78185610624565b905081810360208301526106cb8184610624565b9050939250505056fe608060405234801561000f575f5ffd5b50604051611fd9380380611fd983398181016040528101906100319190610457565b8282816003908161004291906106ef565b50806004908161005291906106ef565b5050506100716100666100a560201b60201c565b6100ac60201b60201c565b61008e816c01431e0fae6d7217caa000000061016f60201b60201c565b61009d816100ac60201b60201c565b5050506108be565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d490610818565b60405180910390fd5b8060025f8282546101ee9190610863565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102409190610863565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516102a491906108a5565b60405180910390a35050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61030f826102c9565b810181811067ffffffffffffffff8211171561032e5761032d6102d9565b5b80604052505050565b5f6103406102b0565b905061034c8282610306565b919050565b5f67ffffffffffffffff82111561036b5761036a6102d9565b5b610374826102c9565b9050602081019050919050565b8281835e5f83830152505050565b5f6103a161039c84610351565b610337565b9050828152602081018484840111156103bd576103bc6102c5565b5b6103c8848285610381565b509392505050565b5f82601f8301126103e4576103e36102c1565b5b81516103f484826020860161038f565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610426826103fd565b9050919050565b6104368161041c565b8114610440575f5ffd5b50565b5f815190506104518161042d565b92915050565b5f5f5f6060848603121561046e5761046d6102b9565b5b5f84015167ffffffffffffffff81111561048b5761048a6102bd565b5b610497868287016103d0565b935050602084015167ffffffffffffffff8111156104b8576104b76102bd565b5b6104c4868287016103d0565b92505060406104d586828701610443565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061052d57607f821691505b6020821081036105405761053f6104e9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610567565b6105ac8683610567565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105f06105eb6105e6846105c4565b6105cd565b6105c4565b9050919050565b5f819050919050565b610609836105d6565b61061d610615826105f7565b848454610573565b825550505050565b5f5f905090565b610634610625565b61063f818484610600565b505050565b5b81811015610662576106575f8261062c565b600181019050610645565b5050565b601f8211156106a75761067881610546565b61068184610558565b81016020851015610690578190505b6106a461069c85610558565b830182610644565b50505b505050565b5f82821c905092915050565b5f6106c75f19846008026106ac565b1980831691505092915050565b5f6106df83836106b8565b9150826002028217905092915050565b6106f8826104df565b67ffffffffffffffff811115610711576107106102d9565b5b61071b8254610516565b610726828285610666565b5f60209050601f831160018114610757575f8415610745578287015190505b61074f85826106d4565b8655506107b6565b601f19841661076586610546565b5f5b8281101561078c57848901518255600182019150602085019450602081019050610767565b868310156107a957848901516107a5601f8916826106b8565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610802601f836107be565b915061080d826107ce565b602082019050919050565b5f6020820190508181035f83015261082f816107f6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61086d826105c4565b9150610878836105c4565b92508282019050808211156108905761088f610836565b5b92915050565b61089f816105c4565b82525050565b5f6020820190506108b85f830184610896565b92915050565b61170e806108cb5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c8063715018a611610095578063a457c2d711610064578063a457c2d714610275578063a9059cbb146102a5578063dd62ed3e146102d5578063f2fde38b14610305576100f3565b8063715018a6146102115780638da5cb5b1461021b578063902d55a51461023957806395d89b4114610257576100f3565b806323b872dd116100d157806323b872dd14610163578063313ce5671461019357806339509351146101b157806370a08231146101e1576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f5ffd5b6100ff610321565b60405161010c9190610ee4565b60405180910390f35b61012f600480360381019061012a9190610f95565b6103b1565b60405161013c9190610fed565b60405180910390f35b61014d6103ce565b60405161015a9190611015565b60405180910390f35b61017d6004803603810190610178919061102e565b6103d7565b60405161018a9190610fed565b60405180910390f35b61019b6104c9565b6040516101a89190611099565b60405180910390f35b6101cb60048036038101906101c69190610f95565b6104d1565b6040516101d89190610fed565b60405180910390f35b6101fb60048036038101906101f691906110b2565b610578565b6040516102089190611015565b60405180910390f35b6102196105bd565b005b610223610644565b60405161023091906110ec565b60405180910390f35b61024161066c565b60405161024e9190611015565b60405180910390f35b61025f61067d565b60405161026c9190610ee4565b60405180910390f35b61028f600480360381019061028a9190610f95565b61070d565b60405161029c9190610fed565b60405180910390f35b6102bf60048036038101906102ba9190610f95565b6107f3565b6040516102cc9190610fed565b60405180910390f35b6102ef60048036038101906102ea9190611105565b610810565b6040516102fc9190611015565b60405180910390f35b61031f600480360381019061031a91906110b2565b610892565b005b60606003805461033090611170565b80601f016020809104026020016040519081016040528092919081815260200182805461035c90611170565b80156103a75780601f1061037e576101008083540402835291602001916103a7565b820191905f5260205f20905b81548152906001019060200180831161038a57829003601f168201915b5050505050905090565b5f6103c46103bd610988565b848461098f565b6001905092915050565b5f600254905090565b5f6103e3848484610b52565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61042a610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156104a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a090611210565b60405180910390fd5b6104bd856104b5610988565b85840361098f565b60019150509392505050565b5f6012905090565b5f61056e6104dd610988565b848460015f6104ea610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610569919061125b565b61098f565b6001905092915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105c5610988565b73ffffffffffffffffffffffffffffffffffffffff166105e3610644565b73ffffffffffffffffffffffffffffffffffffffff1614610639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610630906112d8565b60405180910390fd5b6106425f610db1565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6c01431e0fae6d7217caa000000081565b60606004805461068c90611170565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890611170565b80156107035780601f106106da57610100808354040283529160200191610703565b820191905f5260205f20905b8154815290600101906020018083116106e657829003601f168201915b5050505050905090565b5f5f60015f61071a610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156107d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cb90611366565b60405180910390fd5b6107e86107df610988565b8585840361098f565b600191505092915050565b5f6108066107ff610988565b8484610b52565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61089a610988565b73ffffffffffffffffffffffffffffffffffffffff166108b8610644565b73ffffffffffffffffffffffffffffffffffffffff161461090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610905906112d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361097c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610973906113f4565b60405180910390fd5b61098581610db1565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490611482565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611510565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b459190611015565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb79061159e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c259061162c565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca8906116ba565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d3f919061125b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610da39190611015565b60405180910390a350505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eb682610e74565b610ec08185610e7e565b9350610ed0818560208601610e8e565b610ed981610e9c565b840191505092915050565b5f6020820190508181035f830152610efc8184610eac565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3182610f08565b9050919050565b610f4181610f27565b8114610f4b575f5ffd5b50565b5f81359050610f5c81610f38565b92915050565b5f819050919050565b610f7481610f62565b8114610f7e575f5ffd5b50565b5f81359050610f8f81610f6b565b92915050565b5f5f60408385031215610fab57610faa610f04565b5b5f610fb885828601610f4e565b9250506020610fc985828601610f81565b9150509250929050565b5f8115159050919050565b610fe781610fd3565b82525050565b5f6020820190506110005f830184610fde565b92915050565b61100f81610f62565b82525050565b5f6020820190506110285f830184611006565b92915050565b5f5f5f6060848603121561104557611044610f04565b5b5f61105286828701610f4e565b935050602061106386828701610f4e565b925050604061107486828701610f81565b9150509250925092565b5f60ff82169050919050565b6110938161107e565b82525050565b5f6020820190506110ac5f83018461108a565b92915050565b5f602082840312156110c7576110c6610f04565b5b5f6110d484828501610f4e565b91505092915050565b6110e681610f27565b82525050565b5f6020820190506110ff5f8301846110dd565b92915050565b5f5f6040838503121561111b5761111a610f04565b5b5f61112885828601610f4e565b925050602061113985828601610f4e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061118757607f821691505b60208210810361119a57611199611143565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6111fa602883610e7e565b9150611205826111a0565b604082019050919050565b5f6020820190508181035f830152611227816111ee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61126582610f62565b915061127083610f62565b92508282019050808211156112885761128761122e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6112c2602083610e7e565b91506112cd8261128e565b602082019050919050565b5f6020820190508181035f8301526112ef816112b6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611350602583610e7e565b915061135b826112f6565b604082019050919050565b5f6020820190508181035f83015261137d81611344565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6113de602683610e7e565b91506113e982611384565b604082019050919050565b5f6020820190508181035f83015261140b816113d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61146c602483610e7e565b915061147782611412565b604082019050919050565b5f6020820190508181035f83015261149981611460565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6114fa602283610e7e565b9150611505826114a0565b604082019050919050565b5f6020820190508181035f830152611527816114ee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611588602583610e7e565b91506115938261152e565b604082019050919050565b5f6020820190508181035f8301526115b58161157c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611616602383610e7e565b9150611621826115bc565b604082019050919050565b5f6020820190508181035f8301526116438161160a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6116a4602683610e7e565b91506116af8261164a565b604082019050919050565b5f6020820190508181035f8301526116d181611698565b905091905056fea264697066735822122028d4ac91d04ef4d8820da256b6a1888b84beb8da5f4a03a7792e44ee972df08e64736f6c634300081d0033a264697066735822122029aadf665ca1e398a6bdc71576e9ee98ed2fc3fe80e1a97efdcd96eddb60b45464736f6c634300081d0033
Deployed Bytecode
0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c80630d0d4f241461004e5780631d12b9381461007e57806325f1be1f1461009a578063ec81aadb146100b8575b5f5ffd5b6100686004803603810190610063919061030a565b6100e8565b6040516100759190610374565b60405180910390f35b610098600480360381019061009391906104c9565b610171565b005b6100a2610274565b6040516100af919061054e565b60405180910390f35b6100d260048036038101906100cd919061030a565b61027f565b6040516100df9190610374565b60405180910390f35b5f5f80549050821061012f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610126906105c1565b60405180910390fd5b5f8281548110610142576101416105df565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f828233604051610181906102b9565b61018d9392919061065c565b604051809103905ff0801580156101a6573d5f5f3e3d5ffd5b5090505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9b125304de5c1a87b82cb7735777610731fc602db9764374e5c43ab2a1d26896858560405161026792919061069f565b60405180910390a3505050565b5f5f80549050905090565b5f818154811061028d575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611fd9806106d583390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6102e9816102d7565b81146102f3575f5ffd5b50565b5f81359050610304816102e0565b92915050565b5f6020828403121561031f5761031e6102cf565b5b5f61032c848285016102f6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61035e82610335565b9050919050565b61036e81610354565b82525050565b5f6020820190506103875f830184610365565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103db82610395565b810181811067ffffffffffffffff821117156103fa576103f96103a5565b5b80604052505050565b5f61040c6102c6565b905061041882826103d2565b919050565b5f67ffffffffffffffff821115610437576104366103a5565b5b61044082610395565b9050602081019050919050565b828183375f83830152505050565b5f61046d6104688461041d565b610403565b90508281526020810184848401111561048957610488610391565b5b61049484828561044d565b509392505050565b5f82601f8301126104b0576104af61038d565b5b81356104c084826020860161045b565b91505092915050565b5f5f604083850312156104df576104de6102cf565b5b5f83013567ffffffffffffffff8111156104fc576104fb6102d3565b5b6105088582860161049c565b925050602083013567ffffffffffffffff811115610529576105286102d3565b5b6105358582860161049c565b9150509250929050565b610548816102d7565b82525050565b5f6020820190506105615f83018461053f565b92915050565b5f82825260208201905092915050565b7f496e646578206f7574206f6620626f756e6473000000000000000000000000005f82015250565b5f6105ab601383610567565b91506105b682610577565b602082019050919050565b5f6020820190508181035f8301526105d88161059f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b8281835e5f83830152505050565b5f61062e8261060c565b6106388185610567565b9350610648818560208601610616565b61065181610395565b840191505092915050565b5f6060820190508181035f8301526106748186610624565b905081810360208301526106888185610624565b90506106976040830184610365565b949350505050565b5f6040820190508181035f8301526106b78185610624565b905081810360208301526106cb8184610624565b9050939250505056fe608060405234801561000f575f5ffd5b50604051611fd9380380611fd983398181016040528101906100319190610457565b8282816003908161004291906106ef565b50806004908161005291906106ef565b5050506100716100666100a560201b60201c565b6100ac60201b60201c565b61008e816c01431e0fae6d7217caa000000061016f60201b60201c565b61009d816100ac60201b60201c565b5050506108be565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d490610818565b60405180910390fd5b8060025f8282546101ee9190610863565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102409190610863565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516102a491906108a5565b60405180910390a35050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61030f826102c9565b810181811067ffffffffffffffff8211171561032e5761032d6102d9565b5b80604052505050565b5f6103406102b0565b905061034c8282610306565b919050565b5f67ffffffffffffffff82111561036b5761036a6102d9565b5b610374826102c9565b9050602081019050919050565b8281835e5f83830152505050565b5f6103a161039c84610351565b610337565b9050828152602081018484840111156103bd576103bc6102c5565b5b6103c8848285610381565b509392505050565b5f82601f8301126103e4576103e36102c1565b5b81516103f484826020860161038f565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610426826103fd565b9050919050565b6104368161041c565b8114610440575f5ffd5b50565b5f815190506104518161042d565b92915050565b5f5f5f6060848603121561046e5761046d6102b9565b5b5f84015167ffffffffffffffff81111561048b5761048a6102bd565b5b610497868287016103d0565b935050602084015167ffffffffffffffff8111156104b8576104b76102bd565b5b6104c4868287016103d0565b92505060406104d586828701610443565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061052d57607f821691505b6020821081036105405761053f6104e9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610567565b6105ac8683610567565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105f06105eb6105e6846105c4565b6105cd565b6105c4565b9050919050565b5f819050919050565b610609836105d6565b61061d610615826105f7565b848454610573565b825550505050565b5f5f905090565b610634610625565b61063f818484610600565b505050565b5b81811015610662576106575f8261062c565b600181019050610645565b5050565b601f8211156106a75761067881610546565b61068184610558565b81016020851015610690578190505b6106a461069c85610558565b830182610644565b50505b505050565b5f82821c905092915050565b5f6106c75f19846008026106ac565b1980831691505092915050565b5f6106df83836106b8565b9150826002028217905092915050565b6106f8826104df565b67ffffffffffffffff811115610711576107106102d9565b5b61071b8254610516565b610726828285610666565b5f60209050601f831160018114610757575f8415610745578287015190505b61074f85826106d4565b8655506107b6565b601f19841661076586610546565b5f5b8281101561078c57848901518255600182019150602085019450602081019050610767565b868310156107a957848901516107a5601f8916826106b8565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610802601f836107be565b915061080d826107ce565b602082019050919050565b5f6020820190508181035f83015261082f816107f6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61086d826105c4565b9150610878836105c4565b92508282019050808211156108905761088f610836565b5b92915050565b61089f816105c4565b82525050565b5f6020820190506108b85f830184610896565b92915050565b61170e806108cb5f395ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c8063715018a611610095578063a457c2d711610064578063a457c2d714610275578063a9059cbb146102a5578063dd62ed3e146102d5578063f2fde38b14610305576100f3565b8063715018a6146102115780638da5cb5b1461021b578063902d55a51461023957806395d89b4114610257576100f3565b806323b872dd116100d157806323b872dd14610163578063313ce5671461019357806339509351146101b157806370a08231146101e1576100f3565b806306fdde03146100f7578063095ea7b31461011557806318160ddd14610145575b5f5ffd5b6100ff610321565b60405161010c9190610ee4565b60405180910390f35b61012f600480360381019061012a9190610f95565b6103b1565b60405161013c9190610fed565b60405180910390f35b61014d6103ce565b60405161015a9190611015565b60405180910390f35b61017d6004803603810190610178919061102e565b6103d7565b60405161018a9190610fed565b60405180910390f35b61019b6104c9565b6040516101a89190611099565b60405180910390f35b6101cb60048036038101906101c69190610f95565b6104d1565b6040516101d89190610fed565b60405180910390f35b6101fb60048036038101906101f691906110b2565b610578565b6040516102089190611015565b60405180910390f35b6102196105bd565b005b610223610644565b60405161023091906110ec565b60405180910390f35b61024161066c565b60405161024e9190611015565b60405180910390f35b61025f61067d565b60405161026c9190610ee4565b60405180910390f35b61028f600480360381019061028a9190610f95565b61070d565b60405161029c9190610fed565b60405180910390f35b6102bf60048036038101906102ba9190610f95565b6107f3565b6040516102cc9190610fed565b60405180910390f35b6102ef60048036038101906102ea9190611105565b610810565b6040516102fc9190611015565b60405180910390f35b61031f600480360381019061031a91906110b2565b610892565b005b60606003805461033090611170565b80601f016020809104026020016040519081016040528092919081815260200182805461035c90611170565b80156103a75780601f1061037e576101008083540402835291602001916103a7565b820191905f5260205f20905b81548152906001019060200180831161038a57829003601f168201915b5050505050905090565b5f6103c46103bd610988565b848461098f565b6001905092915050565b5f600254905090565b5f6103e3848484610b52565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61042a610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156104a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a090611210565b60405180910390fd5b6104bd856104b5610988565b85840361098f565b60019150509392505050565b5f6012905090565b5f61056e6104dd610988565b848460015f6104ea610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610569919061125b565b61098f565b6001905092915050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105c5610988565b73ffffffffffffffffffffffffffffffffffffffff166105e3610644565b73ffffffffffffffffffffffffffffffffffffffff1614610639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610630906112d8565b60405180910390fd5b6106425f610db1565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6c01431e0fae6d7217caa000000081565b60606004805461068c90611170565b80601f01602080910402602001604051908101604052809291908181526020018280546106b890611170565b80156107035780601f106106da57610100808354040283529160200191610703565b820191905f5260205f20905b8154815290600101906020018083116106e657829003601f168201915b5050505050905090565b5f5f60015f61071a610988565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156107d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cb90611366565b60405180910390fd5b6107e86107df610988565b8585840361098f565b600191505092915050565b5f6108066107ff610988565b8484610b52565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61089a610988565b73ffffffffffffffffffffffffffffffffffffffff166108b8610644565b73ffffffffffffffffffffffffffffffffffffffff161461090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610905906112d8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361097c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610973906113f4565b60405180910390fd5b61098581610db1565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490611482565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290611510565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b459190611015565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb79061159e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c259061162c565b60405180910390fd5b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca8906116ba565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610d3f919061125b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610da39190611015565b60405180910390a350505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eb682610e74565b610ec08185610e7e565b9350610ed0818560208601610e8e565b610ed981610e9c565b840191505092915050565b5f6020820190508181035f830152610efc8184610eac565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f3182610f08565b9050919050565b610f4181610f27565b8114610f4b575f5ffd5b50565b5f81359050610f5c81610f38565b92915050565b5f819050919050565b610f7481610f62565b8114610f7e575f5ffd5b50565b5f81359050610f8f81610f6b565b92915050565b5f5f60408385031215610fab57610faa610f04565b5b5f610fb885828601610f4e565b9250506020610fc985828601610f81565b9150509250929050565b5f8115159050919050565b610fe781610fd3565b82525050565b5f6020820190506110005f830184610fde565b92915050565b61100f81610f62565b82525050565b5f6020820190506110285f830184611006565b92915050565b5f5f5f6060848603121561104557611044610f04565b5b5f61105286828701610f4e565b935050602061106386828701610f4e565b925050604061107486828701610f81565b9150509250925092565b5f60ff82169050919050565b6110938161107e565b82525050565b5f6020820190506110ac5f83018461108a565b92915050565b5f602082840312156110c7576110c6610f04565b5b5f6110d484828501610f4e565b91505092915050565b6110e681610f27565b82525050565b5f6020820190506110ff5f8301846110dd565b92915050565b5f5f6040838503121561111b5761111a610f04565b5b5f61112885828601610f4e565b925050602061113985828601610f4e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061118757607f821691505b60208210810361119a57611199611143565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6111fa602883610e7e565b9150611205826111a0565b604082019050919050565b5f6020820190508181035f830152611227816111ee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61126582610f62565b915061127083610f62565b92508282019050808211156112885761128761122e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6112c2602083610e7e565b91506112cd8261128e565b602082019050919050565b5f6020820190508181035f8301526112ef816112b6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611350602583610e7e565b915061135b826112f6565b604082019050919050565b5f6020820190508181035f83015261137d81611344565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6113de602683610e7e565b91506113e982611384565b604082019050919050565b5f6020820190508181035f83015261140b816113d2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61146c602483610e7e565b915061147782611412565b604082019050919050565b5f6020820190508181035f83015261149981611460565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6114fa602283610e7e565b9150611505826114a0565b604082019050919050565b5f6020820190508181035f830152611527816114ee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611588602583610e7e565b91506115938261152e565b604082019050919050565b5f6020820190508181035f8301526115b58161157c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611616602383610e7e565b9150611621826115bc565b604082019050919050565b5f6020820190508181035f8301526116438161160a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6116a4602683610e7e565b91506116af8261164a565b604082019050919050565b5f6020820190508181035f8301526116d181611698565b905091905056fea264697066735822122028d4ac91d04ef4d8820da256b6a1888b84beb8da5f4a03a7792e44ee972df08e64736f6c634300081d0033a264697066735822122029aadf665ca1e398a6bdc71576e9ee98ed2fc3fe80e1a97efdcd96eddb60b45464736f6c634300081d0033
Deployed Bytecode Sourcemap
6757:1229:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7791:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7081:456;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7605:113;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6842:31;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7791:192;7855:7;7891:14;:21;;;;7883:5;:29;7875:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7954:14;7969:5;7954:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7947:28;;7791:192;;;:::o;7081:456::-;7247:16;7278:4;7284:6;7292:10;7266:37;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;7247:56;;7374:14;7402:8;7374:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7518:10;7471:58;;7493:8;7471:58;;;7504:4;7510:6;7471:58;;;;;;;:::i;:::-;;;;;;;;7153:384;7081:456;;:::o;7605:113::-;7662:7;7689:14;:21;;;;7682:28;;7605:113;:::o;6842:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:117::-;1720:1;1717;1710:12;1734:117;1843:1;1840;1833:12;1857:102;1898:6;1949:2;1945:7;1940:2;1933:5;1929:14;1925:28;1915:38;;1857:102;;;:::o;1965:180::-;2013:77;2010:1;2003:88;2110:4;2107:1;2100:15;2134:4;2131:1;2124:15;2151:281;2234:27;2256:4;2234:27;:::i;:::-;2226:6;2222:40;2364:6;2352:10;2349:22;2328:18;2316:10;2313:34;2310:62;2307:88;;;2375:18;;:::i;:::-;2307:88;2415:10;2411:2;2404:22;2194:238;2151:281;;:::o;2438:129::-;2472:6;2499:20;;:::i;:::-;2489:30;;2528:33;2556:4;2548:6;2528:33;:::i;:::-;2438:129;;;:::o;2573:308::-;2635:4;2725:18;2717:6;2714:30;2711:56;;;2747:18;;:::i;:::-;2711:56;2785:29;2807:6;2785:29;:::i;:::-;2777:37;;2869:4;2863;2859:15;2851:23;;2573:308;;;:::o;2887:148::-;2985:6;2980:3;2975;2962:30;3026:1;3017:6;3012:3;3008:16;3001:27;2887:148;;;:::o;3041:425::-;3119:5;3144:66;3160:49;3202:6;3160:49;:::i;:::-;3144:66;:::i;:::-;3135:75;;3233:6;3226:5;3219:21;3271:4;3264:5;3260:16;3309:3;3300:6;3295:3;3291:16;3288:25;3285:112;;;3316:79;;:::i;:::-;3285:112;3406:54;3453:6;3448:3;3443;3406:54;:::i;:::-;3125:341;3041:425;;;;;:::o;3486:340::-;3542:5;3591:3;3584:4;3576:6;3572:17;3568:27;3558:122;;3599:79;;:::i;:::-;3558:122;3716:6;3703:20;3741:79;3816:3;3808:6;3801:4;3793:6;3789:17;3741:79;:::i;:::-;3732:88;;3548:278;3486:340;;;;:::o;3832:834::-;3920:6;3928;3977:2;3965:9;3956:7;3952:23;3948:32;3945:119;;;3983:79;;:::i;:::-;3945:119;4131:1;4120:9;4116:17;4103:31;4161:18;4153:6;4150:30;4147:117;;;4183:79;;:::i;:::-;4147:117;4288:63;4343:7;4334:6;4323:9;4319:22;4288:63;:::i;:::-;4278:73;;4074:287;4428:2;4417:9;4413:18;4400:32;4459:18;4451:6;4448:30;4445:117;;;4481:79;;:::i;:::-;4445:117;4586:63;4641:7;4632:6;4621:9;4617:22;4586:63;:::i;:::-;4576:73;;4371:288;3832:834;;;;;:::o;4672:118::-;4759:24;4777:5;4759:24;:::i;:::-;4754:3;4747:37;4672:118;;:::o;4796:222::-;4889:4;4927:2;4916:9;4912:18;4904:26;;4940:71;5008:1;4997:9;4993:17;4984:6;4940:71;:::i;:::-;4796:222;;;;:::o;5024:169::-;5108:11;5142:6;5137:3;5130:19;5182:4;5177:3;5173:14;5158:29;;5024:169;;;;:::o;5199:::-;5339:21;5335:1;5327:6;5323:14;5316:45;5199:169;:::o;5374:366::-;5516:3;5537:67;5601:2;5596:3;5537:67;:::i;:::-;5530:74;;5613:93;5702:3;5613:93;:::i;:::-;5731:2;5726:3;5722:12;5715:19;;5374:366;;;:::o;5746:419::-;5912:4;5950:2;5939:9;5935:18;5927:26;;5999:9;5993:4;5989:20;5985:1;5974:9;5970:17;5963:47;6027:131;6153:4;6027:131;:::i;:::-;6019:139;;5746:419;;;:::o;6171:180::-;6219:77;6216:1;6209:88;6316:4;6313:1;6306:15;6340:4;6337:1;6330:15;6357:99;6409:6;6443:5;6437:12;6427:22;;6357:99;;;:::o;6462:139::-;6551:6;6546:3;6541;6535:23;6592:1;6583:6;6578:3;6574:16;6567:27;6462:139;;;:::o;6607:377::-;6695:3;6723:39;6756:5;6723:39;:::i;:::-;6778:71;6842:6;6837:3;6778:71;:::i;:::-;6771:78;;6858:65;6916:6;6911:3;6904:4;6897:5;6893:16;6858:65;:::i;:::-;6948:29;6970:6;6948:29;:::i;:::-;6943:3;6939:39;6932:46;;6699:285;6607:377;;;;:::o;6990:624::-;7179:4;7217:2;7206:9;7202:18;7194:26;;7266:9;7260:4;7256:20;7252:1;7241:9;7237:17;7230:47;7294:78;7367:4;7358:6;7294:78;:::i;:::-;7286:86;;7419:9;7413:4;7409:20;7404:2;7393:9;7389:18;7382:48;7447:78;7520:4;7511:6;7447:78;:::i;:::-;7439:86;;7535:72;7603:2;7592:9;7588:18;7579:6;7535:72;:::i;:::-;6990:624;;;;;;:::o;7620:514::-;7781:4;7819:2;7808:9;7804:18;7796:26;;7868:9;7862:4;7858:20;7854:1;7843:9;7839:17;7832:47;7896:78;7969:4;7960:6;7896:78;:::i;:::-;7888:86;;8021:9;8015:4;8011:20;8006:2;7995:9;7991:18;7984:48;8049:78;8122:4;8113:6;8049:78;:::i;:::-;8041:86;;7620:514;;;;;:::o
Swarm Source
ipfs://29aadf665ca1e398a6bdc71576e9ee98ed2fc3fe80e1a97efdcd96eddb60b454
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.