Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,016 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Sell Shares | 19312090 | 306 days ago | IN | 0 ETH | 0.00271122 | ||||
Sell Shares | 19312081 | 306 days ago | IN | 0 ETH | 0.0028873 | ||||
Sell Shares | 19195687 | 322 days ago | IN | 0 ETH | 0.00223727 | ||||
Sell Shares | 19195684 | 322 days ago | IN | 0 ETH | 0.00203767 | ||||
Sell Shares | 19195681 | 322 days ago | IN | 0 ETH | 0.00204035 | ||||
Sell Shares | 18534927 | 415 days ago | IN | 0 ETH | 0.00261322 | ||||
Sell Shares | 18534924 | 415 days ago | IN | 0 ETH | 0.00306534 | ||||
Sell Shares | 18534923 | 415 days ago | IN | 0 ETH | 0.00319924 | ||||
Sell Shares | 18534921 | 415 days ago | IN | 0 ETH | 0.00329473 | ||||
Sell Shares | 18534911 | 415 days ago | IN | 0 ETH | 0.00331986 | ||||
Sell Shares | 18534909 | 415 days ago | IN | 0 ETH | 0.00316738 | ||||
Sell Shares | 18534906 | 415 days ago | IN | 0 ETH | 0.00328665 | ||||
Sell Shares | 18503012 | 419 days ago | IN | 0 ETH | 0.00095677 | ||||
Sell Shares | 18503008 | 419 days ago | IN | 0 ETH | 0.00095395 | ||||
Sell Shares | 18354948 | 440 days ago | IN | 0 ETH | 0.00034615 | ||||
Sell Shares | 18352706 | 440 days ago | IN | 0 ETH | 0.00039931 | ||||
Sell Shares | 18352703 | 440 days ago | IN | 0 ETH | 0.0003676 | ||||
Sell Shares | 18352699 | 440 days ago | IN | 0 ETH | 0.00034791 | ||||
Sell Shares | 18342263 | 442 days ago | IN | 0 ETH | 0.00061507 | ||||
Sell Shares | 18310346 | 446 days ago | IN | 0 ETH | 0.00035928 | ||||
Buy Shares | 18299138 | 448 days ago | IN | 0.00556875 ETH | 0.00054127 | ||||
Sell Shares | 18246987 | 455 days ago | IN | 0 ETH | 0.00041012 | ||||
Sell Shares | 18246985 | 455 days ago | IN | 0 ETH | 0.0004368 | ||||
Sell Shares | 18246983 | 455 days ago | IN | 0 ETH | 0.0004131 | ||||
Sell Shares | 18246980 | 455 days ago | IN | 0 ETH | 0.00041292 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
19312090 | 306 days ago | 0.00090312 ETH | ||||
19312090 | 306 days ago | 0.00090312 ETH | ||||
19312090 | 306 days ago | 0.01625625 ETH | ||||
19312081 | 306 days ago | 0.00112812 ETH | ||||
19312081 | 306 days ago | 0.00112812 ETH | ||||
19312081 | 306 days ago | 0.02030625 ETH | ||||
19195687 | 322 days ago | 0.0006125 ETH | ||||
19195687 | 322 days ago | 0.0006125 ETH | ||||
19195687 | 322 days ago | 0.011025 ETH | ||||
19195684 | 322 days ago | 0.0010125 ETH | ||||
19195684 | 322 days ago | 0.0010125 ETH | ||||
19195684 | 322 days ago | 0.018225 ETH | ||||
19195681 | 322 days ago | 0.00195312 ETH | ||||
19195681 | 322 days ago | 0.00195312 ETH | ||||
19195681 | 322 days ago | 0.03515625 ETH | ||||
18534927 | 415 days ago | 0.00125 ETH | ||||
18534927 | 415 days ago | 0.00125 ETH | ||||
18534927 | 415 days ago | 0.0225 ETH | ||||
18534924 | 415 days ago | 0.00037812 ETH | ||||
18534924 | 415 days ago | 0.00037812 ETH | ||||
18534924 | 415 days ago | 0.00680625 ETH | ||||
18534923 | 415 days ago | 0.00045 ETH | ||||
18534923 | 415 days ago | 0.00045 ETH | ||||
18534923 | 415 days ago | 0.0081 ETH | ||||
18534921 | 415 days ago | 0.00052812 ETH |
Loading...
Loading
Contract Name:
iso3166SharesV1
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-24 */ // SPDX-License-Identifier: MIT // File: contracts/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: contracts/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/FriendtechShares.sol pragma solidity >=0.8.2 <0.9.0; // TODO: Events, final pricing model, contract iso3166SharesV1 is Ownable { address public protocolFeeDestination; uint256 public protocolFeePercent = 50000000000000000; uint256 public subjectFeePercent = 50000000000000000; event Trade( address trader, uint256 subject, bool isBuy, uint256 shareAmount, uint256 ethAmount, uint256 protocolEthAmount, uint256 subjectEthAmount, uint256 supply ); // SharesSubject => (Holder => Balance) mapping(uint256 => mapping(address => uint256)) public sharesBalance; // SharesSubject => Supply mapping(uint256 => uint256) public sharesSupply; mapping(address => address) public invite; function setFeeDestination(address _feeDestination) public onlyOwner { protocolFeeDestination = _feeDestination; } function setProtocolFeePercent(uint256 _feePercent) public onlyOwner { protocolFeePercent = _feePercent; } function setSubjectFeePercent(uint256 _feePercent) public onlyOwner { subjectFeePercent = _feePercent; } function register(address _inviter) public { require(invite[msg.sender] == address(0), "Error: Repeat binding"); require(_inviter != msg.sender, "Error: Binding self"); require( _inviter != address(0), "Error: Binding inviter is zero address" ); require( invite[_inviter] != msg.sender, "Error: Do not allow mutual binding" ); invite[msg.sender] = _inviter; } function getPrice( uint256 supply, uint256 amount ) public pure returns (uint256) { uint256 sum1 = supply == 0 ? 0 : ((supply - 1) * (supply) * (2 * (supply - 1) + 1)) / 6; uint256 sum2 = supply == 0 && amount == 1 ? 0 : ((supply - 1 + amount) * (supply + amount) * (2 * (supply - 1 + amount) + 1)) / 6; uint256 summation = sum2 - sum1; return (summation * 1 ether) / 16000; } function getBuyPrice( uint256 sharesSubject, uint256 amount ) public view returns (uint256) { return getPrice(sharesSupply[sharesSubject], amount); } function getSellPrice( uint256 sharesSubject, uint256 amount ) public view returns (uint256) { return getPrice(sharesSupply[sharesSubject] - amount, amount); } function getBuyPriceAfterFee( uint256 sharesSubject, uint256 amount ) public view returns (uint256) { uint256 price = getBuyPrice(sharesSubject, amount); uint256 protocolFee = (price * protocolFeePercent) / 1 ether; uint256 subjectFee = (price * subjectFeePercent) / 1 ether; return price + protocolFee + subjectFee; } function getSellPriceAfterFee( uint256 sharesSubject, uint256 amount ) public view returns (uint256) { uint256 price = getSellPrice(sharesSubject, amount); uint256 protocolFee = (price * protocolFeePercent) / 1 ether; uint256 subjectFee = (price * subjectFeePercent) / 1 ether; return price - protocolFee - subjectFee; } function buyShares(uint256 sharesSubject, uint256 amount) public payable { uint256 supply = sharesSupply[sharesSubject]; uint256 price = getPrice(supply, amount); uint256 protocolFee = (price * protocolFeePercent) / 1 ether; uint256 subjectFee = (price * subjectFeePercent) / 1 ether; require( msg.value >= price + protocolFee + subjectFee, "Insufficient payment" ); sharesBalance[sharesSubject][msg.sender] = sharesBalance[sharesSubject][msg.sender] + amount; sharesSupply[sharesSubject] = supply + amount; emit Trade( msg.sender, sharesSubject, true, amount, price, protocolFee, subjectFee, supply + amount ); (bool success1, ) = protocolFeeDestination.call{value: protocolFee}(""); if (invite[msg.sender] != address(0)) { (bool success2, ) = invite[msg.sender].call{value: subjectFee}(""); require(success1 && success2, "Unable to send funds"); } else { (bool success2, ) = protocolFeeDestination.call{value: subjectFee}( "" ); require(success1 && success2, "Unable to send funds"); } } function sellShares(uint256 sharesSubject, uint256 amount) public payable { uint256 supply = sharesSupply[sharesSubject]; require(supply > amount, "Cannot sell the last share"); uint256 price = getPrice(supply - amount, amount); uint256 protocolFee = (price * protocolFeePercent) / 1 ether; uint256 subjectFee = (price * subjectFeePercent) / 1 ether; require( sharesBalance[sharesSubject][msg.sender] >= amount, "Insufficient shares" ); sharesBalance[sharesSubject][msg.sender] = sharesBalance[sharesSubject][msg.sender] - amount; sharesSupply[sharesSubject] = supply - amount; emit Trade( msg.sender, sharesSubject, false, amount, price, protocolFee, subjectFee, supply - amount ); (bool success1, ) = msg.sender.call{ value: price - protocolFee - subjectFee }(""); (bool success2, ) = protocolFeeDestination.call{value: protocolFee}(""); if (invite[msg.sender] != address(0)) { (bool success3, ) = invite[msg.sender].call{value: subjectFee}(""); require(success1 && success2 && success3, "Unable to send funds"); } else { (bool success3, ) = protocolFeeDestination.call{value: subjectFee}( "" ); require(success1 && success2 && success3, "Unable to send funds"); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"subject","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isBuy","type":"bool"},{"indexed":false,"internalType":"uint256","name":"shareAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolEthAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"subjectEthAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"}],"name":"Trade","type":"event"},{"inputs":[{"internalType":"uint256","name":"sharesSubject","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyShares","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sharesSubject","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBuyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"sharesSubject","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getBuyPriceAfterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"sharesSubject","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"sharesSubject","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getSellPriceAfterFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"invite","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_inviter","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sharesSubject","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellShares","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeDestination","type":"address"}],"name":"setFeeDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercent","type":"uint256"}],"name":"setProtocolFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feePercent","type":"uint256"}],"name":"setSubjectFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"sharesBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"sharesSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"subjectFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405266b1a2bc2ec5000060025566b1a2bc2ec5000060035534801561002657600080fd5b5061003033610035565b610085565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6111b8806100946000396000f3fe60806040526004361061011f5760003560e01c80638da5cb5b116100a0578063cd9c712111610064578063cd9c712114610323578063d6e6eb9f14610343578063dfe641c614610359578063f2fde38b14610391578063fbe53234146103b157600080fd5b80638da5cb5b146102925780639477d85d146102b0578063a4983421146102d0578063beebc5da146102f0578063c157253d1461030357600080fd5b80634b77c468116100e75780634b77c468146101cf5780634ce7957c1461021d5780635a8a764e1461023d5780635cf4ee911461025d578063715018a61461027d57600080fd5b8063063a741f146101245780632279a9701461015757806324dc441d1461016c57806340e104a7146101825780634420e486146101af575b600080fd5b34801561013057600080fd5b5061014461013f366004611000565b6103d1565b6040519081526020015b60405180910390f35b61016a610165366004611000565b61044b565b005b34801561017857600080fd5b5061014460035481565b34801561018e57600080fd5b5061014461019d366004611022565b60056020526000908152604090205481565b3480156101bb57600080fd5b5061016a6101ca366004611057565b610817565b3480156101db57600080fd5b506102056101ea366004611057565b6006602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161014e565b34801561022957600080fd5b50600154610205906001600160a01b031681565b34801561024957600080fd5b5061016a610258366004611022565b6109cc565b34801561026957600080fd5b50610144610278366004611000565b6109d9565b34801561028957600080fd5b5061016a610af0565b34801561029e57600080fd5b506000546001600160a01b0316610205565b3480156102bc57600080fd5b506101446102cb366004611000565b610b04565b3480156102dc57600080fd5b5061016a6102eb366004611022565b610b2f565b61016a6102fe366004611000565b610b3c565b34801561030f57600080fd5b5061014461031e366004611000565b610e2c565b34801561032f57600080fd5b5061014461033e366004611000565b610e45565b34801561034f57600080fd5b5061014460025481565b34801561036557600080fd5b50610144610374366004611072565b600460209081526000928352604080842090915290825290205481565b34801561039d57600080fd5b5061016a6103ac366004611057565b610eb3565b3480156103bd57600080fd5b5061016a6103cc366004611057565b610f2c565b6000806103de8484610e2c565b90506000670de0b6b3a7640000600254836103f991906110b4565b61040391906110cb565b90506000670de0b6b3a76400006003548461041e91906110b4565b61042891906110cb565b90508061043583856110ed565b61043f91906110ed565b93505050505b92915050565b6000828152600560205260409020548181116104ae5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073656c6c20746865206c61737420736861726500000000000060448201526064015b60405180910390fd5b60006104c36104bd8484611100565b846109d9565b90506000670de0b6b3a7640000600254836104de91906110b4565b6104e891906110cb565b90506000670de0b6b3a76400006003548461050391906110b4565b61050d91906110cb565b600087815260046020908152604080832033845290915290205490915085111561056f5760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742073686172657360681b60448201526064016104a5565b6000868152600460209081526040808320338452909152902054610594908690611100565b60008781526004602090815260408083203384529091529020556105b88585611100565b6000878152600560205260408120919091557f29db2a6062b25ead33a5fc8d1163c4d7f54397202547c27c1c99a203446477349033908890888787876105fe848d611100565b604051610612989796959493929190611113565b60405180910390a1600033826106288587611100565b6106329190611100565b604051600081818185875af1925050503d806000811461066e576040519150601f19603f3d011682016040523d82523d6000602084013e610673565b606091505b50506001546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146106c7576040519150601f19603f3d011682016040523d82523d6000602084013e6106cc565b606091505b5050336000908152600660205260409020549091506001600160a01b03161561078657336000908152600660205260408082205490516001600160a01b039091169085908381818185875af1925050503d8060008114610748576040519150601f19603f3d011682016040523d82523d6000602084013e61074d565b606091505b5050905082801561075b5750815b80156107645750805b6107805760405162461bcd60e51b81526004016104a590611154565b5061080d565b6001546040516000916001600160a01b03169085908381818185875af1925050503d80600081146107d3576040519150601f19603f3d011682016040523d82523d6000602084013e6107d8565b606091505b505090508280156107e65750815b80156107ef5750805b61080b5760405162461bcd60e51b81526004016104a590611154565b505b5050505050505050565b336000908152600660205260409020546001600160a01b0316156108755760405162461bcd60e51b81526020600482015260156024820152744572726f723a205265706561742062696e64696e6760581b60448201526064016104a5565b336001600160a01b038216036108c35760405162461bcd60e51b815260206004820152601360248201527222b93937b91d102134b73234b7339039b2b63360691b60448201526064016104a5565b6001600160a01b0381166109285760405162461bcd60e51b815260206004820152602660248201527f4572726f723a2042696e64696e6720696e7669746572206973207a65726f206160448201526564647265737360d01b60648201526084016104a5565b6001600160a01b038181166000908152600660205260409020543391160361099d5760405162461bcd60e51b815260206004820152602260248201527f4572726f723a20446f206e6f7420616c6c6f77206d757475616c2062696e64696044820152616e6760f01b60648201526084016104a5565b33600090815260066020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6109d4610f56565b600355565b6000808315610a345760066109ef600186611100565b6109fa9060026110b4565b610a059060016110ed565b85610a11600182611100565b610a1b91906110b4565b610a2591906110b4565b610a2f91906110cb565b610a37565b60005b9050600084158015610a495750836001145b610abe57600684610a5b600188611100565b610a6591906110ed565b610a709060026110b4565b610a7b9060016110ed565b610a8586886110ed565b86610a9160018a611100565b610a9b91906110ed565b610aa591906110b4565b610aaf91906110b4565b610ab991906110cb565b610ac1565b60005b90506000610acf8383611100565b9050613e80610ae682670de0b6b3a76400006110b4565b61043f91906110cb565b610af8610f56565b610b026000610fb0565b565b600082815260056020526040812054610b2890610b22908490611100565b836109d9565b9392505050565b610b37610f56565b600255565b60008281526005602052604081205490610b5682846109d9565b90506000670de0b6b3a764000060025483610b7191906110b4565b610b7b91906110cb565b90506000670de0b6b3a764000060035484610b9691906110b4565b610ba091906110cb565b905080610bad83856110ed565b610bb791906110ed565b341015610bfd5760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58da595b9d081c185e5b595b9d60621b60448201526064016104a5565b6000868152600460209081526040808320338452909152902054610c229086906110ed565b6000878152600460209081526040808320338452909152902055610c4685856110ed565b6000878152600560205260409020557f29db2a6062b25ead33a5fc8d1163c4d7f54397202547c27c1c99a203446477343387600188878787610c88848d6110ed565b604051610c9c989796959493929190611113565b60405180910390a16001546040516000916001600160a01b03169084908381818185875af1925050503d8060008114610cf1576040519150601f19603f3d011682016040523d82523d6000602084013e610cf6565b606091505b5050336000908152600660205260409020549091506001600160a01b031615610da757336000908152600660205260408082205490516001600160a01b039091169084908381818185875af1925050503d8060008114610d72576040519150601f19603f3d011682016040523d82523d6000602084013e610d77565b606091505b50509050818015610d855750805b610da15760405162461bcd60e51b81526004016104a590611154565b50610e23565b6001546040516000916001600160a01b03169084908381818185875af1925050503d8060008114610df4576040519150601f19603f3d011682016040523d82523d6000602084013e610df9565b606091505b50509050818015610e075750805b61080d5760405162461bcd60e51b81526004016104a590611154565b50505050505050565b600082815260056020526040812054610b2890836109d9565b600080610e528484610b04565b90506000670de0b6b3a764000060025483610e6d91906110b4565b610e7791906110cb565b90506000670de0b6b3a764000060035484610e9291906110b4565b610e9c91906110cb565b905080610ea98385611100565b61043f9190611100565b610ebb610f56565b6001600160a01b038116610f205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a5565b610f2981610fb0565b50565b610f34610f56565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806040838503121561101357600080fd5b50508035926020909101359150565b60006020828403121561103457600080fd5b5035919050565b80356001600160a01b038116811461105257600080fd5b919050565b60006020828403121561106957600080fd5b610b288261103b565b6000806040838503121561108557600080fd5b823591506110956020840161103b565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104455761044561109e565b6000826110e857634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104455761044561109e565b818103818111156104455761044561109e565b6001600160a01b03989098168852602088019690965293151560408701526060860192909252608085015260a084015260c083015260e08201526101000190565b602080825260149082015273556e61626c6520746f2073656e642066756e647360601b60408201526060019056fea26469706673582212209bcb79b3b05970c81a82d640bddc907fde07d50cd7655eab1472d14f16a09dfd64736f6c63430008120033
Deployed Bytecode
0x60806040526004361061011f5760003560e01c80638da5cb5b116100a0578063cd9c712111610064578063cd9c712114610323578063d6e6eb9f14610343578063dfe641c614610359578063f2fde38b14610391578063fbe53234146103b157600080fd5b80638da5cb5b146102925780639477d85d146102b0578063a4983421146102d0578063beebc5da146102f0578063c157253d1461030357600080fd5b80634b77c468116100e75780634b77c468146101cf5780634ce7957c1461021d5780635a8a764e1461023d5780635cf4ee911461025d578063715018a61461027d57600080fd5b8063063a741f146101245780632279a9701461015757806324dc441d1461016c57806340e104a7146101825780634420e486146101af575b600080fd5b34801561013057600080fd5b5061014461013f366004611000565b6103d1565b6040519081526020015b60405180910390f35b61016a610165366004611000565b61044b565b005b34801561017857600080fd5b5061014460035481565b34801561018e57600080fd5b5061014461019d366004611022565b60056020526000908152604090205481565b3480156101bb57600080fd5b5061016a6101ca366004611057565b610817565b3480156101db57600080fd5b506102056101ea366004611057565b6006602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161014e565b34801561022957600080fd5b50600154610205906001600160a01b031681565b34801561024957600080fd5b5061016a610258366004611022565b6109cc565b34801561026957600080fd5b50610144610278366004611000565b6109d9565b34801561028957600080fd5b5061016a610af0565b34801561029e57600080fd5b506000546001600160a01b0316610205565b3480156102bc57600080fd5b506101446102cb366004611000565b610b04565b3480156102dc57600080fd5b5061016a6102eb366004611022565b610b2f565b61016a6102fe366004611000565b610b3c565b34801561030f57600080fd5b5061014461031e366004611000565b610e2c565b34801561032f57600080fd5b5061014461033e366004611000565b610e45565b34801561034f57600080fd5b5061014460025481565b34801561036557600080fd5b50610144610374366004611072565b600460209081526000928352604080842090915290825290205481565b34801561039d57600080fd5b5061016a6103ac366004611057565b610eb3565b3480156103bd57600080fd5b5061016a6103cc366004611057565b610f2c565b6000806103de8484610e2c565b90506000670de0b6b3a7640000600254836103f991906110b4565b61040391906110cb565b90506000670de0b6b3a76400006003548461041e91906110b4565b61042891906110cb565b90508061043583856110ed565b61043f91906110ed565b93505050505b92915050565b6000828152600560205260409020548181116104ae5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073656c6c20746865206c61737420736861726500000000000060448201526064015b60405180910390fd5b60006104c36104bd8484611100565b846109d9565b90506000670de0b6b3a7640000600254836104de91906110b4565b6104e891906110cb565b90506000670de0b6b3a76400006003548461050391906110b4565b61050d91906110cb565b600087815260046020908152604080832033845290915290205490915085111561056f5760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742073686172657360681b60448201526064016104a5565b6000868152600460209081526040808320338452909152902054610594908690611100565b60008781526004602090815260408083203384529091529020556105b88585611100565b6000878152600560205260408120919091557f29db2a6062b25ead33a5fc8d1163c4d7f54397202547c27c1c99a203446477349033908890888787876105fe848d611100565b604051610612989796959493929190611113565b60405180910390a1600033826106288587611100565b6106329190611100565b604051600081818185875af1925050503d806000811461066e576040519150601f19603f3d011682016040523d82523d6000602084013e610673565b606091505b50506001546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146106c7576040519150601f19603f3d011682016040523d82523d6000602084013e6106cc565b606091505b5050336000908152600660205260409020549091506001600160a01b03161561078657336000908152600660205260408082205490516001600160a01b039091169085908381818185875af1925050503d8060008114610748576040519150601f19603f3d011682016040523d82523d6000602084013e61074d565b606091505b5050905082801561075b5750815b80156107645750805b6107805760405162461bcd60e51b81526004016104a590611154565b5061080d565b6001546040516000916001600160a01b03169085908381818185875af1925050503d80600081146107d3576040519150601f19603f3d011682016040523d82523d6000602084013e6107d8565b606091505b505090508280156107e65750815b80156107ef5750805b61080b5760405162461bcd60e51b81526004016104a590611154565b505b5050505050505050565b336000908152600660205260409020546001600160a01b0316156108755760405162461bcd60e51b81526020600482015260156024820152744572726f723a205265706561742062696e64696e6760581b60448201526064016104a5565b336001600160a01b038216036108c35760405162461bcd60e51b815260206004820152601360248201527222b93937b91d102134b73234b7339039b2b63360691b60448201526064016104a5565b6001600160a01b0381166109285760405162461bcd60e51b815260206004820152602660248201527f4572726f723a2042696e64696e6720696e7669746572206973207a65726f206160448201526564647265737360d01b60648201526084016104a5565b6001600160a01b038181166000908152600660205260409020543391160361099d5760405162461bcd60e51b815260206004820152602260248201527f4572726f723a20446f206e6f7420616c6c6f77206d757475616c2062696e64696044820152616e6760f01b60648201526084016104a5565b33600090815260066020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6109d4610f56565b600355565b6000808315610a345760066109ef600186611100565b6109fa9060026110b4565b610a059060016110ed565b85610a11600182611100565b610a1b91906110b4565b610a2591906110b4565b610a2f91906110cb565b610a37565b60005b9050600084158015610a495750836001145b610abe57600684610a5b600188611100565b610a6591906110ed565b610a709060026110b4565b610a7b9060016110ed565b610a8586886110ed565b86610a9160018a611100565b610a9b91906110ed565b610aa591906110b4565b610aaf91906110b4565b610ab991906110cb565b610ac1565b60005b90506000610acf8383611100565b9050613e80610ae682670de0b6b3a76400006110b4565b61043f91906110cb565b610af8610f56565b610b026000610fb0565b565b600082815260056020526040812054610b2890610b22908490611100565b836109d9565b9392505050565b610b37610f56565b600255565b60008281526005602052604081205490610b5682846109d9565b90506000670de0b6b3a764000060025483610b7191906110b4565b610b7b91906110cb565b90506000670de0b6b3a764000060035484610b9691906110b4565b610ba091906110cb565b905080610bad83856110ed565b610bb791906110ed565b341015610bfd5760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58da595b9d081c185e5b595b9d60621b60448201526064016104a5565b6000868152600460209081526040808320338452909152902054610c229086906110ed565b6000878152600460209081526040808320338452909152902055610c4685856110ed565b6000878152600560205260409020557f29db2a6062b25ead33a5fc8d1163c4d7f54397202547c27c1c99a203446477343387600188878787610c88848d6110ed565b604051610c9c989796959493929190611113565b60405180910390a16001546040516000916001600160a01b03169084908381818185875af1925050503d8060008114610cf1576040519150601f19603f3d011682016040523d82523d6000602084013e610cf6565b606091505b5050336000908152600660205260409020549091506001600160a01b031615610da757336000908152600660205260408082205490516001600160a01b039091169084908381818185875af1925050503d8060008114610d72576040519150601f19603f3d011682016040523d82523d6000602084013e610d77565b606091505b50509050818015610d855750805b610da15760405162461bcd60e51b81526004016104a590611154565b50610e23565b6001546040516000916001600160a01b03169084908381818185875af1925050503d8060008114610df4576040519150601f19603f3d011682016040523d82523d6000602084013e610df9565b606091505b50509050818015610e075750805b61080d5760405162461bcd60e51b81526004016104a590611154565b50505050505050565b600082815260056020526040812054610b2890836109d9565b600080610e528484610b04565b90506000670de0b6b3a764000060025483610e6d91906110b4565b610e7791906110cb565b90506000670de0b6b3a764000060035484610e9291906110b4565b610e9c91906110cb565b905080610ea98385611100565b61043f9190611100565b610ebb610f56565b6001600160a01b038116610f205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a5565b610f2981610fb0565b50565b610f34610f56565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104a5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806040838503121561101357600080fd5b50508035926020909101359150565b60006020828403121561103457600080fd5b5035919050565b80356001600160a01b038116811461105257600080fd5b919050565b60006020828403121561106957600080fd5b610b288261103b565b6000806040838503121561108557600080fd5b823591506110956020840161103b565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104455761044561109e565b6000826110e857634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104455761044561109e565b818103818111156104455761044561109e565b6001600160a01b03989098168852602088019690965293151560408701526060860192909252608085015260a084015260c083015260e08201526101000190565b602080825260149082015273556e61626c6520746f2073656e642066756e647360601b60408201526060019056fea26469706673582212209bcb79b3b05970c81a82d640bddc907fde07d50cd7655eab1472d14f16a09dfd64736f6c63430008120033
Deployed Bytecode Sourcemap
3762:6262:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6292:382;;;;;;;;;;-1:-1:-1;6292:382:0;;;;;:::i;:::-;;:::i;:::-;;;413:25:1;;;401:2;386:18;6292:382:0;;;;;;;;8442:1579;;;;;;:::i;:::-;;:::i;:::-;;3909:52;;;;;;;;;;;;;;;;4377:47;;;;;;;;;;-1:-1:-1;4377:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;4871:481;;;;;;;;;;-1:-1:-1;4871:481:0;;;;;:::i;:::-;;:::i;4431:41::-;;;;;;;;;;-1:-1:-1;4431:41:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;4431:41:0;;;;;;-1:-1:-1;;;;;1167:32:1;;;1149:51;;1137:2;1122:18;4431:41:0;1003:203:1;3805:37:0;;;;;;;;;;-1:-1:-1;3805:37:0;;;;-1:-1:-1;;;;;3805:37:0;;;4745:118;;;;;;;;;;-1:-1:-1;4745:118:0;;;;;:::i;:::-;;:::i;5360:526::-;;;;;;;;;;-1:-1:-1;5360:526:0;;;;;:::i;:::-;;:::i;2789:103::-;;;;;;;;;;;;;:::i;2141:87::-;;;;;;;;;;-1:-1:-1;2187:7:0;2214:6;-1:-1:-1;;;;;2214:6:0;2141:87;;6088:196;;;;;;;;;;-1:-1:-1;6088:196:0;;;;;:::i;:::-;;:::i;4617:120::-;;;;;;;;;;-1:-1:-1;4617:120:0;;;;;:::i;:::-;;:::i;7074:1360::-;;;;;;:::i;:::-;;:::i;5894:186::-;;;;;;;;;;-1:-1:-1;5894:186:0;;;;;:::i;:::-;;:::i;6682:384::-;;;;;;;;;;-1:-1:-1;6682:384:0;;;;;:::i;:::-;;:::i;3849:53::-;;;;;;;;;;;;;;;;4268:68;;;;;;;;;;-1:-1:-1;4268:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3047:238;;;;;;;;;;-1:-1:-1;3047:238:0;;;;;:::i;:::-;;:::i;4481:128::-;;;;;;;;;;-1:-1:-1;4481:128:0;;;;;:::i;:::-;;:::i;6292:382::-;6406:7;6426:13;6442:34;6454:13;6469:6;6442:11;:34::i;:::-;6426:50;;6487:19;6540:7;6518:18;;6510:5;:26;;;;:::i;:::-;6509:38;;;;:::i;:::-;6487:60;;6558:18;6609:7;6588:17;;6580:5;:25;;;;:::i;:::-;6579:37;;;;:::i;:::-;6558:58;-1:-1:-1;6558:58:0;6634:19;6642:11;6634:5;:19;:::i;:::-;:32;;;;:::i;:::-;6627:39;;;;;6292:382;;;;;:::o;8442:1579::-;8527:14;8544:27;;;:12;:27;;;;;;8590:15;;;8582:54;;;;-1:-1:-1;;;8582:54:0;;2329:2:1;8582:54:0;;;2311:21:1;2368:2;2348:18;;;2341:30;2407:28;2387:18;;;2380:56;2453:18;;8582:54:0;;;;;;;;;8647:13;8663:33;8672:15;8681:6;8672;:15;:::i;:::-;8689:6;8663:8;:33::i;:::-;8647:49;;8707:19;8760:7;8738:18;;8730:5;:26;;;;:::i;:::-;8729:38;;;;:::i;:::-;8707:60;;8778:18;8829:7;8808:17;;8800:5;:25;;;;:::i;:::-;8799:37;;;;:::i;:::-;8869:28;;;;:13;:28;;;;;;;;8898:10;8869:40;;;;;;;;8778:58;;-1:-1:-1;8869:50:0;-1:-1:-1;8869:50:0;8847:119;;;;-1:-1:-1;;;8847:119:0;;2817:2:1;8847:119:0;;;2799:21:1;2856:2;2836:18;;;2829:30;-1:-1:-1;;;2875:18:1;;;2868:49;2934:18;;8847:119:0;2615:343:1;8847:119:0;9033:28;;;;:13;:28;;;;;;;;9062:10;9033:40;;;;;;;;:62;;9089:6;;9033:62;:::i;:::-;8977:28;;;;:13;:28;;;;;;;;9006:10;8977:40;;;;;;;:118;9138:15;9147:6;9138;:15;:::i;:::-;9108:27;;;;:12;:27;;;;;:45;;;;9169:211;;9189:10;;9121:13;;9262:6;9283:5;9303:11;9329:10;9354:15;9262:6;9354;:15;:::i;:::-;9169:211;;;;;;;;;;;;;:::i;:::-;;;;;;;;9392:13;9411:10;9470;9448:19;9456:11;9448:5;:19;:::i;:::-;:32;;;;:::i;:::-;9411:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9526:22:0;;:51;;9391:104;;-1:-1:-1;9507:13:0;;-1:-1:-1;;;;;9526:22:0;;;;9561:11;;9507:13;9526:51;9507:13;9526:51;9561:11;9526:22;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9599:10:0;9622:1;9592:18;;;:6;:18;;;;;;9506:71;;-1:-1:-1;;;;;;9592:18:0;:32;9588:426;;9668:10;9642:13;9661:18;;;:6;:18;;;;;;;:46;;-1:-1:-1;;;;;9661:18:0;;;;9692:10;;9642:13;9661:46;9642:13;9661:46;9692:10;9661:18;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9641:66;;;9730:8;:20;;;;;9742:8;9730:20;:32;;;;;9754:8;9730:32;9722:65;;;;-1:-1:-1;;;9722:65:0;;;;;;;:::i;:::-;9626:173;9588:426;;;9840:22;;:82;;9821:13;;-1:-1:-1;;;;;9840:22:0;;9875:10;;9821:13;9840:82;9821:13;9840:82;9875:10;9840:22;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9820:102;;;9945:8;:20;;;;;9957:8;9945:20;:32;;;;;9969:8;9945:32;9937:65;;;;-1:-1:-1;;;9937:65:0;;;;;;;:::i;:::-;9805:209;9588:426;8516:1505;;;;;;8442:1579;;:::o;4871:481::-;4940:10;4963:1;4933:18;;;:6;:18;;;;;;-1:-1:-1;;;;;4933:18:0;:32;4925:66;;;;-1:-1:-1;;;4925:66:0;;4444:2:1;4925:66:0;;;4426:21:1;4483:2;4463:18;;;4456:30;-1:-1:-1;;;4502:18:1;;;4495:51;4563:18;;4925:66:0;4242:345:1;4925:66:0;5022:10;-1:-1:-1;;;;;5010:22:0;;;5002:54;;;;-1:-1:-1;;;5002:54:0;;4794:2:1;5002:54:0;;;4776:21:1;4833:2;4813:18;;;4806:30;-1:-1:-1;;;4852:18:1;;;4845:49;4911:18;;5002:54:0;4592:343:1;5002:54:0;-1:-1:-1;;;;;5089:22:0;;5067:110;;;;-1:-1:-1;;;5067:110:0;;5142:2:1;5067:110:0;;;5124:21:1;5181:2;5161:18;;;5154:30;5220:34;5200:18;;;5193:62;-1:-1:-1;;;5271:18:1;;;5264:36;5317:19;;5067:110:0;4940:402:1;5067:110:0;-1:-1:-1;;;;;5212:16:0;;;;;;;:6;:16;;;;;;5232:10;5212:16;;:30;5190:114;;;;-1:-1:-1;;;5190:114:0;;5549:2:1;5190:114:0;;;5531:21:1;5588:2;5568:18;;;5561:30;5627:34;5607:18;;;5600:62;-1:-1:-1;;;5678:18:1;;;5671:32;5720:19;;5190:114:0;5347:398:1;5190:114:0;5322:10;5315:18;;;;:6;:18;;;;;:29;;-1:-1:-1;;;;;;5315:29:0;-1:-1:-1;;;;;5315:29:0;;;;;;;;;;4871:481::o;4745:118::-;2027:13;:11;:13::i;:::-;4824:17:::1;:31:::0;4745:118::o;5360:526::-;5456:7;;5491:11;;:98;;5588:1;5568:10;5577:1;5568:6;:10;:::i;:::-;5563:16;;:1;:16;:::i;:::-;:20;;5582:1;5563:20;:::i;:::-;5552:6;5537:10;5546:1;5552:6;5537:10;:::i;:::-;5536:23;;;;:::i;:::-;:48;;;;:::i;:::-;5535:54;;;;:::i;:::-;5491:98;;;5518:1;5491:98;5476:113;-1:-1:-1;5600:12:0;5615:11;;:26;;;;;5630:6;5640:1;5630:11;5615:26;:174;;5788:1;5772:6;5759:10;5768:1;5759:6;:10;:::i;:::-;:19;;;;:::i;:::-;5754:25;;:1;:25;:::i;:::-;:29;;5782:1;5754:29;:::i;:::-;5717:15;5726:6;5717;:15;:::i;:::-;5689:6;5676:10;5685:1;5676:6;:10;:::i;:::-;:19;;;;:::i;:::-;5675:58;;;;:::i;:::-;:109;;;;:::i;:::-;5674:115;;;;:::i;:::-;5615:174;;;5657:1;5615:174;5600:189;-1:-1:-1;5800:17:0;5820:11;5827:4;5600:189;5820:11;:::i;:::-;5800:31;-1:-1:-1;5873:5:0;5850:19;5800:31;5862:7;5850:19;:::i;:::-;5849:29;;;;:::i;2789:103::-;2027:13;:11;:13::i;:::-;2854:30:::1;2881:1;2854:18;:30::i;:::-;2789:103::o:0;6088:196::-;6195:7;6231:27;;;:12;:27;;;;;;6222:54;;6231:36;;6261:6;;6231:36;:::i;:::-;6269:6;6222:8;:54::i;:::-;6215:61;6088:196;-1:-1:-1;;;6088:196:0:o;4617:120::-;2027:13;:11;:13::i;:::-;4697:18:::1;:32:::0;4617:120::o;7074:1360::-;7158:14;7175:27;;;:12;:27;;;;;;;7229:24;7175:27;7246:6;7229:8;:24::i;:::-;7213:40;;7264:19;7317:7;7295:18;;7287:5;:26;;;;:::i;:::-;7286:38;;;;:::i;:::-;7264:60;;7335:18;7386:7;7365:17;;7357:5;:25;;;;:::i;:::-;7356:37;;;;:::i;:::-;7335:58;-1:-1:-1;7335:58:0;7439:19;7447:11;7439:5;:19;:::i;:::-;:32;;;;:::i;:::-;7426:9;:45;;7404:115;;;;-1:-1:-1;;;7404:115:0;;5952:2:1;7404:115:0;;;5934:21:1;5991:2;5971:18;;;5964:30;-1:-1:-1;;;6010:18:1;;;6003:50;6070:18;;7404:115:0;5750:344:1;7404:115:0;7588:28;;;;:13;:28;;;;;;;;7617:10;7588:40;;;;;;;;:62;;7644:6;;7588:62;:::i;:::-;7532:28;;;;:13;:28;;;;;;;;7561:10;7532:40;;;;;;;:118;7691:15;7700:6;7691;:15;:::i;:::-;7661:27;;;;:12;:27;;;;;:45;7722:210;7742:10;7674:13;7795:4;7814:6;7835:5;7855:11;7881:10;7906:15;7814:6;7906;:15;:::i;:::-;7722:210;;;;;;;;;;;;;:::i;:::-;;;;;;;;7963:22;;:51;;7944:13;;-1:-1:-1;;;;;7963:22:0;;7998:11;;7944:13;7963:51;7944:13;7963:51;7998:11;7963:22;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8036:10:0;8059:1;8029:18;;;:6;:18;;;;;;7943:71;;-1:-1:-1;;;;;;8029:18:0;:32;8025:402;;8105:10;8079:13;8098:18;;;:6;:18;;;;;;;:46;;-1:-1:-1;;;;;8098:18:0;;;;8129:10;;8079:13;8098:46;8079:13;8098:46;8129:10;8098:18;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8078:66;;;8167:8;:20;;;;;8179:8;8167:20;8159:53;;;;-1:-1:-1;;;8159:53:0;;;;;;;:::i;:::-;8063:161;8025:402;;;8265:22;;:82;;8246:13;;-1:-1:-1;;;;;8265:22:0;;8300:10;;8246:13;8265:82;8246:13;8265:82;8300:10;8265:22;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8245:102;;;8370:8;:20;;;;;8382:8;8370:20;8362:53;;;;-1:-1:-1;;;8362:53:0;;;;;;;:::i;8025:402::-;7147:1287;;;;;7074:1360;;:::o;5894:186::-;6000:7;6036:27;;;:12;:27;;;;;;6027:45;;6065:6;6027:8;:45::i;6682:384::-;6797:7;6817:13;6833:35;6846:13;6861:6;6833:12;:35::i;:::-;6817:51;;6879:19;6932:7;6910:18;;6902:5;:26;;;;:::i;:::-;6901:38;;;;:::i;:::-;6879:60;;6950:18;7001:7;6980:17;;6972:5;:25;;;;:::i;:::-;6971:37;;;;:::i;:::-;6950:58;-1:-1:-1;6950:58:0;7026:19;7034:11;7026:5;:19;:::i;:::-;:32;;;;:::i;3047:238::-;2027:13;:11;:13::i;:::-;-1:-1:-1;;;;;3150:22:0;::::1;3128:110;;;::::0;-1:-1:-1;;;3128:110:0;;6301:2:1;3128:110:0::1;::::0;::::1;6283:21:1::0;6340:2;6320:18;;;6313:30;6379:34;6359:18;;;6352:62;-1:-1:-1;;;6430:18:1;;;6423:36;6476:19;;3128:110:0::1;6099:402:1::0;3128:110:0::1;3249:28;3268:8;3249:18;:28::i;:::-;3047:238:::0;:::o;4481:128::-;2027:13;:11;:13::i;:::-;4561:22:::1;:40:::0;;-1:-1:-1;;;;;;4561:40:0::1;-1:-1:-1::0;;;;;4561:40:0;;;::::1;::::0;;;::::1;::::0;;4481:128::o;2306:132::-;2187:7;2214:6;-1:-1:-1;;;;;2214:6:0;772:10;2370:23;2362:68;;;;-1:-1:-1;;;2362:68:0;;6708:2:1;2362:68:0;;;6690:21:1;;;6727:18;;;6720:30;6786:34;6766:18;;;6759:62;6838:18;;2362:68:0;6506:356:1;3445:191:0;3519:16;3538:6;;-1:-1:-1;;;;;3555:17:0;;;-1:-1:-1;;;;;;3555:17:0;;;;;;3588:40;;3538:6;;;;;;;3588:40;;3519:16;3588:40;3508:128;3445:191;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;449:180::-;508:6;561:2;549:9;540:7;536:23;532:32;529:52;;;577:1;574;567:12;529:52;-1:-1:-1;600:23:1;;449:180;-1:-1:-1;449:180:1:o;634:173::-;702:20;;-1:-1:-1;;;;;751:31:1;;741:42;;731:70;;797:1;794;787:12;731:70;634:173;;;:::o;812:186::-;871:6;924:2;912:9;903:7;899:23;895:32;892:52;;;940:1;937;930:12;892:52;963:29;982:9;963:29;:::i;1211:254::-;1279:6;1287;1340:2;1328:9;1319:7;1315:23;1311:32;1308:52;;;1356:1;1353;1346:12;1308:52;1392:9;1379:23;1369:33;;1421:38;1455:2;1444:9;1440:18;1421:38;:::i;:::-;1411:48;;1211:254;;;;;:::o;1470:127::-;1531:10;1526:3;1522:20;1519:1;1512:31;1562:4;1559:1;1552:15;1586:4;1583:1;1576:15;1602:168;1675:9;;;1706;;1723:15;;;1717:22;;1703:37;1693:71;;1744:18;;:::i;1775:217::-;1815:1;1841;1831:132;;1885:10;1880:3;1876:20;1873:1;1866:31;1920:4;1917:1;1910:15;1948:4;1945:1;1938:15;1831:132;-1:-1:-1;1977:9:1;;1775:217::o;1997:125::-;2062:9;;;2083:10;;;2080:36;;;2096:18;;:::i;2482:128::-;2549:9;;;2570:11;;;2567:37;;;2584:18;;:::i;2963:715::-;-1:-1:-1;;;;;3318:32:1;;;;3300:51;;3382:2;3367:18;;3360:34;;;;3437:14;;3430:22;3425:2;3410:18;;3403:50;3484:2;3469:18;;3462:34;;;;3527:3;3512:19;;3505:35;3338:3;3556:19;;3549:35;3615:3;3600:19;;3593:35;3659:3;3644:19;;3637:35;3287:3;3272:19;;2963:715::o;3893:344::-;4095:2;4077:21;;;4134:2;4114:18;;;4107:30;-1:-1:-1;;;4168:2:1;4153:18;;4146:50;4228:2;4213:18;;3893:344::o
Swarm Source
ipfs://9bcb79b3b05970c81a82d640bddc907fde07d50cd7655eab1472d14f16a09dfd
Loading...
Loading
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.