Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Sponsored
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
11848436 | 950 days 3 hrs ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
BurningSurplusAuctionHouse
Compiler Version
v0.6.7+commit.b8d736ae
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-14 */ /** *Submitted for verification at Etherscan.io on 2021-02-02 */ /// SurplusAuctionHouse.sol // Copyright (C) 2018 Rain <[email protected]> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. pragma solidity 0.6.7; abstract contract SAFEEngineLike { function transferInternalCoins(address,address,uint256) virtual external; function coinBalance(address) virtual external view returns (uint256); function approveSAFEModification(address) virtual external; function denySAFEModification(address) virtual external; } abstract contract TokenLike { function approve(address, uint256) virtual public returns (bool); function balanceOf(address) virtual public view returns (uint256); function move(address,address,uint256) virtual external; function burn(address,uint256) virtual external; } /* This thing lets you auction some coins in return for protocol tokens that are then burnt */ contract BurningSurplusAuctionHouse { // --- Auth --- mapping (address => uint256) public authorizedAccounts; /** * @notice Add auth to an account * @param account Account to add auth to */ function addAuthorization(address account) external isAuthorized { authorizedAccounts[account] = 1; emit AddAuthorization(account); } /** * @notice Remove auth from an account * @param account Account to remove auth from */ function removeAuthorization(address account) external isAuthorized { authorizedAccounts[account] = 0; emit RemoveAuthorization(account); } /** * @notice Checks whether msg.sender can call an authed function **/ modifier isAuthorized { require(authorizedAccounts[msg.sender] == 1, "BurningSurplusAuctionHouse/account-not-authorized"); _; } // --- Data --- struct Bid { // Bid size (how many protocol tokens are offered per system coins sold) uint256 bidAmount; // [wad] // How many system coins are sold in an auction uint256 amountToSell; // [rad] // Who the high bidder is address highBidder; // When the latest bid expires and the auction can be settled uint48 bidExpiry; // [unix epoch time] // Hard deadline for the auction after which no more bids can be placed uint48 auctionDeadline; // [unix epoch time] } // Bid data for each separate auction mapping (uint256 => Bid) public bids; // SAFE database SAFEEngineLike public safeEngine; // Protocol token address TokenLike public protocolToken; uint256 constant ONE = 1.00E18; // [wad] // Minimum bid increase compared to the last bid in order to take the new one in consideration uint256 public bidIncrease = 1.05E18; // [wad] // How long the auction lasts after a new bid is submitted uint48 public bidDuration = 3 hours; // [seconds] // Total length of the auction uint48 public totalAuctionLength = 2 days; // [seconds] // Number of auctions started up until now uint256 public auctionsStarted = 0; // Whether the contract is settled or not uint256 public contractEnabled; bytes32 public constant AUCTION_HOUSE_TYPE = bytes32("SURPLUS"); bytes32 public constant SURPLUS_AUCTION_TYPE = bytes32("BURNING"); // --- Events --- event AddAuthorization(address account); event RemoveAuthorization(address account); event ModifyParameters(bytes32 parameter, uint256 data); event RestartAuction(uint256 id, uint256 auctionDeadline); event IncreaseBidSize(uint256 id, address highBidder, uint256 amountToBuy, uint256 bid, uint256 bidExpiry); event StartAuction( uint256 indexed id, uint256 auctionsStarted, uint256 amountToSell, uint256 initialBid, uint256 auctionDeadline ); event SettleAuction(uint256 indexed id); event DisableContract(); event TerminateAuctionPrematurely(uint256 indexed id, address sender, address highBidder, uint256 bidAmount); // --- Init --- constructor(address safeEngine_, address protocolToken_) public { authorizedAccounts[msg.sender] = 1; safeEngine = SAFEEngineLike(safeEngine_); protocolToken = TokenLike(protocolToken_); contractEnabled = 1; emit AddAuthorization(msg.sender); } // --- Math --- function addUint48(uint48 x, uint48 y) internal pure returns (uint48 z) { require((z = x + y) >= x, "BurningSurplusAuctionHouse/add-uint48-overflow"); } function multiply(uint256 x, uint256 y) internal pure returns (uint256 z) { require(y == 0 || (z = x * y) / y == x, "BurningSurplusAuctionHouse/mul-overflow"); } // --- Admin --- /** * @notice Modify auction parameters * @param parameter The name of the parameter modified * @param data New value for the parameter */ function modifyParameters(bytes32 parameter, uint256 data) external isAuthorized { if (parameter == "bidIncrease") bidIncrease = data; else if (parameter == "bidDuration") bidDuration = uint48(data); else if (parameter == "totalAuctionLength") totalAuctionLength = uint48(data); else revert("BurningSurplusAuctionHouse/modify-unrecognized-param"); emit ModifyParameters(parameter, data); } // --- Auction --- /** * @notice Start a new surplus auction * @param amountToSell Total amount of system coins to sell (rad) * @param initialBid Initial protocol token bid (wad) */ function startAuction(uint256 amountToSell, uint256 initialBid) external isAuthorized returns (uint256 id) { require(contractEnabled == 1, "BurningSurplusAuctionHouse/contract-not-enabled"); require(auctionsStarted < uint256(-1), "BurningSurplusAuctionHouse/overflow"); id = ++auctionsStarted; bids[id].bidAmount = initialBid; bids[id].amountToSell = amountToSell; bids[id].highBidder = msg.sender; bids[id].auctionDeadline = addUint48(uint48(now), totalAuctionLength); safeEngine.transferInternalCoins(msg.sender, address(this), amountToSell); emit StartAuction(id, auctionsStarted, amountToSell, initialBid, bids[id].auctionDeadline); } /** * @notice Restart an auction if no bids were submitted for it * @param id ID of the auction to restart */ function restartAuction(uint256 id) external { require(bids[id].auctionDeadline < now, "BurningSurplusAuctionHouse/not-finished"); require(bids[id].bidExpiry == 0, "BurningSurplusAuctionHouse/bid-already-placed"); bids[id].auctionDeadline = addUint48(uint48(now), totalAuctionLength); emit RestartAuction(id, bids[id].auctionDeadline); } /** * @notice Submit a higher protocol token bid for the same amount of system coins * @param id ID of the auction you want to submit the bid for * @param amountToBuy Amount of system coins to buy (rad) * @param bid New bid submitted (wad) */ function increaseBidSize(uint256 id, uint256 amountToBuy, uint256 bid) external { require(contractEnabled == 1, "BurningSurplusAuctionHouse/contract-not-enabled"); require(bids[id].highBidder != address(0), "BurningSurplusAuctionHouse/high-bidder-not-set"); require(bids[id].bidExpiry > now || bids[id].bidExpiry == 0, "BurningSurplusAuctionHouse/bid-already-expired"); require(bids[id].auctionDeadline > now, "BurningSurplusAuctionHouse/auction-already-expired"); require(amountToBuy == bids[id].amountToSell, "BurningSurplusAuctionHouse/amounts-not-matching"); require(bid > bids[id].bidAmount, "BurningSurplusAuctionHouse/bid-not-higher"); require(multiply(bid, ONE) >= multiply(bidIncrease, bids[id].bidAmount), "BurningSurplusAuctionHouse/insufficient-increase"); if (msg.sender != bids[id].highBidder) { protocolToken.move(msg.sender, bids[id].highBidder, bids[id].bidAmount); bids[id].highBidder = msg.sender; } protocolToken.move(msg.sender, address(this), bid - bids[id].bidAmount); bids[id].bidAmount = bid; bids[id].bidExpiry = addUint48(uint48(now), bidDuration); emit IncreaseBidSize(id, msg.sender, amountToBuy, bid, bids[id].bidExpiry); } /** * @notice Settle/finish an auction * @param id ID of the auction to settle */ function settleAuction(uint256 id) external { require(contractEnabled == 1, "BurningSurplusAuctionHouse/contract-not-enabled"); require(bids[id].bidExpiry != 0 && (bids[id].bidExpiry < now || bids[id].auctionDeadline < now), "BurningSurplusAuctionHouse/not-finished"); safeEngine.transferInternalCoins(address(this), bids[id].highBidder, bids[id].amountToSell); protocolToken.burn(address(this), bids[id].bidAmount); delete bids[id]; emit SettleAuction(id); } /** * @notice Disable the auction house (usually called by AccountingEngine) **/ function disableContract() external isAuthorized { contractEnabled = 0; safeEngine.transferInternalCoins(address(this), msg.sender, safeEngine.coinBalance(address(this))); emit DisableContract(); } /** * @notice Terminate an auction prematurely. * @param id ID of the auction to settle/terminate */ function terminateAuctionPrematurely(uint256 id) external { require(contractEnabled == 0, "BurningSurplusAuctionHouse/contract-still-enabled"); require(bids[id].highBidder != address(0), "BurningSurplusAuctionHouse/high-bidder-not-set"); protocolToken.move(address(this), bids[id].highBidder, bids[id].bidAmount); emit TerminateAuctionPrematurely(id, msg.sender, bids[id].highBidder, bids[id].bidAmount); delete bids[id]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"safeEngine_","type":"address"},{"internalType":"address","name":"protocolToken_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"AddAuthorization","type":"event"},{"anonymous":false,"inputs":[],"name":"DisableContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"highBidder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountToBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bidExpiry","type":"uint256"}],"name":"IncreaseBidSize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parameter","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"ModifyParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"RemoveAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"auctionDeadline","type":"uint256"}],"name":"RestartAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"SettleAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"auctionsStarted","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToSell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"initialBid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"auctionDeadline","type":"uint256"}],"name":"StartAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"highBidder","type":"address"},{"indexed":false,"internalType":"uint256","name":"bidAmount","type":"uint256"}],"name":"TerminateAuctionPrematurely","type":"event"},{"inputs":[],"name":"AUCTION_HOUSE_TYPE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SURPLUS_AUCTION_TYPE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auctionsStarted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bidDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bidIncrease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bids","outputs":[{"internalType":"uint256","name":"bidAmount","type":"uint256"},{"internalType":"uint256","name":"amountToSell","type":"uint256"},{"internalType":"address","name":"highBidder","type":"address"},{"internalType":"uint48","name":"bidExpiry","type":"uint48"},{"internalType":"uint48","name":"auctionDeadline","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractEnabled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amountToBuy","type":"uint256"},{"internalType":"uint256","name":"bid","type":"uint256"}],"name":"increaseBidSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"parameter","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"protocolToken","outputs":[{"internalType":"contract TokenLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"restartAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeEngine","outputs":[{"internalType":"contract SAFEEngineLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"settleAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToSell","type":"uint256"},{"internalType":"uint256","name":"initialBid","type":"uint256"}],"name":"startAuction","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"terminateAuctionPrematurely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAuctionLength","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052670e92596fd629000060045560058054612a3065ffffffffffff199091161765ffffffffffff60301b19166802a300000000000000179055600060065534801561004d57600080fd5b506040516118a73803806118a78339818101604052604081101561007057600080fd5b508051602091820151336000818152808552604090819020600190819055600280546001600160a01b038088166001600160a01b0319928316179092556003805492871692909116919091179055600755805191825251929391927f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f7000102929181900390910190a150506117a0806101076000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80635a93f031116100ad578063933f760811610071578063933f7608146102d457806394f3f81d146102f1578063d25ccf5314610317578063f6b45eb714610334578063fe4f58901461033c5761012c565b80635a93f03114610270578063619ed1f81461029957806367aea313146102a157806373c0a367146102a9578063894ba833146102cc5761012c565b806335b28153116100f457806335b28153146101bc57806341b3a0d9146101e25780634423c5f1146101ea5780634fee13fc14610245578063551cb3b1146102685761012c565b80630ac239e5146101315780631266fb941461014b5780631a465fe11461015357806324ba5884146101775780632e9936111461019d575b600080fd5b61013961035f565b60408051918252519081900360200190f35b610139610365565b61015b610373565b604080516001600160a01b039092168252519081900360200190f35b6101396004803603602081101561018d57600080fd5b50356001600160a01b0316610382565b6101ba600480360360208110156101b357600080fd5b5035610394565b005b6101ba600480360360208110156101d257600080fd5b50356001600160a01b03166105d4565b610139610674565b6102076004803603602081101561020057600080fd5b503561067a565b6040805195865260208601949094526001600160a01b039092168484015265ffffffffffff9081166060850152166080830152519081900360a00190f35b6101396004803603604081101561025b57600080fd5b50803590602001356106be565b6101396108fb565b6101ba6004803603606081101561028657600080fd5b5080359060208101359060400135610901565b610139610d82565b61015b610d90565b6102b1610d9f565b6040805165ffffffffffff9092168252519081900360200190f35b6101ba610db4565b6101ba600480360360208110156102ea57600080fd5b5035610f22565b6101ba6004803603602081101561030757600080fd5b50356001600160a01b03166110bf565b6101ba6004803603602081101561032d57600080fd5b503561115e565b6102b16112ad565b6101ba6004803603604081101561035257600080fd5b50803590602001356112bb565b60045481565b66535552504c555360c81b81565b6003546001600160a01b031681565b60006020819052908152604090205481565b6007546001146103d55760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b600081815260016020526040902060020154600160a01b900465ffffffffffff161580159061044e575060008181526001602052604090206002015442600160a01b90910465ffffffffffff16108061044e575060008181526001602052604090206002015442600160d01b90910465ffffffffffff16105b6104895760405162461bcd60e51b81526004018080602001828103825260278152602001806116906027913960400191505060405180910390fd5b6002805460008381526001602081905260408083209485015494909101548151633beaf2b760e21b81523060048201526001600160a01b03958616602482015260448101919091529051939092169263efabcadc92606480820193929182900301818387803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b5050600354600084815260016020526040808220548151632770a7eb60e21b8152306004820152602481019190915290516001600160a01b039093169450639dc29fac93506044808201939182900301818387803b15801561057057600080fd5b505af1158015610584573d6000803e3d6000fd5b50505060008281526001602081905260408083208381559182018390556002909101829055518392507f03af424b0e12d91ea31fe7f2c199fc02c9ede38f9aa1bdc019a8087b41445f7a9190a250565b336000908152602081905260409020546001146106225760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b60075481565b60016020819052600091825260409091208054918101546002909101546001600160a01b0381169065ffffffffffff600160a01b8204811691600160d01b90041685565b3360009081526020819052604081205460011461070c5760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b60075460011461074d5760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b6000196006541061078f5760405162461bcd60e51b81526004018080602001828103825260238152602001806115b36023913960400191505060405180910390fd5b5060068054600190810191829055600082815260208290526040902083815590810184905560020180546001600160a01b031916331790556005546107e590429065ffffffffffff600160301b9091041661141a565b6000828152600160205260408082206002908101805465ffffffffffff95909516600160d01b026001600160d01b039095169490941790935591548251633beaf2b760e21b81523360048201523060248201526044810187905292516001600160a01b039091169263efabcadc92606480830193919282900301818387803b15801561087057600080fd5b505af1158015610884573d6000803e3d6000fd5b505060065460008481526001602090815260409182902060020154825193845290830188905282820187905265ffffffffffff600160d01b909104166060830152518493507fa4863af70e77aecfe2769e0569806782ba7c6f86fc9a307290a3816fb8a563e592509081900360800190a292915050565b60065481565b6007546001146109425760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b6000838152600160205260409020600201546001600160a01b03166109985760405162461bcd60e51b815260040180806020018281038252602e8152602001806116e4602e913960400191505060405180910390fd5b60008381526001602052604090206002015442600160a01b90910465ffffffffffff1611806109e55750600083815260016020526040902060020154600160a01b900465ffffffffffff16155b610a205760405162461bcd60e51b815260040180806020018281038252602e8152602001806114f5602e913960400191505060405180910390fd5b60008381526001602052604090206002015442600160d01b90910465ffffffffffff1611610a7f5760405162461bcd60e51b81526004018080602001828103825260328152602001806117396032913960400191505060405180910390fd5b600083815260016020819052604090912001548214610acf5760405162461bcd60e51b815260040180806020018281038252602f81526020018061162d602f913960400191505060405180910390fd5b6000838152600160205260409020548111610b1b5760405162461bcd60e51b81526004018080602001828103825260298152602001806115d66029913960400191505060405180910390fd5b600454600084815260016020526040902054610b37919061146d565b610b4982670de0b6b3a764000061146d565b1015610b865760405162461bcd60e51b81526004018080602001828103825260308152602001806115836030913960400191505060405180910390fd5b6000838152600160205260409020600201546001600160a01b03163314610c4d5760035460008481526001602052604080822060028101549054825163bb35783b60e01b81523360048201526001600160a01b0392831660248201526044810191909152915193169263bb35783b9260648084019391929182900301818387803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050600084815260016020526040902060020180546001600160a01b03191633179055505b60035460008481526001602052604080822054815163bb35783b60e01b8152336004820152306024820152908503604482015290516001600160a01b039093169263bb35783b9260648084019391929182900301818387803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050600084815260016020526040902082905550600554610cf190429065ffffffffffff1661141a565b600084815260016020908152604091829020600201805465ffffffffffff60a01b1916600160a01b65ffffffffffff95861681029190911791829055835188815233938101939093528284018790526060830186905290049092166080830152517fd87c815d5a67c2e130ad04b714d87a6fb69d5a6df0dbb0f1639cd9fe292201f99160a0908290030190a1505050565b664255524e494e4760c81b81565b6002546001600160a01b031681565b600554600160301b900465ffffffffffff1681565b33600090815260208190526040902054600114610e025760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b600060075560025460408051633eaf7a0360e21b8152306004820181905291516001600160a01b039093169263efabcadc92913391859163fabde80c916024808301926020929190829003018186803b158015610e5e57600080fd5b505afa158015610e72573d6000803e3d6000fd5b505050506040513d6020811015610e8857600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b03948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b158015610edf57600080fd5b505af1158015610ef3573d6000803e3d6000fd5b50506040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e925060009150a1565b60075415610f615760405162461bcd60e51b81526004018080602001828103825260318152602001806115236031913960400191505060405180910390fd5b6000818152600160205260409020600201546001600160a01b0316610fb75760405162461bcd60e51b815260040180806020018281038252602e8152602001806116e4602e913960400191505060405180910390fd5b60035460008281526001602052604080822060028101549054825163bb35783b60e01b81523060048201526001600160a01b0392831660248201526044810191909152915193169263bb35783b9260648084019391929182900301818387803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b5050506000828152600160209081526040918290206002810154905483513381526001600160a01b03909216928201929092528083019190915290518392507f723f56b5ac5fb3399765203804e790344f427477918842dbef525d795af4bcca9181900360600190a26000908152600160208190526040822082815590810182905560020155565b3360009081526020819052604090205460011461110d5760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b60008181526001602052604090206002015442600160d01b90910465ffffffffffff16106111bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806116906027913960400191505060405180910390fd5b600081815260016020526040902060020154600160a01b900465ffffffffffff161561121a5760405162461bcd60e51b815260040180806020018281038252602d8152602001806116b7602d913960400191505060405180910390fd5b600554611237904290600160301b900465ffffffffffff1661141a565b60008281526001602090815260409182902060020180546001600160d01b0316600160d01b65ffffffffffff95861681029190911791829055835186815291049093169083015280517f10a109258779eb298071adf16637b95f8d7cf00e49595711da10eeb90e6e8e949281900390910190a150565b60055465ffffffffffff1681565b336000908152602081905260409020546001146113095760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b816a626964496e63726561736560a81b14156113295760048190556113db565b816a3134b2223ab930ba34b7b760a91b141561135d576005805465ffffffffffff191665ffffffffffff83161790556113db565b81710e8dee8c2d882eac6e8d2dedc98cadccee8d60731b14156113a457600580546bffffffffffff0000000000001916600160301b65ffffffffffff8416021790556113db565b60405162461bcd60e51b815260040180806020018281038252603481526020018061165c6034913960400191505060405180910390fd5b604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b80820165ffffffffffff80841690821610156114675760405162461bcd60e51b815260040180806020018281038252602e8152602001806115ff602e913960400191505060405180910390fd5b92915050565b60008115806114885750508082028282828161148557fe5b04145b6114675760405162461bcd60e51b81526004018080602001828103825260278152602001806117126027913960400191505060405180910390fdfe4275726e696e67537572706c757341756374696f6e486f7573652f6163636f756e742d6e6f742d617574686f72697a65644275726e696e67537572706c757341756374696f6e486f7573652f6269642d616c72656164792d657870697265644275726e696e67537572706c757341756374696f6e486f7573652f636f6e74726163742d7374696c6c2d656e61626c65644275726e696e67537572706c757341756374696f6e486f7573652f636f6e74726163742d6e6f742d656e61626c65644275726e696e67537572706c757341756374696f6e486f7573652f696e73756666696369656e742d696e6372656173654275726e696e67537572706c757341756374696f6e486f7573652f6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f6269642d6e6f742d6869676865724275726e696e67537572706c757341756374696f6e486f7573652f6164642d75696e7434382d6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f616d6f756e74732d6e6f742d6d61746368696e674275726e696e67537572706c757341756374696f6e486f7573652f6d6f646966792d756e7265636f676e697a65642d706172616d4275726e696e67537572706c757341756374696f6e486f7573652f6e6f742d66696e69736865644275726e696e67537572706c757341756374696f6e486f7573652f6269642d616c72656164792d706c616365644275726e696e67537572706c757341756374696f6e486f7573652f686967682d6269646465722d6e6f742d7365744275726e696e67537572706c757341756374696f6e486f7573652f6d756c2d6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f61756374696f6e2d616c72656164792d65787069726564a2646970667358221220d878019ba0c62bd73ed45fddeec87aed8d1d931c2c17062339f573723b73d6ad64736f6c63430006070033000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a69620000000000000000000000006243d8cea23066d098a15582d81a598b4e8391f4
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80635a93f031116100ad578063933f760811610071578063933f7608146102d457806394f3f81d146102f1578063d25ccf5314610317578063f6b45eb714610334578063fe4f58901461033c5761012c565b80635a93f03114610270578063619ed1f81461029957806367aea313146102a157806373c0a367146102a9578063894ba833146102cc5761012c565b806335b28153116100f457806335b28153146101bc57806341b3a0d9146101e25780634423c5f1146101ea5780634fee13fc14610245578063551cb3b1146102685761012c565b80630ac239e5146101315780631266fb941461014b5780631a465fe11461015357806324ba5884146101775780632e9936111461019d575b600080fd5b61013961035f565b60408051918252519081900360200190f35b610139610365565b61015b610373565b604080516001600160a01b039092168252519081900360200190f35b6101396004803603602081101561018d57600080fd5b50356001600160a01b0316610382565b6101ba600480360360208110156101b357600080fd5b5035610394565b005b6101ba600480360360208110156101d257600080fd5b50356001600160a01b03166105d4565b610139610674565b6102076004803603602081101561020057600080fd5b503561067a565b6040805195865260208601949094526001600160a01b039092168484015265ffffffffffff9081166060850152166080830152519081900360a00190f35b6101396004803603604081101561025b57600080fd5b50803590602001356106be565b6101396108fb565b6101ba6004803603606081101561028657600080fd5b5080359060208101359060400135610901565b610139610d82565b61015b610d90565b6102b1610d9f565b6040805165ffffffffffff9092168252519081900360200190f35b6101ba610db4565b6101ba600480360360208110156102ea57600080fd5b5035610f22565b6101ba6004803603602081101561030757600080fd5b50356001600160a01b03166110bf565b6101ba6004803603602081101561032d57600080fd5b503561115e565b6102b16112ad565b6101ba6004803603604081101561035257600080fd5b50803590602001356112bb565b60045481565b66535552504c555360c81b81565b6003546001600160a01b031681565b60006020819052908152604090205481565b6007546001146103d55760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b600081815260016020526040902060020154600160a01b900465ffffffffffff161580159061044e575060008181526001602052604090206002015442600160a01b90910465ffffffffffff16108061044e575060008181526001602052604090206002015442600160d01b90910465ffffffffffff16105b6104895760405162461bcd60e51b81526004018080602001828103825260278152602001806116906027913960400191505060405180910390fd5b6002805460008381526001602081905260408083209485015494909101548151633beaf2b760e21b81523060048201526001600160a01b03958616602482015260448101919091529051939092169263efabcadc92606480820193929182900301818387803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b5050600354600084815260016020526040808220548151632770a7eb60e21b8152306004820152602481019190915290516001600160a01b039093169450639dc29fac93506044808201939182900301818387803b15801561057057600080fd5b505af1158015610584573d6000803e3d6000fd5b50505060008281526001602081905260408083208381559182018390556002909101829055518392507f03af424b0e12d91ea31fe7f2c199fc02c9ede38f9aa1bdc019a8087b41445f7a9190a250565b336000908152602081905260409020546001146106225760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b6001600160a01b0381166000818152602081815260409182902060019055815192835290517f599a298163e1678bb1c676052a8930bf0b8a1261ed6e01b8a2391e55f70001029281900390910190a150565b60075481565b60016020819052600091825260409091208054918101546002909101546001600160a01b0381169065ffffffffffff600160a01b8204811691600160d01b90041685565b3360009081526020819052604081205460011461070c5760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b60075460011461074d5760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b6000196006541061078f5760405162461bcd60e51b81526004018080602001828103825260238152602001806115b36023913960400191505060405180910390fd5b5060068054600190810191829055600082815260208290526040902083815590810184905560020180546001600160a01b031916331790556005546107e590429065ffffffffffff600160301b9091041661141a565b6000828152600160205260408082206002908101805465ffffffffffff95909516600160d01b026001600160d01b039095169490941790935591548251633beaf2b760e21b81523360048201523060248201526044810187905292516001600160a01b039091169263efabcadc92606480830193919282900301818387803b15801561087057600080fd5b505af1158015610884573d6000803e3d6000fd5b505060065460008481526001602090815260409182902060020154825193845290830188905282820187905265ffffffffffff600160d01b909104166060830152518493507fa4863af70e77aecfe2769e0569806782ba7c6f86fc9a307290a3816fb8a563e592509081900360800190a292915050565b60065481565b6007546001146109425760405162461bcd60e51b815260040180806020018281038252602f815260200180611554602f913960400191505060405180910390fd5b6000838152600160205260409020600201546001600160a01b03166109985760405162461bcd60e51b815260040180806020018281038252602e8152602001806116e4602e913960400191505060405180910390fd5b60008381526001602052604090206002015442600160a01b90910465ffffffffffff1611806109e55750600083815260016020526040902060020154600160a01b900465ffffffffffff16155b610a205760405162461bcd60e51b815260040180806020018281038252602e8152602001806114f5602e913960400191505060405180910390fd5b60008381526001602052604090206002015442600160d01b90910465ffffffffffff1611610a7f5760405162461bcd60e51b81526004018080602001828103825260328152602001806117396032913960400191505060405180910390fd5b600083815260016020819052604090912001548214610acf5760405162461bcd60e51b815260040180806020018281038252602f81526020018061162d602f913960400191505060405180910390fd5b6000838152600160205260409020548111610b1b5760405162461bcd60e51b81526004018080602001828103825260298152602001806115d66029913960400191505060405180910390fd5b600454600084815260016020526040902054610b37919061146d565b610b4982670de0b6b3a764000061146d565b1015610b865760405162461bcd60e51b81526004018080602001828103825260308152602001806115836030913960400191505060405180910390fd5b6000838152600160205260409020600201546001600160a01b03163314610c4d5760035460008481526001602052604080822060028101549054825163bb35783b60e01b81523360048201526001600160a01b0392831660248201526044810191909152915193169263bb35783b9260648084019391929182900301818387803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050600084815260016020526040902060020180546001600160a01b03191633179055505b60035460008481526001602052604080822054815163bb35783b60e01b8152336004820152306024820152908503604482015290516001600160a01b039093169263bb35783b9260648084019391929182900301818387803b158015610cb257600080fd5b505af1158015610cc6573d6000803e3d6000fd5b505050600084815260016020526040902082905550600554610cf190429065ffffffffffff1661141a565b600084815260016020908152604091829020600201805465ffffffffffff60a01b1916600160a01b65ffffffffffff95861681029190911791829055835188815233938101939093528284018790526060830186905290049092166080830152517fd87c815d5a67c2e130ad04b714d87a6fb69d5a6df0dbb0f1639cd9fe292201f99160a0908290030190a1505050565b664255524e494e4760c81b81565b6002546001600160a01b031681565b600554600160301b900465ffffffffffff1681565b33600090815260208190526040902054600114610e025760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b600060075560025460408051633eaf7a0360e21b8152306004820181905291516001600160a01b039093169263efabcadc92913391859163fabde80c916024808301926020929190829003018186803b158015610e5e57600080fd5b505afa158015610e72573d6000803e3d6000fd5b505050506040513d6020811015610e8857600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b03948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b158015610edf57600080fd5b505af1158015610ef3573d6000803e3d6000fd5b50506040517f2d4b4ecff7bd7503135271925520a2f6c0d98c9473ffc1a1e72c92502f51b25e925060009150a1565b60075415610f615760405162461bcd60e51b81526004018080602001828103825260318152602001806115236031913960400191505060405180910390fd5b6000818152600160205260409020600201546001600160a01b0316610fb75760405162461bcd60e51b815260040180806020018281038252602e8152602001806116e4602e913960400191505060405180910390fd5b60035460008281526001602052604080822060028101549054825163bb35783b60e01b81523060048201526001600160a01b0392831660248201526044810191909152915193169263bb35783b9260648084019391929182900301818387803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b5050506000828152600160209081526040918290206002810154905483513381526001600160a01b03909216928201929092528083019190915290518392507f723f56b5ac5fb3399765203804e790344f427477918842dbef525d795af4bcca9181900360600190a26000908152600160208190526040822082815590810182905560020155565b3360009081526020819052604090205460011461110d5760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b6001600160a01b03811660008181526020818152604080832092909255815192835290517f8834a87e641e9716be4f34527af5d23e11624f1ddeefede6ad75a9acfc31b9039281900390910190a150565b60008181526001602052604090206002015442600160d01b90910465ffffffffffff16106111bd5760405162461bcd60e51b81526004018080602001828103825260278152602001806116906027913960400191505060405180910390fd5b600081815260016020526040902060020154600160a01b900465ffffffffffff161561121a5760405162461bcd60e51b815260040180806020018281038252602d8152602001806116b7602d913960400191505060405180910390fd5b600554611237904290600160301b900465ffffffffffff1661141a565b60008281526001602090815260409182902060020180546001600160d01b0316600160d01b65ffffffffffff95861681029190911791829055835186815291049093169083015280517f10a109258779eb298071adf16637b95f8d7cf00e49595711da10eeb90e6e8e949281900390910190a150565b60055465ffffffffffff1681565b336000908152602081905260409020546001146113095760405162461bcd60e51b81526004018080602001828103825260318152602001806114c46031913960400191505060405180910390fd5b816a626964496e63726561736560a81b14156113295760048190556113db565b816a3134b2223ab930ba34b7b760a91b141561135d576005805465ffffffffffff191665ffffffffffff83161790556113db565b81710e8dee8c2d882eac6e8d2dedc98cadccee8d60731b14156113a457600580546bffffffffffff0000000000001916600160301b65ffffffffffff8416021790556113db565b60405162461bcd60e51b815260040180806020018281038252603481526020018061165c6034913960400191505060405180910390fd5b604080518381526020810183905281517fac7c5c1afaef770ec56ac6268cd3f2fbb1035858ead2601d6553157c33036c3a929181900390910190a15050565b80820165ffffffffffff80841690821610156114675760405162461bcd60e51b815260040180806020018281038252602e8152602001806115ff602e913960400191505060405180910390fd5b92915050565b60008115806114885750508082028282828161148557fe5b04145b6114675760405162461bcd60e51b81526004018080602001828103825260278152602001806117126027913960400191505060405180910390fdfe4275726e696e67537572706c757341756374696f6e486f7573652f6163636f756e742d6e6f742d617574686f72697a65644275726e696e67537572706c757341756374696f6e486f7573652f6269642d616c72656164792d657870697265644275726e696e67537572706c757341756374696f6e486f7573652f636f6e74726163742d7374696c6c2d656e61626c65644275726e696e67537572706c757341756374696f6e486f7573652f636f6e74726163742d6e6f742d656e61626c65644275726e696e67537572706c757341756374696f6e486f7573652f696e73756666696369656e742d696e6372656173654275726e696e67537572706c757341756374696f6e486f7573652f6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f6269642d6e6f742d6869676865724275726e696e67537572706c757341756374696f6e486f7573652f6164642d75696e7434382d6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f616d6f756e74732d6e6f742d6d61746368696e674275726e696e67537572706c757341756374696f6e486f7573652f6d6f646966792d756e7265636f676e697a65642d706172616d4275726e696e67537572706c757341756374696f6e486f7573652f6e6f742d66696e69736865644275726e696e67537572706c757341756374696f6e486f7573652f6269642d616c72656164792d706c616365644275726e696e67537572706c757341756374696f6e486f7573652f686967682d6269646465722d6e6f742d7365744275726e696e67537572706c757341756374696f6e486f7573652f6d756c2d6f766572666c6f774275726e696e67537572706c757341756374696f6e486f7573652f61756374696f6e2d616c72656164792d65787069726564a2646970667358221220d878019ba0c62bd73ed45fddeec87aed8d1d931c2c17062339f573723b73d6ad64736f6c63430006070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a69620000000000000000000000006243d8cea23066d098a15582d81a598b4e8391f4
-----Decoded View---------------
Arg [0] : safeEngine_ (address): 0xCC88a9d330da1133Df3A7bD823B95e52511A6962
Arg [1] : protocolToken_ (address): 0x6243d8CEA23066d098a15582d81a598b4e8391F4
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc88a9d330da1133df3a7bd823b95e52511a6962
Arg [1] : 0000000000000000000000006243d8cea23066d098a15582d81a598b4e8391f4
Deployed Bytecode Sourcemap
1584:9567:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1584:9567:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;3731:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;4308:65;;;:::i;3491:35::-;;;:::i;:::-;;;;-1:-1:-1;;;;;3491:35:0;;;;;;;;;;;;;;1648:54;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1648:54:0;-1:-1:-1;;;;;1648:54:0;;:::i;9696:518::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9696:518:0;;:::i;:::-;;1812:156;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1812:156:0;-1:-1:-1;;;;;1812:156:0;;:::i;4266:33::-;;;:::i;3354:36::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3354:36:0;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;3354:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6745:730;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6745:730:0;;;;;;;:::i;4175:37::-;;;:::i;8276:1309::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8276:1309:0;;;;;;;;;;;;:::i;4380:65::-;;;:::i;3421:32::-;;;:::i;4027:45::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10316:229;;;:::i;10675:473::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10675:473:0;;:::i;2087:162::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2087:162:0;-1:-1:-1;;;;;2087:162:0;;:::i;7614:378::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7614:378:0;;:::i;3891:39::-;;;:::i;6082:439::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6082:439:0;;;;;;;:::i;3731:39::-;;;;:::o;4308:65::-;-1:-1:-1;;;4308:65:0;:::o;3491:35::-;;;-1:-1:-1;;;;;3491:35:0;;:::o;1648:54::-;;;;;;;;;;;;;;:::o;9696:518::-;9759:15;;9778:1;9759:20;9751:80;;;;-1:-1:-1;;;9751:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9850:8;;;;:4;:8;;;;;:18;;;-1:-1:-1;;;9850:18:0;;;;:23;;;;:87;;-1:-1:-1;9878:8:0;;;;:4;:8;;;;;:18;;;9899:3;-1:-1:-1;;;9878:18:0;;;;;:24;;:58;;-1:-1:-1;9906:8:0;;;;:4;:8;;;;;:24;;;9933:3;-1:-1:-1;;;9906:24:0;;;;;:30;9878:58;9842:139;;;;-1:-1:-1;;;9842:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9992:10;;;;10040:8;;;9992:10;10040:8;;;;;;;;:19;;;;10061:21;;;;;9992:91;;-1:-1:-1;;;9992:91:0;;10033:4;9992:91;;;;-1:-1:-1;;;;;10040:19:0;;;9992:91;;;;;;;;;;;;;:10;;;;;:32;;:91;;;;;:10;:91;;;;;;:10;;:91;;;2:2:-1;;;;27:1;24;17:12;2:2;9992:91:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10094:13:0;;;10128:8;;;10094:13;10128:8;;;;;;:18;10094:53;;-1:-1:-1;;;10094:53:0;;10121:4;10094:53;;;;;;;;;;;;;-1:-1:-1;;;;;10094:13:0;;;;-1:-1:-1;10094:18:0;;-1:-1:-1;10094:53:0;;;;;;;;;;;:13;;:53;;;2:2:-1;;;;27:1;24;17:12;2:2;10094:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;10165:8:0;;;;:4;:8;;;;;;;;10158:15;;;;;;;;;;;;;;;;10189:17;10170:2;;-1:-1:-1;10189:17:0;;10165:8;10189:17;9696:518;:::o;1812:156::-;2402:10;2383:18;:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1888:27:0;::::1;:18;:27:::0;;;::::1;::::0;;;;;;;;1918:1:::1;1888:31:::0;;1935:25;;;;;;;::::1;::::0;;;;;;;;::::1;1812:156:::0;:::o;4266:33::-;;;;:::o;3354:36::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3354:36:0;;;;-1:-1:-1;;;3354:36:0;;;;;-1:-1:-1;;;3354:36:0;;;;:::o;6745:730::-;2402:10;6840;2383:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6871:15:::1;;6890:1;6871:20;6863:80;;;;-1:-1:-1::0;;;6863:80:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;6962:15:0::1;;:29;6954:77;;;;-1:-1:-1::0;;;6954:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;7049:15:0::1;7047:17:::0;;::::1;::::0;;::::1;::::0;;;;7049:15:::1;7077:8:::0;;;::::1;::::0;;;;;;:31;;;7119:21;;::::1;:36:::0;;;7166:19:::1;;:32:::0;;-1:-1:-1;;;;;;7166:32:0::1;7188:10;7166:32;::::0;;7259:18:::1;::::0;7236:42:::1;::::0;7253:3:::1;::::0;7259:18:::1;-1:-1:-1::0;;;7259:18:0;;::::1;;7236:9;:42::i;:::-;7209:8;::::0;;;:4:::1;:8;::::0;;;;;:24:::1;::::0;;::::1;:69:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;7209:69:0::1;-1:-1:-1::0;;;;;7209:69:0;;::::1;::::0;;;::::1;::::0;;;7291:10;;:73;;-1:-1:-1;;;7291:73:0;;7324:10:::1;7291:73;::::0;::::1;::::0;7344:4:::1;7291:73:::0;;;;;;;;;;;;-1:-1:-1;;;;;7291:10:0;;::::1;::::0;:32:::1;::::0;:73;;;;;7209:8;;7291:73;;;;;7209:8;7291:10;:73;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;7291:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;7399:15:0::1;::::0;7442:8:::1;::::0;;;:4:::1;:8;::::0;;;;;;;;:24:::1;;::::0;7382:85;;;;;;;::::1;::::0;;;;;;;;;7442:24:::1;-1:-1:-1::0;;;7442:24:0;;::::1;;7382:85:::0;;;;;7395:2;;-1:-1:-1;7382:85:0::1;::::0;-1:-1:-1;7382:85:0;;;;;;;::::1;6745:730:::0;;;;:::o;4175:37::-;;;;:::o;8276:1309::-;8375:15;;8394:1;8375:20;8367:80;;;;-1:-1:-1;;;8367:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8497:1;8466:8;;;:4;:8;;;;;:19;;;-1:-1:-1;;;;;8466:19:0;8458:92;;;;-1:-1:-1;;;8458:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8569:8;;;;:4;:8;;;;;:18;;;8590:3;-1:-1:-1;;;8569:18:0;;;;;:24;;:51;;-1:-1:-1;8597:8:0;;;;:4;:8;;;;;:18;;;-1:-1:-1;;;8597:18:0;;;;:23;8569:51;8561:110;;;;-1:-1:-1;;;8561:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8690:8;;;;:4;:8;;;;;:24;;;8717:3;-1:-1:-1;;;8690:24:0;;;;;:30;8682:93;;;;-1:-1:-1;;;8682:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8811:8;;;;:4;:8;;;;;;;;:21;;8796:36;;8788:96;;;;-1:-1:-1;;;8788:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8909:8;;;;:4;:8;;;;;:18;8903:24;;8895:78;;;;-1:-1:-1;;;8895:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9023:11;;9036:8;;;;:4;:8;;;;;:18;9014:41;;9023:11;9014:8;:41::i;:::-;8992:18;9001:3;3559:7;8992:8;:18::i;:::-;:63;;8984:124;;;;-1:-1:-1;;;8984:124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:8;;;;:4;:8;;;;;:19;;;-1:-1:-1;;;;;9139:19:0;9125:10;:33;9121:184;;9175:13;;;9206:8;;;9175:13;9206:8;;;;;;:19;;;;9227:18;;9175:71;;-1:-1:-1;;;9175:71:0;;9194:10;9175:71;;;;-1:-1:-1;;;;;9206:19:0;;;9175:71;;;;;;;;;;;;;:13;;;:18;;:71;;;;;:13;;:71;;;;;;:13;;:71;;;2:2:-1;;;;27:1;24;17:12;2:2;9175:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;9261:8:0;;;;:4;:8;;;;;:19;;:32;;-1:-1:-1;;;;;;9261:32:0;9283:10;9261:32;;;-1:-1:-1;9121:184:0;9315:13;;;9367:8;;;9315:13;9367:8;;;;;;:18;9315:71;;-1:-1:-1;;;9315:71:0;;9334:10;9315:71;;;;9354:4;9315:71;;;;9361:24;;;9315:71;;;;;;-1:-1:-1;;;;;9315:13:0;;;;:18;;:71;;;;;:13;;:71;;;;;;:13;;:71;;;2:2:-1;;;;27:1;24;17:12;2:2;9315:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;9399:8:0;;;;:4;:8;;;;;:24;;;-1:-1:-1;9478:11:0;;9455:35;;9472:3;;9478:11;;9455:9;:35::i;:::-;9434:8;;;;:4;:8;;;;;;;;;:18;;:56;;-1:-1:-1;;;;9434:56:0;-1:-1:-1;;;9434:56:0;;;;;;;;;;;;;;9508:69;;;;;9528:10;9508:69;;;;;;;;;;;;;;;;;;;9558:18;;;;;9508:69;;;;;;;;;;;;;;;8276:1309;;;:::o;4380:65::-;-1:-1:-1;;;4380:65:0;:::o;3421:32::-;;;-1:-1:-1;;;;;3421:32:0;;:::o;4027:45::-;;;-1:-1:-1;;;4027:45:0;;;;;:::o;10316:229::-;2402:10;2383:18;:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10394:1:::1;10376:15;:19:::0;10406:10:::1;::::0;10466:37:::1;::::0;;-1:-1:-1;;;10466:37:0;;10447:4:::1;10466:37;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;10406:10:0;;::::1;::::0;:32:::1;::::0;10447:4;10454:10:::1;::::0;10406;;10466:22:::1;::::0;:37;;;;;::::1;::::0;;;;;;;;10406:10;10466:37;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;10466:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;10466:37:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;10466:37:0;10406:98:::1;::::0;;-1:-1:-1;;;;;;10406:98:0::1;::::0;;;;;;-1:-1:-1;;;;;10406:98:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;;;-1:-1:-1;;10406:98:0;;;;;;;-1:-1:-1;10406:98:0;;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;10406:98:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;;10520:17:0::1;::::0;::::1;::::0;-1:-1:-1;10520:17:0;;-1:-1:-1;10520:17:0::1;10316:229::o:0;10675:473::-;10752:15;;:20;10744:82;;;;-1:-1:-1;;;10744:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10876:1;10845:8;;;:4;:8;;;;;:19;;;-1:-1:-1;;;;;10845:19:0;10837:92;;;;-1:-1:-1;;;10837:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10940:13;;;10974:8;;;10940:13;10974:8;;;;;;:19;;;;10995:18;;10940:74;;-1:-1:-1;;;10940:74:0;;10967:4;10940:74;;;;-1:-1:-1;;;;;10974:19:0;;;10940:74;;;;;;;;;;;;;:13;;;:18;;:74;;;;;:13;;:74;;;;;;:13;;:74;;;2:2:-1;;;;27:1;24;17:12;2:2;10940:74:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;11074:8:0;;;;:4;:8;;;;;;;;;:19;;;;11095:18;;11030:84;;11062:10;11030:84;;-1:-1:-1;;;;;11074:19:0;;;11030:84;;;;;;;;;;;;;;;;11058:2;;-1:-1:-1;11030:84:0;;;;;;;;;11132:8;;;;:4;:8;;;;;;;11125:15;;;;;;;;;;;;10675:473::o;2087:162::-;2402:10;2383:18;:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2166:27:0;::::1;2196:1;2166:27:::0;;;::::1;::::0;;;;;;;:31;;;;2213:28;;;;;;;::::1;::::0;;;;;;;;::::1;2087:162:::0;:::o;7614:378::-;7678:8;;;;:4;:8;;;;;:24;;;7705:3;-1:-1:-1;;;7678:24:0;;;;;:30;7670:82;;;;-1:-1:-1;;;7670:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7771:8;;;;:4;:8;;;;;:18;;;-1:-1:-1;;;7771:18:0;;;;:23;7763:81;;;;-1:-1:-1;;;7763:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7905:18;;7882:42;;7899:3;;-1:-1:-1;;;7905:18:0;;;;7882:9;:42::i;:::-;7855:8;;;;:4;:8;;;;;;;;;:24;;:69;;-1:-1:-1;;;;;7855:69:0;-1:-1:-1;;;7855:69:0;;;;;;;;;;;;;;7940:44;;;;;7959:24;;;;;7940:44;;;;;;;;;;;;;;;;7614:378;:::o;3891:39::-;;;;;;:::o;6082:439::-;2402:10;2383:18;:30;;;;;;;;;;;2417:1;2383:35;2375:97;;;;-1:-1:-1;;;2375:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6178:9:::1;-1:-1:-1::0;;;6178:26:0::1;6174:290;;;6206:11;:18:::0;;;6174:290:::1;;;6244:9;-1:-1:-1::0;;;6244:26:0::1;6240:224;;;6272:11;:26:::0;;-1:-1:-1;;6272:26:0::1;;::::0;::::1;;::::0;;6240:224:::1;;;6318:9;-1:-1:-1::0;;;6318:33:0::1;6314:150;;;6353:18;:33:::0;;-1:-1:-1;;6353:33:0::1;-1:-1:-1::0;;;6353:33:0::1;::::0;::::1;;;::::0;;6314:150:::1;;;6402:62;;-1:-1:-1::0;;;6402:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6314:150;6480:33;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;6082:439:::0;;:::o;5537:166::-;5633:5;;;5628:16;;;;;;;;;5620:75;;;;-1:-1:-1;;;5620:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5537:166;;;;:::o;5709:175::-;5772:9;5802:6;;;:30;;-1:-1:-1;;5817:5:0;;;5831:1;5826;5817:5;5826:1;5812:15;;;;;:20;5802:30;5794:82;;;;-1:-1:-1;;;5794:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://d878019ba0c62bd73ed45fddeec87aed8d1d931c2c17062339f573723b73d6ad
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.