Overview
ETH Balance
0.311823529411764707 ETH
Eth Value
$879.14 (@ $2,819.36/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 46 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Payout | 14112613 | 1098 days ago | IN | 0 ETH | 0.00303653 | ||||
Claim Payout | 14089108 | 1102 days ago | IN | 0 ETH | 0.01081177 | ||||
Claim Payout | 14041439 | 1109 days ago | IN | 0 ETH | 0.00797594 | ||||
Reveal | 14041140 | 1109 days ago | IN | 0 ETH | 0.00539188 | ||||
Reveal | 14040663 | 1109 days ago | IN | 0 ETH | 0.00652203 | ||||
Reveal | 14040653 | 1109 days ago | IN | 0 ETH | 0.00544883 | ||||
Reveal | 14040594 | 1109 days ago | IN | 0 ETH | 0.00710926 | ||||
Reveal | 14040542 | 1109 days ago | IN | 0 ETH | 0.00575144 | ||||
Reveal | 14015967 | 1113 days ago | IN | 0 ETH | 0.00701051 | ||||
Reveal | 14014560 | 1113 days ago | IN | 0 ETH | 0.00699067 | ||||
Reveal | 14014353 | 1113 days ago | IN | 0 ETH | 0.0051177 | ||||
Reveal | 14009892 | 1114 days ago | IN | 0 ETH | 0.00619677 | ||||
Reveal | 14009025 | 1114 days ago | IN | 0 ETH | 0.00859685 | ||||
Reveal | 14008921 | 1114 days ago | IN | 0 ETH | 0.00905538 | ||||
Cast Hidden Vote | 14008559 | 1114 days ago | IN | 0.05 ETH | 0.00833795 | ||||
Cast Hidden Vote | 14008332 | 1114 days ago | IN | 0.05 ETH | 0.00845876 | ||||
Cast Hidden Vote | 14005016 | 1115 days ago | IN | 0.05 ETH | 0.01563342 | ||||
Cast Hidden Vote | 14003653 | 1115 days ago | IN | 0.01 ETH | 0.00719411 | ||||
Cast Hidden Vote | 14001527 | 1115 days ago | IN | 0.01 ETH | 0.01096471 | ||||
Cast Hidden Vote | 13985231 | 1118 days ago | IN | 0.02 ETH | 0.0168759 | ||||
Cast Hidden Vote | 13975988 | 1119 days ago | IN | 0.05 ETH | 0.00681588 | ||||
Cast Hidden Vote | 13974096 | 1120 days ago | IN | 0.02 ETH | 0.0116725 | ||||
Cast Hidden Vote | 13970702 | 1120 days ago | IN | 0.05 ETH | 0.01327401 | ||||
Cast Hidden Vote | 13970561 | 1120 days ago | IN | 0.03 ETH | 0.00744374 | ||||
Cast Hidden Vote | 13970558 | 1120 days ago | IN | 0.03 ETH | 0.00752459 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
AvsBGame
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-06 */ // SPDX-License-Identifier: AGPL-3.0-only pragma solidity ^0.8.11; /// @title AvsBGame /// @notice A Liar's Game: Vote by putting ETH behind A or B ... the side with the least votes gets all the ETH /// @author AvsB Team /// @dev Built using a Commit-Reveal scheme contract AvsBGame { /// ============ Types ============ // Possible votes (and Hidden before votes are revealed) enum Choice { Hidden, A, B } // A cryptographic committment to a certain vote struct VoteCommit { bytes32 commitment; uint256 amount; Choice choice; } /// ============ Immutable storage ============ uint256 public immutable voteDeadline = 1642233600; // Vote phase ends Jan 15, 2022 uint256 public immutable revealDeadline = 1642665600; // Reveal phase ends Jan 20, 2022 uint256 public immutable minVoteIncrement = 1e16; // 0.01 ETH uint256 public immutable maxVoteAmount = 1e18; // 1 ETH uint256 public immutable fee = 20; // 5% fee (1/20th), paid out at reveal address public immutable feeAddress = 0x7B91649D893B2e4Feef78b6891dE383d5a8491eE; /// ============ Mutable storage ============ // Tracks vote commitments mapping(address => VoteCommit) public votes; // Tracks revealed votes, updated every reveal // We need to track these because some votes may remain unrevealed uint256 public revealedA = 0; uint256 public revealedB = 0; // Stores total prize pool (only updated during payout phase) uint256 public prizePool = 0; /// ============ Events ============ event Vote(address indexed player, uint256 amount); event Reveal(address indexed player, Choice choice); event Payout(address indexed player, uint256 amount); constructor() {} /// ============ Functions ============ /// @notice Cast a vote without revealing the vote by posting a commitment /// @param commitment Commitment to A or B, by commit-reveal scheme function castHiddenVote(bytes32 commitment) external payable { // Ensure vote is placed before vote deadline require( block.timestamp <= voteDeadline, "Cannot vote past vote deadline." ); // Ensure vote is greater than and a multiple of min vote increment require( (msg.value >= minVoteIncrement) && (msg.value % minVoteIncrement == 0), "Vote value must be greater than and multiple of min vote amount." ); // Ensure vote is less than max vote amount require( msg.value <= maxVoteAmount, "Vote value must be less than max vote amount." ); // Ensure player has not voted before require(votes[msg.sender].amount == 0, "Cannot vote twice."); // Store the commitment for the commit-reveal scheme votes[msg.sender] = VoteCommit(commitment, msg.value, Choice.Hidden); // Emit Vote event emit Vote(msg.sender, msg.value); } /// @notice Reveal a vote that was previously commited to /// @param choice Choice that is being revealed by sender /// @param blindingFactor Salt used by the voter in their previous vote commitment function reveal(Choice choice, bytes32 blindingFactor) external { // Ensure reveal is before reveal deadline ("early" reveals during voting period are technically permitted) require( block.timestamp <= revealDeadline, "Cannot reveal past reveal deadline." ); // Ensure reveal is either for choice A or B require( (choice == Choice.A) || (choice == Choice.B), "Invalid choice, must reveal A or B." ); // Ensure sender has voted require( (votes[msg.sender].amount >= minVoteIncrement) && (votes[msg.sender].amount <= maxVoteAmount), "Cannot reveal before voting." ); // Ensure sender has not already revealed require( votes[msg.sender].choice == Choice.Hidden, "Cannot reveal more than once." ); // Check hash and reveal if correct VoteCommit storage vote = votes[msg.sender]; require( keccak256(abi.encodePacked(msg.sender, choice, blindingFactor)) == vote.commitment, "Invalid reveal, hash does not match committment." ); vote.choice = choice; // Update revealed vote counts if (choice == Choice.A) { revealedA += vote.amount; } else { revealedB += vote.amount; } // Emit reveal event emit Reveal(msg.sender, choice); } /// @notice Claim payout at game end function claimPayout() external { // Ensure reveal deadline has passed before claiming payout require( block.timestamp > revealDeadline, "Cannot claim payout before reveal deadline has passed." ); // Ensure that sender has revealed a vote VoteCommit memory senderVote = votes[msg.sender]; require( (senderVote.choice == Choice.A) || (senderVote.choice == Choice.B), "Cannot claim payout without revealed vote." ); // Get winner // If first time being called, take founder fee and set prizePool // If a tie, winner is returned as Choice.Hidden Choice winner = getWinner(); // Require that sender is winner to claim funds require( (senderVote.choice == winner) || (winner == Choice.Hidden), "Cannot claim payout since did not win game." ); // Calc share of winnings uint256 denominator; if (winner == Choice.A) { denominator = revealedA; } else if (winner == Choice.B) { denominator = revealedB; } else { // Everybody wins require(winner == Choice.Hidden, "Invalid winner."); denominator = revealedA + revealedB; } uint256 winnings = (prizePool * senderVote.amount) / denominator; // Remove vote data to prevent double claim delete votes[msg.sender]; // Transfer funds payable(msg.sender).transfer(winnings); // Emit payout event emit Payout(msg.sender, winnings); } /// @notice Returns winner, if first time pays founder's fee and sets prizePool function getWinner() private returns (Choice) { // Collect founder's fee if first time if (prizePool == 0) { collectFee(); // Set prize pool to be remaining funds in the contract prizePool = address(this).balance; } // Choose winner // In case one side did not reveal any votes, the other side wins // One side must have revealed votes as required in claimPayout if (revealedA == 0) { return Choice.B; } else if (revealedB == 0) { return Choice.A; } else if (revealedA < revealedB) { return Choice.A; } else if (revealedB < revealedA) { return Choice.B; } else { // Tie return Choice.Hidden; } } /// @notice Collects the founder's fee, is only be called once function collectFee() private { // Collect fee uint256 feeAmount = address(this).balance / fee; payable(feeAddress).transfer(feeAmount); // Emit payout event emit Payout(feeAddress, feeAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"enum AvsBGame.Choice","name":"choice","type":"uint8"}],"name":"Reveal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Vote","type":"event"},{"inputs":[{"internalType":"bytes32","name":"commitment","type":"bytes32"}],"name":"castHiddenVote","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxVoteAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minVoteIncrement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prizePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum AvsBGame.Choice","name":"choice","type":"uint8"},{"internalType":"bytes32","name":"blindingFactor","type":"bytes32"}],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revealedA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revealedB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voteDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"votes","outputs":[{"internalType":"bytes32","name":"commitment","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum AvsBGame.Choice","name":"choice","type":"uint8"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6101406040526361e27f006080908152506361e9168060a090815250662386f26fc1000060c090815250670de0b6b3a764000060e090815250601461010090815250737b91649d893b2e4feef78b6891de383d5a8491ee73ffffffffffffffffffffffffffffffffffffffff166101209073ffffffffffffffffffffffffffffffffffffffff168152506000600155600060025560006003553480156100a457600080fd5b5060805160a05160c05160e0516101005161012051611ce0610141600039600081816107430152818161103d01526110a401526000818161083a015261100f01526000818161044b015281816107df0152610da60152600081816103df0152818161079701528181610d0c0152610d390152600081816102e7015281816107bb015261085e0152600081816107730152610ca90152611ce06000f3fe6080604052600436106100c25760003560e01c8063b14b28a31161007f578063ddca3f4311610059578063ddca3f431461025c578063e88499a914610287578063e9f82d991461029e578063f6c881b7146102ba576100c2565b8063b14b28a3146101c7578063b4fe0715146101f2578063d8bff5a51461021d576100c2565b80633fc8ae06146100c757806341275358146100f057806344d1310c1461011b578063719ce73e1461014657806383ca5a5b146101715780639ce4fc091461019c575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611173565b6102e5565b005b3480156100fc57600080fd5b50610105610741565b60405161011291906111f4565b60405180910390f35b34801561012757600080fd5b50610130610765565b60405161013d9190611228565b60405180910390f35b34801561015257600080fd5b5061015b61076b565b6040516101689190611228565b60405180910390f35b34801561017d57600080fd5b50610186610771565b6040516101939190611228565b60405180910390f35b3480156101a857600080fd5b506101b1610795565b6040516101be9190611228565b60405180910390f35b3480156101d357600080fd5b506101dc6107b9565b6040516101e99190611228565b60405180910390f35b3480156101fe57600080fd5b506102076107dd565b6040516102149190611228565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f919061126f565b610801565b60405161025393929190611322565b60405180910390f35b34801561026857600080fd5b50610271610838565b60405161027e9190611228565b60405180910390f35b34801561029357600080fd5b5061029c61085c565b005b6102b860048036038101906102b39190611359565b610ca7565b005b3480156102c657600080fd5b506102cf610f8f565b6040516102dc9190611228565b60405180910390f35b7f0000000000000000000000000000000000000000000000000000000000000000421115610348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033f90611409565b60405180910390fd5b6001600281111561035c5761035b6112ab565b5b82600281111561036f5761036e6112ab565b5b148061039e5750600280811115610389576103886112ab565b5b82600281111561039c5761039b6112ab565b5b145b6103dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d49061149b565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154101580156104af57507f00000000000000000000000000000000000000000000000000000000000000006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411155b6104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e590611507565b60405180910390fd5b60006002811115610502576105016112ab565b5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff166002811115610563576105626112ab565b5b146105a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059a90611573565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001543384846040516020016105ff93929190611632565b6040516020818303038152906040528051906020012014610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c906116e1565b60405180910390fd5b828160020160006101000a81548160ff0219169083600281111561067c5761067b6112ab565b5b021790555060016002811115610695576106946112ab565b5b8360028111156106a8576106a76112ab565b5b14156106d0578060010154600160008282546106c49190611730565b925050819055506106ee565b8060010154600260008282546106e69190611730565b925050819055505b3373ffffffffffffffffffffffffffffffffffffffff167f79a7276ba83fef4fe13f88df855c8420d094de7d84d1d4a3bc10554a841bd80b846040516107349190611786565b60405180910390a2505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16905083565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000042116108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590611813565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff166002811115610942576109416112ab565b5b6002811115610954576109536112ab565b5b8152505090506001600281111561096e5761096d6112ab565b5b81604001516002811115610985576109846112ab565b5b14806109b8575060028081111561099f5761099e6112ab565b5b816040015160028111156109b6576109b56112ab565b5b145b6109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee906118a5565b60405180910390fd5b6000610a01610f95565b9050806002811115610a1657610a156112ab565b5b82604001516002811115610a2d57610a2c6112ab565b5b1480610a5d575060006002811115610a4857610a476112ab565b5b816002811115610a5b57610a5a6112ab565b5b145b610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9390611937565b60405180910390fd5b600060016002811115610ab257610ab16112ab565b5b826002811115610ac557610ac46112ab565b5b1415610ad5576001549050610b86565b600280811115610ae857610ae76112ab565b5b826002811115610afb57610afa6112ab565b5b1415610b0b576002549050610b85565b60006002811115610b1f57610b1e6112ab565b5b826002811115610b3257610b316112ab565b5b14610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b69906119a3565b60405180910390fd5b600254600154610b829190611730565b90505b5b6000818460200151600354610b9b91906119c3565b610ba59190611a4c565b90506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff021916905550503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c52573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a682604051610c999190611228565b60405180910390a250505050565b7f0000000000000000000000000000000000000000000000000000000000000000421115610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611ac9565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000003410158015610d65575060007f000000000000000000000000000000000000000000000000000000000000000034610d639190611ae9565b145b610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90611b8c565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000341115610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90611c1e565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290611c8a565b60405180910390fd5b604051806060016040528082815260200134815260200160006002811115610eb657610eb56112ab565b5b8152506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836002811115610f3657610f356112ab565b5b02179055509050503373ffffffffffffffffffffffffffffffffffffffff167ff668ead05c744b9178e571d2edb452e72baf6529c8d72160e64e59b50d865bd034604051610f849190611228565b60405180910390a250565b60015481565b6000806003541415610fb157610fa961100b565b476003819055505b60006001541415610fc55760029050611008565b60006002541415610fd95760019050611008565b6002546001541015610fee5760019050611008565b60015460025410156110035760029050611008565b600090505b90565b60007f0000000000000000000000000000000000000000000000000000000000000000476110399190611a4c565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110a1573d6000803e3d6000fd5b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6826040516111089190611228565b60405180910390a250565b600080fd5b6003811061112557600080fd5b50565b60008135905061113781611118565b92915050565b6000819050919050565b6111508161113d565b811461115b57600080fd5b50565b60008135905061116d81611147565b92915050565b6000806040838503121561118a57611189611113565b5b600061119885828601611128565b92505060206111a98582860161115e565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111de826111b3565b9050919050565b6111ee816111d3565b82525050565b600060208201905061120960008301846111e5565b92915050565b6000819050919050565b6112228161120f565b82525050565b600060208201905061123d6000830184611219565b92915050565b61124c816111d3565b811461125757600080fd5b50565b60008135905061126981611243565b92915050565b60006020828403121561128557611284611113565b5b60006112938482850161125a565b91505092915050565b6112a58161113d565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106112eb576112ea6112ab565b5b50565b60008190506112fc826112da565b919050565b600061130c826112ee565b9050919050565b61131c81611301565b82525050565b6000606082019050611337600083018661129c565b6113446020830185611219565b6113516040830184611313565b949350505050565b60006020828403121561136f5761136e611113565b5b600061137d8482850161115e565b91505092915050565b600082825260208201905092915050565b7f43616e6e6f742072657665616c20706173742072657665616c20646561646c6960008201527f6e652e0000000000000000000000000000000000000000000000000000000000602082015250565b60006113f3602383611386565b91506113fe82611397565b604082019050919050565b60006020820190508181036000830152611422816113e6565b9050919050565b7f496e76616c69642063686f6963652c206d7573742072657665616c2041206f7260008201527f20422e0000000000000000000000000000000000000000000000000000000000602082015250565b6000611485602383611386565b915061149082611429565b604082019050919050565b600060208201905081810360008301526114b481611478565b9050919050565b7f43616e6e6f742072657665616c206265666f726520766f74696e672e00000000600082015250565b60006114f1601c83611386565b91506114fc826114bb565b602082019050919050565b60006020820190508181036000830152611520816114e4565b9050919050565b7f43616e6e6f742072657665616c206d6f7265207468616e206f6e63652e000000600082015250565b600061155d601d83611386565b915061156882611527565b602082019050919050565b6000602082019050818103600083015261158c81611550565b9050919050565b60008160601b9050919050565b60006115ab82611593565b9050919050565b60006115bd826115a0565b9050919050565b6115d56115d0826111d3565b6115b2565b82525050565b60008160f81b9050919050565b60006115f3826115db565b9050919050565b61160b61160682611301565b6115e8565b82525050565b6000819050919050565b61162c6116278261113d565b611611565b82525050565b600061163e82866115c4565b60148201915061164e82856115fa565b60018201915061165e828461161b565b602082019150819050949350505050565b7f496e76616c69642072657665616c2c206861736820646f6573206e6f74206d6160008201527f74636820636f6d6d6974746d656e742e00000000000000000000000000000000602082015250565b60006116cb603083611386565b91506116d68261166f565b604082019050919050565b600060208201905081810360008301526116fa816116be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061173b8261120f565b91506117468361120f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561177b5761177a611701565b5b828201905092915050565b600060208201905061179b6000830184611313565b92915050565b7f43616e6e6f7420636c61696d207061796f7574206265666f726520726576656160008201527f6c20646561646c696e6520686173207061737365642e00000000000000000000602082015250565b60006117fd603683611386565b9150611808826117a1565b604082019050919050565b6000602082019050818103600083015261182c816117f0565b9050919050565b7f43616e6e6f7420636c61696d207061796f757420776974686f7574207265766560008201527f616c656420766f74652e00000000000000000000000000000000000000000000602082015250565b600061188f602a83611386565b915061189a82611833565b604082019050919050565b600060208201905081810360008301526118be81611882565b9050919050565b7f43616e6e6f7420636c61696d207061796f75742073696e636520646964206e6f60008201527f742077696e2067616d652e000000000000000000000000000000000000000000602082015250565b6000611921602b83611386565b915061192c826118c5565b604082019050919050565b6000602082019050818103600083015261195081611914565b9050919050565b7f496e76616c69642077696e6e65722e0000000000000000000000000000000000600082015250565b600061198d600f83611386565b915061199882611957565b602082019050919050565b600060208201905081810360008301526119bc81611980565b9050919050565b60006119ce8261120f565b91506119d98361120f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a1257611a11611701565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611a578261120f565b9150611a628361120f565b925082611a7257611a71611a1d565b5b828204905092915050565b7f43616e6e6f7420766f7465207061737420766f746520646561646c696e652e00600082015250565b6000611ab3601f83611386565b9150611abe82611a7d565b602082019050919050565b60006020820190508181036000830152611ae281611aa6565b9050919050565b6000611af48261120f565b9150611aff8361120f565b925082611b0f57611b0e611a1d565b5b828206905092915050565b7f566f74652076616c7565206d7573742062652067726561746572207468616e2060008201527f616e64206d756c7469706c65206f66206d696e20766f746520616d6f756e742e602082015250565b6000611b76604083611386565b9150611b8182611b1a565b604082019050919050565b60006020820190508181036000830152611ba581611b69565b9050919050565b7f566f74652076616c7565206d757374206265206c657373207468616e206d617860008201527f20766f746520616d6f756e742e00000000000000000000000000000000000000602082015250565b6000611c08602d83611386565b9150611c1382611bac565b604082019050919050565b60006020820190508181036000830152611c3781611bfb565b9050919050565b7f43616e6e6f7420766f74652074776963652e0000000000000000000000000000600082015250565b6000611c74601283611386565b9150611c7f82611c3e565b602082019050919050565b60006020820190508181036000830152611ca381611c67565b905091905056fea26469706673582212201603be5c91d8db1e2441a3efb8891714c452f5854f5828bf1b076b430044da8864736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106100c25760003560e01c8063b14b28a31161007f578063ddca3f4311610059578063ddca3f431461025c578063e88499a914610287578063e9f82d991461029e578063f6c881b7146102ba576100c2565b8063b14b28a3146101c7578063b4fe0715146101f2578063d8bff5a51461021d576100c2565b80633fc8ae06146100c757806341275358146100f057806344d1310c1461011b578063719ce73e1461014657806383ca5a5b146101715780639ce4fc091461019c575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611173565b6102e5565b005b3480156100fc57600080fd5b50610105610741565b60405161011291906111f4565b60405180910390f35b34801561012757600080fd5b50610130610765565b60405161013d9190611228565b60405180910390f35b34801561015257600080fd5b5061015b61076b565b6040516101689190611228565b60405180910390f35b34801561017d57600080fd5b50610186610771565b6040516101939190611228565b60405180910390f35b3480156101a857600080fd5b506101b1610795565b6040516101be9190611228565b60405180910390f35b3480156101d357600080fd5b506101dc6107b9565b6040516101e99190611228565b60405180910390f35b3480156101fe57600080fd5b506102076107dd565b6040516102149190611228565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f919061126f565b610801565b60405161025393929190611322565b60405180910390f35b34801561026857600080fd5b50610271610838565b60405161027e9190611228565b60405180910390f35b34801561029357600080fd5b5061029c61085c565b005b6102b860048036038101906102b39190611359565b610ca7565b005b3480156102c657600080fd5b506102cf610f8f565b6040516102dc9190611228565b60405180910390f35b7f0000000000000000000000000000000000000000000000000000000061e91680421115610348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033f90611409565b60405180910390fd5b6001600281111561035c5761035b6112ab565b5b82600281111561036f5761036e6112ab565b5b148061039e5750600280811115610389576103886112ab565b5b82600281111561039c5761039b6112ab565b5b145b6103dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d49061149b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000002386f26fc100006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154101580156104af57507f0000000000000000000000000000000000000000000000000de0b6b3a76400006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411155b6104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e590611507565b60405180910390fd5b60006002811115610502576105016112ab565b5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff166002811115610563576105626112ab565b5b146105a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059a90611573565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600001543384846040516020016105ff93929190611632565b6040516020818303038152906040528051906020012014610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c906116e1565b60405180910390fd5b828160020160006101000a81548160ff0219169083600281111561067c5761067b6112ab565b5b021790555060016002811115610695576106946112ab565b5b8360028111156106a8576106a76112ab565b5b14156106d0578060010154600160008282546106c49190611730565b925050819055506106ee565b8060010154600260008282546106e69190611730565b925050819055505b3373ffffffffffffffffffffffffffffffffffffffff167f79a7276ba83fef4fe13f88df855c8420d094de7d84d1d4a3bc10554a841bd80b846040516107349190611786565b60405180910390a2505050565b7f0000000000000000000000007b91649d893b2e4feef78b6891de383d5a8491ee81565b60025481565b60035481565b7f0000000000000000000000000000000000000000000000000000000061e27f0081565b7f000000000000000000000000000000000000000000000000002386f26fc1000081565b7f0000000000000000000000000000000000000000000000000000000061e9168081565b7f0000000000000000000000000000000000000000000000000de0b6b3a764000081565b60006020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16905083565b7f000000000000000000000000000000000000000000000000000000000000001481565b7f0000000000000000000000000000000000000000000000000000000061e9168042116108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590611813565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff166002811115610942576109416112ab565b5b6002811115610954576109536112ab565b5b8152505090506001600281111561096e5761096d6112ab565b5b81604001516002811115610985576109846112ab565b5b14806109b8575060028081111561099f5761099e6112ab565b5b816040015160028111156109b6576109b56112ab565b5b145b6109f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ee906118a5565b60405180910390fd5b6000610a01610f95565b9050806002811115610a1657610a156112ab565b5b82604001516002811115610a2d57610a2c6112ab565b5b1480610a5d575060006002811115610a4857610a476112ab565b5b816002811115610a5b57610a5a6112ab565b5b145b610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9390611937565b60405180910390fd5b600060016002811115610ab257610ab16112ab565b5b826002811115610ac557610ac46112ab565b5b1415610ad5576001549050610b86565b600280811115610ae857610ae76112ab565b5b826002811115610afb57610afa6112ab565b5b1415610b0b576002549050610b85565b60006002811115610b1f57610b1e6112ab565b5b826002811115610b3257610b316112ab565b5b14610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b69906119a3565b60405180910390fd5b600254600154610b829190611730565b90505b5b6000818460200151600354610b9b91906119c3565b610ba59190611a4c565b90506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff021916905550503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c52573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a682604051610c999190611228565b60405180910390a250505050565b7f0000000000000000000000000000000000000000000000000000000061e27f00421115610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190611ac9565b60405180910390fd5b7f000000000000000000000000000000000000000000000000002386f26fc100003410158015610d65575060007f000000000000000000000000000000000000000000000000002386f26fc1000034610d639190611ae9565b145b610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90611b8c565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000de0b6b3a7640000341115610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90611c1e565b60405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015414610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8290611c8a565b60405180910390fd5b604051806060016040528082815260200134815260200160006002811115610eb657610eb56112ab565b5b8152506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690836002811115610f3657610f356112ab565b5b02179055509050503373ffffffffffffffffffffffffffffffffffffffff167ff668ead05c744b9178e571d2edb452e72baf6529c8d72160e64e59b50d865bd034604051610f849190611228565b60405180910390a250565b60015481565b6000806003541415610fb157610fa961100b565b476003819055505b60006001541415610fc55760029050611008565b60006002541415610fd95760019050611008565b6002546001541015610fee5760019050611008565b60015460025410156110035760029050611008565b600090505b90565b60007f0000000000000000000000000000000000000000000000000000000000000014476110399190611a4c565b90507f0000000000000000000000007b91649d893b2e4feef78b6891de383d5a8491ee73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110a1573d6000803e3d6000fd5b507f0000000000000000000000007b91649d893b2e4feef78b6891de383d5a8491ee73ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6826040516111089190611228565b60405180910390a250565b600080fd5b6003811061112557600080fd5b50565b60008135905061113781611118565b92915050565b6000819050919050565b6111508161113d565b811461115b57600080fd5b50565b60008135905061116d81611147565b92915050565b6000806040838503121561118a57611189611113565b5b600061119885828601611128565b92505060206111a98582860161115e565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111de826111b3565b9050919050565b6111ee816111d3565b82525050565b600060208201905061120960008301846111e5565b92915050565b6000819050919050565b6112228161120f565b82525050565b600060208201905061123d6000830184611219565b92915050565b61124c816111d3565b811461125757600080fd5b50565b60008135905061126981611243565b92915050565b60006020828403121561128557611284611113565b5b60006112938482850161125a565b91505092915050565b6112a58161113d565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106112eb576112ea6112ab565b5b50565b60008190506112fc826112da565b919050565b600061130c826112ee565b9050919050565b61131c81611301565b82525050565b6000606082019050611337600083018661129c565b6113446020830185611219565b6113516040830184611313565b949350505050565b60006020828403121561136f5761136e611113565b5b600061137d8482850161115e565b91505092915050565b600082825260208201905092915050565b7f43616e6e6f742072657665616c20706173742072657665616c20646561646c6960008201527f6e652e0000000000000000000000000000000000000000000000000000000000602082015250565b60006113f3602383611386565b91506113fe82611397565b604082019050919050565b60006020820190508181036000830152611422816113e6565b9050919050565b7f496e76616c69642063686f6963652c206d7573742072657665616c2041206f7260008201527f20422e0000000000000000000000000000000000000000000000000000000000602082015250565b6000611485602383611386565b915061149082611429565b604082019050919050565b600060208201905081810360008301526114b481611478565b9050919050565b7f43616e6e6f742072657665616c206265666f726520766f74696e672e00000000600082015250565b60006114f1601c83611386565b91506114fc826114bb565b602082019050919050565b60006020820190508181036000830152611520816114e4565b9050919050565b7f43616e6e6f742072657665616c206d6f7265207468616e206f6e63652e000000600082015250565b600061155d601d83611386565b915061156882611527565b602082019050919050565b6000602082019050818103600083015261158c81611550565b9050919050565b60008160601b9050919050565b60006115ab82611593565b9050919050565b60006115bd826115a0565b9050919050565b6115d56115d0826111d3565b6115b2565b82525050565b60008160f81b9050919050565b60006115f3826115db565b9050919050565b61160b61160682611301565b6115e8565b82525050565b6000819050919050565b61162c6116278261113d565b611611565b82525050565b600061163e82866115c4565b60148201915061164e82856115fa565b60018201915061165e828461161b565b602082019150819050949350505050565b7f496e76616c69642072657665616c2c206861736820646f6573206e6f74206d6160008201527f74636820636f6d6d6974746d656e742e00000000000000000000000000000000602082015250565b60006116cb603083611386565b91506116d68261166f565b604082019050919050565b600060208201905081810360008301526116fa816116be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061173b8261120f565b91506117468361120f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561177b5761177a611701565b5b828201905092915050565b600060208201905061179b6000830184611313565b92915050565b7f43616e6e6f7420636c61696d207061796f7574206265666f726520726576656160008201527f6c20646561646c696e6520686173207061737365642e00000000000000000000602082015250565b60006117fd603683611386565b9150611808826117a1565b604082019050919050565b6000602082019050818103600083015261182c816117f0565b9050919050565b7f43616e6e6f7420636c61696d207061796f757420776974686f7574207265766560008201527f616c656420766f74652e00000000000000000000000000000000000000000000602082015250565b600061188f602a83611386565b915061189a82611833565b604082019050919050565b600060208201905081810360008301526118be81611882565b9050919050565b7f43616e6e6f7420636c61696d207061796f75742073696e636520646964206e6f60008201527f742077696e2067616d652e000000000000000000000000000000000000000000602082015250565b6000611921602b83611386565b915061192c826118c5565b604082019050919050565b6000602082019050818103600083015261195081611914565b9050919050565b7f496e76616c69642077696e6e65722e0000000000000000000000000000000000600082015250565b600061198d600f83611386565b915061199882611957565b602082019050919050565b600060208201905081810360008301526119bc81611980565b9050919050565b60006119ce8261120f565b91506119d98361120f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611a1257611a11611701565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611a578261120f565b9150611a628361120f565b925082611a7257611a71611a1d565b5b828204905092915050565b7f43616e6e6f7420766f7465207061737420766f746520646561646c696e652e00600082015250565b6000611ab3601f83611386565b9150611abe82611a7d565b602082019050919050565b60006020820190508181036000830152611ae281611aa6565b9050919050565b6000611af48261120f565b9150611aff8361120f565b925082611b0f57611b0e611a1d565b5b828206905092915050565b7f566f74652076616c7565206d7573742062652067726561746572207468616e2060008201527f616e64206d756c7469706c65206f66206d696e20766f746520616d6f756e742e602082015250565b6000611b76604083611386565b9150611b8182611b1a565b604082019050919050565b60006020820190508181036000830152611ba581611b69565b9050919050565b7f566f74652076616c7565206d757374206265206c657373207468616e206d617860008201527f20766f746520616d6f756e742e00000000000000000000000000000000000000602082015250565b6000611c08602d83611386565b9150611c1382611bac565b604082019050919050565b60006020820190508181036000830152611c3781611bfb565b9050919050565b7f43616e6e6f7420766f74652074776963652e0000000000000000000000000000600082015250565b6000611c74601283611386565b9150611c7f82611c3e565b602082019050919050565b60006020820190508181036000830152611ca381611c67565b905091905056fea26469706673582212201603be5c91d8db1e2441a3efb8891714c452f5854f5828bf1b076b430044da8864736f6c634300080b0033
Deployed Bytecode Sourcemap
273:7568:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3343:1533;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1081:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1475:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1579;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;692:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;874:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;781:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;941:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1264:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;1002:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4926:1669;;;;;;;;;;;;;:::i;:::-;;2060:1061;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1440:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3343:1533;3576:14;3557:15;:33;;3535:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;3753:8;3743:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;3742:44;;;;3777:8;3767:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;3742:44;3720:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;3949:16;3921:5;:17;3927:10;3921:17;;;;;;;;;;;;;;;:24;;;:44;;3920:110;;;;;4016:13;3988:5;:17;3994:10;3988:17;;;;;;;;;;;;;;;:24;;;:41;;3920:110;3898:188;;;;;;;;;;;;:::i;:::-;;;;;;;;;4200:13;4172:41;;;;;;;;:::i;:::-;;:5;:17;4178:10;4172:17;;;;;;;;;;;;;;;:24;;;;;;;;;;;;:41;;;;;;;;:::i;:::-;;;4150:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;4328:23;4354:5;:17;4360:10;4354:17;;;;;;;;;;;;;;;4328:43;;4488:4;:15;;;4431:10;4443:6;4451:14;4414:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4404:63;;;;;;:99;4382:197;;;;;;;;;;;;:::i;:::-;;;;;;;;;4604:6;4590:4;:11;;;:20;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4677:8;4667:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;4663:132;;;4715:4;:11;;;4702:9;;:24;;;;;;;:::i;:::-;;;;;;;;4663:132;;;4772:4;:11;;;4759:9;;:24;;;;;;;:::i;:::-;;;;;;;;4663:132;4849:10;4842:26;;;4861:6;4842:26;;;;;;:::i;:::-;;;;;;;;3407:1469;3343:1533;;:::o;1081:89::-;;;:::o;1475:28::-;;;;:::o;1579:::-;;;;:::o;692:50::-;;;:::o;874:48::-;;;:::o;781:52::-;;;:::o;941:45::-;;;:::o;1264:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1002:33::-;;;:::o;4926:1669::-;5078:14;5060:15;:32;5038:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;5238:28;5269:5;:17;5275:10;5269:17;;;;;;;;;;;;;;;5238:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;5341:8;5320:29;;;;;;;;:::i;:::-;;:10;:17;;;:29;;;;;;;;:::i;:::-;;;5319:66;;;;5376:8;5355:29;;;;;;;;:::i;:::-;;:10;:17;;;:29;;;;;;;;:::i;:::-;;;5319:66;5297:158;;;;;;;;;;;;:::i;:::-;;;;;;;;;5624:13;5640:11;:9;:11::i;:::-;5624:27;;5765:6;5744:27;;;;;;;;:::i;:::-;;:10;:17;;;:27;;;;;;;;:::i;:::-;;;5743:58;;;;5787:13;5777:23;;;;;;;;:::i;:::-;;:6;:23;;;;;;;;:::i;:::-;;;5743:58;5721:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;5920:19;5964:8;5954:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;5950:319;;;6003:9;;5989:23;;5950:319;;;6044:8;6034:18;;;;;;;;:::i;:::-;;:6;:18;;;;;;;;:::i;:::-;;;6030:239;;;6083:9;;6069:23;;6030:239;;;6174:13;6164:23;;;;;;;;:::i;:::-;;:6;:23;;;;;;;;:::i;:::-;;;6156:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6248:9;;6236;;:21;;;;:::i;:::-;6222:35;;6030:239;5950:319;6279:16;6332:11;6311:10;:17;;;6299:9;;:29;;;;:::i;:::-;6298:45;;;;:::i;:::-;6279:64;;6416:5;:17;6422:10;6416:17;;;;;;;;;;;;;;;;6409:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6481:10;6473:28;;:38;6502:8;6473:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6566:10;6559:28;;;6578:8;6559:28;;;;;;:::i;:::-;;;;;;;;4958:1637;;;;4926:1669::o;2060:1061::-;2228:12;2209:15;:31;;2187:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;2425:16;2412:9;:29;;2411:87;;;;;2496:1;2476:16;2464:9;:28;;;;:::i;:::-;:33;2411:87;2389:201;;;;;;;;;;;;:::i;:::-;;;;;;;;;2691:13;2678:9;:26;;2656:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;2873:1;2845:5;:17;2851:10;2845:17;;;;;;;;;;;;;;;:24;;;:29;2837:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2992:48;;;;;;;;3003:10;2992:48;;;;3015:9;2992:48;;;;3026:13;2992:48;;;;;;;;:::i;:::-;;;;;2972:5;:17;2978:10;2972:17;;;;;;;;;;;;;;;:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3091:10;3086:27;;;3103:9;3086:27;;;;;;:::i;:::-;;;;;;;;2060:1061;:::o;1440:28::-;;;;:::o;6688:827::-;6726:6;6810:1;6797:9;;:14;6793:176;;;6828:12;:10;:12::i;:::-;6936:21;6924:9;:33;;;;6793:176;7172:1;7159:9;;:14;7155:353;;;7197:8;7190:15;;;;7155:353;7240:1;7227:9;;:14;7223:285;;;7265:8;7258:15;;;;7223:285;7307:9;;7295;;:21;7291:217;;;7340:8;7333:15;;;;7291:217;7382:9;;7370;;:21;7366:142;;;7415:8;7408:15;;;;7366:142;7483:13;7476:20;;6688:827;;:::o;7591:247::-;7656:17;7700:3;7676:21;:27;;;;:::i;:::-;7656:47;;7722:10;7714:28;;:39;7743:9;7714:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7808:10;7801:29;;;7820:9;7801:29;;;;;;:::i;:::-;;;;;;;;7621:217;7591:247::o;88:117:1:-;197:1;194;187:12;334:107;415:1;408:5;405:12;395:40;;431:1;428;421:12;395:40;334:107;:::o;447:155::-;501:5;539:6;526:20;517:29;;555:41;590:5;555:41;:::i;:::-;447:155;;;;:::o;608:77::-;645:7;674:5;663:16;;608:77;;;:::o;691:122::-;764:24;782:5;764:24;:::i;:::-;757:5;754:35;744:63;;803:1;800;793:12;744:63;691:122;:::o;819:139::-;865:5;903:6;890:20;881:29;;919:33;946:5;919:33;:::i;:::-;819:139;;;;:::o;964:490::-;1040:6;1048;1097:2;1085:9;1076:7;1072:23;1068:32;1065:119;;;1103:79;;:::i;:::-;1065:119;1223:1;1248:61;1301:7;1292:6;1281:9;1277:22;1248:61;:::i;:::-;1238:71;;1194:125;1358:2;1384:53;1429:7;1420:6;1409:9;1405:22;1384:53;:::i;:::-;1374:63;;1329:118;964:490;;;;;:::o;1460:126::-;1497:7;1537:42;1530:5;1526:54;1515:65;;1460:126;;;:::o;1592:96::-;1629:7;1658:24;1676:5;1658:24;:::i;:::-;1647:35;;1592:96;;;:::o;1694:118::-;1781:24;1799:5;1781:24;:::i;:::-;1776:3;1769:37;1694:118;;:::o;1818:222::-;1911:4;1949:2;1938:9;1934:18;1926:26;;1962:71;2030:1;2019:9;2015:17;2006:6;1962:71;:::i;:::-;1818:222;;;;:::o;2046:77::-;2083:7;2112:5;2101:16;;2046:77;;;:::o;2129:118::-;2216:24;2234:5;2216:24;:::i;:::-;2211:3;2204:37;2129:118;;:::o;2253:222::-;2346:4;2384:2;2373:9;2369:18;2361:26;;2397:71;2465:1;2454:9;2450:17;2441:6;2397:71;:::i;:::-;2253:222;;;;:::o;2481:122::-;2554:24;2572:5;2554:24;:::i;:::-;2547:5;2544:35;2534:63;;2593:1;2590;2583:12;2534:63;2481:122;:::o;2609:139::-;2655:5;2693:6;2680:20;2671:29;;2709:33;2736:5;2709:33;:::i;:::-;2609:139;;;;:::o;2754:329::-;2813:6;2862:2;2850:9;2841:7;2837:23;2833:32;2830:119;;;2868:79;;:::i;:::-;2830:119;2988:1;3013:53;3058:7;3049:6;3038:9;3034:22;3013:53;:::i;:::-;3003:63;;2959:117;2754:329;;;;:::o;3089:118::-;3176:24;3194:5;3176:24;:::i;:::-;3171:3;3164:37;3089:118;;:::o;3213:180::-;3261:77;3258:1;3251:88;3358:4;3355:1;3348:15;3382:4;3379:1;3372:15;3399:113;3480:1;3473:5;3470:12;3460:46;;3486:18;;:::i;:::-;3460:46;3399:113;:::o;3518:127::-;3563:7;3592:5;3581:16;;3598:41;3633:5;3598:41;:::i;:::-;3518:127;;;:::o;3651:::-;3707:9;3740:32;3766:5;3740:32;:::i;:::-;3727:45;;3651:127;;;:::o;3784:143::-;3877:43;3914:5;3877:43;:::i;:::-;3872:3;3865:56;3784:143;;:::o;3933:454::-;4088:4;4126:2;4115:9;4111:18;4103:26;;4139:71;4207:1;4196:9;4192:17;4183:6;4139:71;:::i;:::-;4220:72;4288:2;4277:9;4273:18;4264:6;4220:72;:::i;:::-;4302:78;4376:2;4365:9;4361:18;4352:6;4302:78;:::i;:::-;3933:454;;;;;;:::o;4393:329::-;4452:6;4501:2;4489:9;4480:7;4476:23;4472:32;4469:119;;;4507:79;;:::i;:::-;4469:119;4627:1;4652:53;4697:7;4688:6;4677:9;4673:22;4652:53;:::i;:::-;4642:63;;4598:117;4393:329;;;;:::o;4728:169::-;4812:11;4846:6;4841:3;4834:19;4886:4;4881:3;4877:14;4862:29;;4728:169;;;;:::o;4903:222::-;5043:34;5039:1;5031:6;5027:14;5020:58;5112:5;5107:2;5099:6;5095:15;5088:30;4903:222;:::o;5131:366::-;5273:3;5294:67;5358:2;5353:3;5294:67;:::i;:::-;5287:74;;5370:93;5459:3;5370:93;:::i;:::-;5488:2;5483:3;5479:12;5472:19;;5131:366;;;:::o;5503:419::-;5669:4;5707:2;5696:9;5692:18;5684:26;;5756:9;5750:4;5746:20;5742:1;5731:9;5727:17;5720:47;5784:131;5910:4;5784:131;:::i;:::-;5776:139;;5503:419;;;:::o;5928:222::-;6068:34;6064:1;6056:6;6052:14;6045:58;6137:5;6132:2;6124:6;6120:15;6113:30;5928:222;:::o;6156:366::-;6298:3;6319:67;6383:2;6378:3;6319:67;:::i;:::-;6312:74;;6395:93;6484:3;6395:93;:::i;:::-;6513:2;6508:3;6504:12;6497:19;;6156:366;;;:::o;6528:419::-;6694:4;6732:2;6721:9;6717:18;6709:26;;6781:9;6775:4;6771:20;6767:1;6756:9;6752:17;6745:47;6809:131;6935:4;6809:131;:::i;:::-;6801:139;;6528:419;;;:::o;6953:178::-;7093:30;7089:1;7081:6;7077:14;7070:54;6953:178;:::o;7137:366::-;7279:3;7300:67;7364:2;7359:3;7300:67;:::i;:::-;7293:74;;7376:93;7465:3;7376:93;:::i;:::-;7494:2;7489:3;7485:12;7478:19;;7137:366;;;:::o;7509:419::-;7675:4;7713:2;7702:9;7698:18;7690:26;;7762:9;7756:4;7752:20;7748:1;7737:9;7733:17;7726:47;7790:131;7916:4;7790:131;:::i;:::-;7782:139;;7509:419;;;:::o;7934:179::-;8074:31;8070:1;8062:6;8058:14;8051:55;7934:179;:::o;8119:366::-;8261:3;8282:67;8346:2;8341:3;8282:67;:::i;:::-;8275:74;;8358:93;8447:3;8358:93;:::i;:::-;8476:2;8471:3;8467:12;8460:19;;8119:366;;;:::o;8491:419::-;8657:4;8695:2;8684:9;8680:18;8672:26;;8744:9;8738:4;8734:20;8730:1;8719:9;8715:17;8708:47;8772:131;8898:4;8772:131;:::i;:::-;8764:139;;8491:419;;;:::o;8916:94::-;8949:8;8997:5;8993:2;8989:14;8968:35;;8916:94;;;:::o;9016:::-;9055:7;9084:20;9098:5;9084:20;:::i;:::-;9073:31;;9016:94;;;:::o;9116:100::-;9155:7;9184:26;9204:5;9184:26;:::i;:::-;9173:37;;9116:100;;;:::o;9222:157::-;9327:45;9347:24;9365:5;9347:24;:::i;:::-;9327:45;:::i;:::-;9322:3;9315:58;9222:157;;:::o;9385:96::-;9419:8;9468:5;9463:3;9459:15;9438:36;;9385:96;;;:::o;9487:93::-;9524:7;9553:21;9568:5;9553:21;:::i;:::-;9542:32;;9487:93;;;:::o;9586:180::-;9697:62;9715:43;9752:5;9715:43;:::i;:::-;9697:62;:::i;:::-;9692:3;9685:75;9586:180;;:::o;9772:79::-;9811:7;9840:5;9829:16;;9772:79;;;:::o;9857:157::-;9962:45;9982:24;10000:5;9982:24;:::i;:::-;9962:45;:::i;:::-;9957:3;9950:58;9857:157;;:::o;10020:549::-;10194:3;10209:75;10280:3;10271:6;10209:75;:::i;:::-;10309:2;10304:3;10300:12;10293:19;;10322:81;10399:3;10390:6;10322:81;:::i;:::-;10428:1;10423:3;10419:11;10412:18;;10440:75;10511:3;10502:6;10440:75;:::i;:::-;10540:2;10535:3;10531:12;10524:19;;10560:3;10553:10;;10020:549;;;;;;:::o;10575:235::-;10715:34;10711:1;10703:6;10699:14;10692:58;10784:18;10779:2;10771:6;10767:15;10760:43;10575:235;:::o;10816:366::-;10958:3;10979:67;11043:2;11038:3;10979:67;:::i;:::-;10972:74;;11055:93;11144:3;11055:93;:::i;:::-;11173:2;11168:3;11164:12;11157:19;;10816:366;;;:::o;11188:419::-;11354:4;11392:2;11381:9;11377:18;11369:26;;11441:9;11435:4;11431:20;11427:1;11416:9;11412:17;11405:47;11469:131;11595:4;11469:131;:::i;:::-;11461:139;;11188:419;;;:::o;11613:180::-;11661:77;11658:1;11651:88;11758:4;11755:1;11748:15;11782:4;11779:1;11772:15;11799:305;11839:3;11858:20;11876:1;11858:20;:::i;:::-;11853:25;;11892:20;11910:1;11892:20;:::i;:::-;11887:25;;12046:1;11978:66;11974:74;11971:1;11968:81;11965:107;;;12052:18;;:::i;:::-;11965:107;12096:1;12093;12089:9;12082:16;;11799:305;;;;:::o;12110:234::-;12209:4;12247:2;12236:9;12232:18;12224:26;;12260:77;12334:1;12323:9;12319:17;12310:6;12260:77;:::i;:::-;12110:234;;;;:::o;12350:241::-;12490:34;12486:1;12478:6;12474:14;12467:58;12559:24;12554:2;12546:6;12542:15;12535:49;12350:241;:::o;12597:366::-;12739:3;12760:67;12824:2;12819:3;12760:67;:::i;:::-;12753:74;;12836:93;12925:3;12836:93;:::i;:::-;12954:2;12949:3;12945:12;12938:19;;12597:366;;;:::o;12969:419::-;13135:4;13173:2;13162:9;13158:18;13150:26;;13222:9;13216:4;13212:20;13208:1;13197:9;13193:17;13186:47;13250:131;13376:4;13250:131;:::i;:::-;13242:139;;12969:419;;;:::o;13394:229::-;13534:34;13530:1;13522:6;13518:14;13511:58;13603:12;13598:2;13590:6;13586:15;13579:37;13394:229;:::o;13629:366::-;13771:3;13792:67;13856:2;13851:3;13792:67;:::i;:::-;13785:74;;13868:93;13957:3;13868:93;:::i;:::-;13986:2;13981:3;13977:12;13970:19;;13629:366;;;:::o;14001:419::-;14167:4;14205:2;14194:9;14190:18;14182:26;;14254:9;14248:4;14244:20;14240:1;14229:9;14225:17;14218:47;14282:131;14408:4;14282:131;:::i;:::-;14274:139;;14001:419;;;:::o;14426:230::-;14566:34;14562:1;14554:6;14550:14;14543:58;14635:13;14630:2;14622:6;14618:15;14611:38;14426:230;:::o;14662:366::-;14804:3;14825:67;14889:2;14884:3;14825:67;:::i;:::-;14818:74;;14901:93;14990:3;14901:93;:::i;:::-;15019:2;15014:3;15010:12;15003:19;;14662:366;;;:::o;15034:419::-;15200:4;15238:2;15227:9;15223:18;15215:26;;15287:9;15281:4;15277:20;15273:1;15262:9;15258:17;15251:47;15315:131;15441:4;15315:131;:::i;:::-;15307:139;;15034:419;;;:::o;15459:165::-;15599:17;15595:1;15587:6;15583:14;15576:41;15459:165;:::o;15630:366::-;15772:3;15793:67;15857:2;15852:3;15793:67;:::i;:::-;15786:74;;15869:93;15958:3;15869:93;:::i;:::-;15987:2;15982:3;15978:12;15971:19;;15630:366;;;:::o;16002:419::-;16168:4;16206:2;16195:9;16191:18;16183:26;;16255:9;16249:4;16245:20;16241:1;16230:9;16226:17;16219:47;16283:131;16409:4;16283:131;:::i;:::-;16275:139;;16002:419;;;:::o;16427:348::-;16467:7;16490:20;16508:1;16490:20;:::i;:::-;16485:25;;16524:20;16542:1;16524:20;:::i;:::-;16519:25;;16712:1;16644:66;16640:74;16637:1;16634:81;16629:1;16622:9;16615:17;16611:105;16608:131;;;16719:18;;:::i;:::-;16608:131;16767:1;16764;16760:9;16749:20;;16427:348;;;;:::o;16781:180::-;16829:77;16826:1;16819:88;16926:4;16923:1;16916:15;16950:4;16947:1;16940:15;16967:185;17007:1;17024:20;17042:1;17024:20;:::i;:::-;17019:25;;17058:20;17076:1;17058:20;:::i;:::-;17053:25;;17097:1;17087:35;;17102:18;;:::i;:::-;17087:35;17144:1;17141;17137:9;17132:14;;16967:185;;;;:::o;17158:181::-;17298:33;17294:1;17286:6;17282:14;17275:57;17158:181;:::o;17345:366::-;17487:3;17508:67;17572:2;17567:3;17508:67;:::i;:::-;17501:74;;17584:93;17673:3;17584:93;:::i;:::-;17702:2;17697:3;17693:12;17686:19;;17345:366;;;:::o;17717:419::-;17883:4;17921:2;17910:9;17906:18;17898:26;;17970:9;17964:4;17960:20;17956:1;17945:9;17941:17;17934:47;17998:131;18124:4;17998:131;:::i;:::-;17990:139;;17717:419;;;:::o;18142:176::-;18174:1;18191:20;18209:1;18191:20;:::i;:::-;18186:25;;18225:20;18243:1;18225:20;:::i;:::-;18220:25;;18264:1;18254:35;;18269:18;;:::i;:::-;18254:35;18310:1;18307;18303:9;18298:14;;18142:176;;;;:::o;18324:251::-;18464:34;18460:1;18452:6;18448:14;18441:58;18533:34;18528:2;18520:6;18516:15;18509:59;18324:251;:::o;18581:366::-;18723:3;18744:67;18808:2;18803:3;18744:67;:::i;:::-;18737:74;;18820:93;18909:3;18820:93;:::i;:::-;18938:2;18933:3;18929:12;18922:19;;18581:366;;;:::o;18953:419::-;19119:4;19157:2;19146:9;19142:18;19134:26;;19206:9;19200:4;19196:20;19192:1;19181:9;19177:17;19170:47;19234:131;19360:4;19234:131;:::i;:::-;19226:139;;18953:419;;;:::o;19378:232::-;19518:34;19514:1;19506:6;19502:14;19495:58;19587:15;19582:2;19574:6;19570:15;19563:40;19378:232;:::o;19616:366::-;19758:3;19779:67;19843:2;19838:3;19779:67;:::i;:::-;19772:74;;19855:93;19944:3;19855:93;:::i;:::-;19973:2;19968:3;19964:12;19957:19;;19616:366;;;:::o;19988:419::-;20154:4;20192:2;20181:9;20177:18;20169:26;;20241:9;20235:4;20231:20;20227:1;20216:9;20212:17;20205:47;20269:131;20395:4;20269:131;:::i;:::-;20261:139;;19988:419;;;:::o;20413:168::-;20553:20;20549:1;20541:6;20537:14;20530:44;20413:168;:::o;20587:366::-;20729:3;20750:67;20814:2;20809:3;20750:67;:::i;:::-;20743:74;;20826:93;20915:3;20826:93;:::i;:::-;20944:2;20939:3;20935:12;20928:19;;20587:366;;;:::o;20959:419::-;21125:4;21163:2;21152:9;21148:18;21140:26;;21212:9;21206:4;21202:20;21198:1;21187:9;21183:17;21176:47;21240:131;21366:4;21240:131;:::i;:::-;21232:139;;20959:419;;;:::o
Swarm Source
ipfs://1603be5c91d8db1e2441a3efb8891714c452f5854f5828bf1b076b430044da88
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,819.36 | 0.3118 | $879.14 |
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.