Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SynthToken Burner
Compiler Version
vyper:0.3.7
Contract Source Code (Vyper language format)
# @version 0.3.7 """ @title SynthToken Burner @notice Swaps synths """ interface ERC20: def transfer(_to: address, _value: uint256) -> bool: nonpayable def balanceOf(_owner: address) -> uint256: view interface synthERC20: def balanceOf(_owner: address) -> uint256: view def transfer(_to: address, _value: uint256) -> bool: nonpayable def transferFrom(_from: address, _to: address, _value: uint256) -> bool: nonpayable def withdraw(_amount: uint256, _to: address): nonpayable def currencyKey() -> bytes32: nonpayable interface Proxy: def burners(_coin: address) -> address: view interface Synthetix: def exchangeWithTracking( sourceCurrencyKey: bytes32, sourceAmount: uint256, destinationCurrencyKey: bytes32, rewardAddress: address, trackingCode: bytes32, ) -> uint256: nonpayable def settle(currencyKey: bytes32) -> uint256[3]: nonpayable struct SwapData: currency_key: bytes32 to: synthERC20 # Same for coins to withdraw struct SwapDataInput: coin: synthERC20 to: synthERC20 SNX: immutable(Synthetix) TRACKING_CODE: constant(bytes32) = 0x4355525645000000000000000000000000000000000000000000000000000000 swap_data: public(HashMap[synthERC20, SwapData]) sink_coin: public(synthERC20) # Default coin to swap to ETH_ADDRESS: constant(address) = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE PROXY: public(immutable(Proxy)) is_killed: public(bool) killed_coin: public(HashMap[synthERC20, bool]) owner: public(address) emergency_owner: public(address) future_owner: public(address) future_emergency_owner: public(address) @external def __init__(_proxy: Proxy, _owner: address, _emergency_owner: address): """ @notice Contract constructor @param _proxy Owner of admin fees @param _owner Owner address. Can kill the contract. @param _emergency_owner Emergency owner address. Can kill the contract. """ PROXY = _proxy self.owner = _owner self.emergency_owner = _emergency_owner SNX = Synthetix(0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4) self.sink_coin = synthERC20(0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9) # sUSD @internal def _fetch_swap_data(_coin: synthERC20) -> SwapData: swap_data: SwapData = self.swap_data[_coin] if swap_data.currency_key == empty(bytes32): swap_data = SwapData({ currency_key: _coin.currencyKey(), to: self.sink_coin, }) self.swap_data[_coin] = swap_data return swap_data @internal def _burn(_coin: synthERC20, _amount: uint256): """ @notice Burn implementation """ assert not self.is_killed and not self.killed_coin[_coin], "Is killed" swap_data: SwapData = self._fetch_swap_data(_coin) if swap_data.to == _coin: SNX.settle(swap_data.currency_key) _coin.transfer(PROXY.address, _amount) else: SNX.exchangeWithTracking( swap_data.currency_key, _amount, self._fetch_swap_data(swap_data.to).currency_key, PROXY.address, TRACKING_CODE, ) amount: uint256 = swap_data.to.balanceOf(self) swap_data.to.transfer(PROXY.address, amount) @external def burn(_coin: synthERC20) -> bool: """ @notice Unwrap `_coin` @param _coin Address of the coin being unwrapped @return bool Success, remained for compatibility """ amount: uint256 = _coin.balanceOf(msg.sender) if amount != 0: _coin.transferFrom(msg.sender, self, amount) amount = _coin.balanceOf(self) if amount != 0: self._burn(_coin, amount) return True @external def burn_amount(_coin: synthERC20, _amount_to_burn: uint256): """ @notice Burn a specific quantity of `_coin` @dev Useful when the total amount to burn is so large that it fails @param _coin Address of the coin being converted @param _amount_to_burn Amount of the coin to burn """ amount: uint256 = _coin.balanceOf(PROXY.address) if amount != 0 and PROXY.burners(_coin.address) == self: _coin.transferFrom(PROXY.address, self, amount) amount = _coin.balanceOf(self) assert amount >= _amount_to_burn, "Insufficient balance" self._burn(_coin, _amount_to_burn) @external @view def burns_to(_coin: synthERC20) -> DynArray[address, 8]: """ @notice Get resulting coins of burning `_coin` @param _coin Coin to burn """ return [self.swap_data[_coin].to.address] @external def set_swap_data(_swap_data: DynArray[SwapDataInput, 16]): """ @notice Set custom swap data, needed for old pools @param _swap_data Data needed for burning """ assert msg.sender in [self.owner, self.emergency_owner], "Only owner" for data_input in _swap_data: swap_data: SwapData = SwapData({ currency_key: data_input.coin.currencyKey(), to: data_input.to, }) self.swap_data[data_input.coin] = swap_data @external def set_new_sink_coin(_coin: synthERC20): """ @notice Set default coin to swap to, will be used for synths with no swap_data set @param _coin Address of the coin """ assert msg.sender in [self.owner, self.emergency_owner], "Only owner" self.sink_coin = _coin @external def recover_balance(_coin: ERC20, _amount: uint256=max_value(uint256)): """ @notice Recover ERC20 tokens or Ether from this contract @dev Tokens are sent to proxy @param _coin Token address @param _amount Amount to recover """ amount: uint256 = _amount if _coin.address == ETH_ADDRESS: if amount == max_value(uint256): amount = self.balance raw_call(PROXY.address, b"", value=amount) else: if amount == max_value(uint256): amount = _coin.balanceOf(self) _coin.transfer(PROXY.address, amount) # do not need safe transfer @external def set_killed(_is_killed: bool, _coin: synthERC20=empty(synthERC20)): """ @notice Stop a contract or specific coin to be burnt @dev Executable only via owner or emergency owner @param _is_killed Boolean value to set @param _coin Coin to stop from burning, ZERO_ADDRESS to kill all coins (by default) """ assert msg.sender in [self.owner, self.emergency_owner], "Only owner" if _coin == empty(synthERC20): self.is_killed = _is_killed else: self.killed_coin[_coin] = _is_killed @external def commit_transfer_ownership(_future_owner: address) -> bool: """ @notice Commit a transfer of ownership @dev Must be accepted by the new owner via `accept_transfer_ownership` @param _future_owner New owner address @return bool success """ assert msg.sender == self.owner, "Only owner" self.future_owner = _future_owner return True @external def accept_transfer_ownership() -> bool: """ @notice Accept a transfer of ownership @return bool success """ assert msg.sender == self.future_owner, "Only owner" self.owner = msg.sender return True @external def commit_transfer_emergency_ownership(_future_owner: address) -> bool: """ @notice Commit a transfer of emergency ownership @dev Must be accepted by the new owner via `accept_transfer_emergency_ownership` @param _future_owner New owner address @return bool success """ assert msg.sender == self.emergency_owner, "Only owner" self.future_emergency_owner = _future_owner return True @external def accept_transfer_emergency_ownership() -> bool: """ @notice Accept a transfer of emergency ownership @return bool success """ assert msg.sender == self.future_emergency_owner, "Only owner" self.emergency_owner = msg.sender return True
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_proxy","type":"address"},{"name":"_owner","type":"address"},{"name":"_emergency_owner","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"burn_amount","inputs":[{"name":"_coin","type":"address"},{"name":"_amount_to_burn","type":"uint256"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"burns_to","inputs":[{"name":"_coin","type":"address"}],"outputs":[{"name":"","type":"address[]"}]},{"stateMutability":"nonpayable","type":"function","name":"set_swap_data","inputs":[{"name":"_swap_data","type":"tuple[]","components":[{"name":"coin","type":"address"},{"name":"to","type":"address"}]}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_new_sink_coin","inputs":[{"name":"_coin","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"recover_balance","inputs":[{"name":"_coin","type":"address"},{"name":"_amount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_killed","inputs":[{"name":"_is_killed","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_killed","inputs":[{"name":"_is_killed","type":"bool"},{"name":"_coin","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_emergency_ownership","inputs":[{"name":"_future_owner","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_emergency_ownership","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"swap_data","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"currency_key","type":"bytes32"},{"name":"to","type":"address"}]}]},{"stateMutability":"view","type":"function","name":"sink_coin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"PROXY","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"is_killed","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"killed_coin","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"emergency_owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_emergency_owner","inputs":[],"outputs":[{"name":"","type":"address"}]}]
Contract Creation Code
60206110236000396000518060a01c61101e5760405260206110436000396000518060a01c61101e5760605260206110636000396000518060a01c61101e576080523461101e57604051610fa152606051600455608051600555738700daec35af8ff88c16bdf0418774cb3d7599b4610f8152738c6f28f2f1a3c87f0f938b96d27520d9751ec8d9600155610f8161009c61000039610fc1610000f36003361161000c57610c36565b60003560e01c34610f6f576389afcb44811861014a5760243610610f6f576004358060a01c610f6f5761026052610260516370a082316102a052336102c05260206102a060246102bc845afa610067573d600060003e3d6000fd5b60203d10610f6f576102a09050516102805261028051156100dd57610260516323b872dd6102a052336102c052306102e052610280516103005260206102a060646102bc6000855af16100bf573d600060003e3d6000fd5b60203d10610f6f576102a0518060011c610f6f576103205261032050505b610260516370a082316102a052306102c05260206102a060246102bc845afa61010b573d600060003e3d6000fd5b60203d10610f6f576102a090505161028052610280511561013d576102605160e052610280516101005261013d610ccd565b60016102a05260206102a0f35b637afb0ed181186103555760443610610f6f576004358060a01c610f6f5761026052610260516370a082316102a0526020610fa16000396000516102c05260206102a060246102bc845afa6101a4573d600060003e3d6000fd5b60203d10610f6f576102a090505161028052610280511561021d57306020610fa16000396000516303d41e0e6102a052610260516102c05260206102a060246102bc845afa6101f8573d600060003e3d6000fd5b60203d10610f6f576102a0518060a01c610f6f576102e0526102e09050511815610220565b60005b1561028a57610260516323b872dd610300526020610fa160003960005161032052306103405261028051610360526020610300606461031c6000855af161026c573d600060003e3d6000fd5b60203d10610f6f57610300518060011c610f6f576103805261038050505b610260516370a082316102a052306102c05260206102a060246102bc845afa6102b8573d600060003e3d6000fd5b60203d10610f6f576102a09050516102805260243561028051101561033d5760146102a0527f496e73756666696369656e742062616c616e63650000000000000000000000006102c0526102a0506102a051806102c001601f826000031636823750506308c379a061026052602061028052601f19601f6102a051011660440161027cfd5b6102605160e05260243561010052610353610ccd565b005b632b482c2181186103f75760243610610f6f576004358060a01c610f6f5760405260208060605280606001600060016101a05260006040516020526000526040600020600181019050546101c05260006101a0518084528060051b60008260088111610f6f5780156103e157905b8060051b6101c001518160051b6020890101526001018181186103c3575b5050820160200191505090509050810190506060f35b630c33f26c81186105965760443610610f6f576004356004016010813511610f6f5780358060405260008160108111610f6f57801561046d57905b8060061b6060018160061b602086010180358060a01c610f6f57825260208101358060a01c610f6f5760208301525050600101818118610432575b50505050336004548118610482576001610489565b6005548118155b90506104f557600a610480527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006104a0526104805061048051806104a001601f826000031636823750506308c379a061044052602061046052601f19601f61048051011660440161045cfd5b600060405160108111610f6f57801561059257905b8060061b606001805161046052602081015161048052506104605163dbd06c856104e05260206104e060046104fc6000855af161054c573d600060003e3d6000fd5b60203d10610f6f576104e09050516104a052610480516104c05260006104605160205260005260406000206104a05181556104c05160018201555060010181811861050a575b5050005b633ab9caa5811861063a5760243610610f6f576004358060a01c610f6f576040523360045481186105c85760016105cf565b6005548118155b905061063257600a6080527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060a0526080506080518060a001601f826000031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b604051600155005b63db2f5f7981186106765760243610610f6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff606052610690565b630cb491e1811861079e5760443610610f6f576024356060525b6004358060a01c610f6f5760405260605160805273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6040511861070257608051196106ce57476080525b600060a05260a0506000600060a05160c06080516020610fa16000396000515af161079c573d600060003e3d6000fd61079c565b60805119610744576040516370a0823160a0523060c052602060a0602460bc845afa610733573d600060003e3d6000fd5b60203d10610f6f5760a09050516080525b60405163a9059cbb60a0526020610fa160003960005160c05260805160e052602060a0604460bc6000855af161077f573d600060003e3d6000fd5b60203d10610f6f5760a0518060011c610f6f576101005261010050505b005b6390b2299781186107bb5760243610610f6f5760006060526107dd565b63ce91764f811861088f5760443610610f6f576024358060a01c610f6f576060525b6004358060011c610f6f576040523360045481186107fc576001610803565b6005548118155b905061086657600a60a0527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060c05260a05060a0518060c001601f826000031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6060516108785760405160025561088d565b60405160036060516020526000526040600020555b005b636b441a4081186109285760243610610f6f576004358060a01c610f6f5760405260045433181561091757600a6060527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b604051600655600160605260206060f35b63e5ea47b881186109b15760043610610f6f576006543318156109a257600a6040527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b33600455600160405260206040f35b6395c899158118610a4a5760243610610f6f576004358060a01c610f6f57604052600554331815610a3957600a6060527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b604051600755600160605260206060f35b632d2cb6758118610ad35760043610610f6f57600754331815610ac457600a6040527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b33600555600160405260206040f35b6312946aae8118610b185760243610610f6f576004358060a01c610f6f5760405260006040516020526000526040600020805460605260018101546080525060406060f35b63de918bbc8118610b375760043610610f6f5760015460405260206040f35b63a8c92d488118610b5e5760043610610f6f576020610fa160003960005160405260206040f35b639c868ac08118610b7d5760043610610f6f5760025460405260206040f35b636392be7d8118610bb85760243610610f6f576004358060a01c610f6f57604052600360405160205260005260406000205460605260206060f35b638da5cb5b8118610bd75760043610610f6f5760045460405260206040f35b6363a4042a8118610bf65760043610610f6f5760055460405260206040f35b631ec0cdc18118610c155760043610610f6f5760065460405260206040f35b63e19f994c8118610c345760043610610f6f5760075460405260206040f35b505b60006000fd5b600060405160205260005260406000208054606052600181015460805250606051610cbd5760405163dbd06c8560a052602060a0600460bc6000855af1610c88573d600060003e3d6000fd5b60203d10610f6f5760a09050516060526001546080526000604051602052600052604060002060605181556080516001820155505b6060518152608051602082015250565b600254610ceb57600360e05160205260005260406000205415610cee565b60005b610d56576009610120527f4973206b696c6c656400000000000000000000000000000000000000000000006101405261012050610120518061014001601f826000031636823750506308c379a060e052602061010052601f19601f61012051011660440160fcfd5b60e051604052610d67610160610c3c565b6101608051610120526020810151610140525060e0516101405118610e30576020610f8160003960005163987757dd6101605261012051610180526060610160602461017c6000855af1610dc0573d600060003e3d6000fd5b60603d10610f6f57610160505060e05163a9059cbb610160526020610fa160003960005161018052610100516101a0526020610160604461017c6000855af1610e0e573d600060003e3d6000fd5b60203d10610f6f57610160518060011c610f6f576101c0526101c05050610f6d565b6020610f816000396000516330ead7606101a052610120516101c052610100516101e05261014051604052610e66610160610c3c565b61016051610200526020610fa1600039600051610220527f43555256450000000000000000000000000000000000000000000000000000006102405260206101a060a46101bc6000855af1610ec0573d600060003e3d6000fd5b60203d10610f6f576101a05050610140516370a0823161018052306101a0526020610180602461019c845afa610efb573d600060003e3d6000fd5b60203d10610f6f57610180905051610160526101405163a9059cbb610180526020610fa16000396000516101a052610160516101c0526020610180604461019c6000855af1610f4f573d600060003e3d6000fd5b60203d10610f6f57610180518060011c610f6f576101e0526101e050505b565b600080fda165767970657283000307000b005b600080fd000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b
Deployed Bytecode
0x6003361161000c57610c36565b60003560e01c34610f6f576389afcb44811861014a5760243610610f6f576004358060a01c610f6f5761026052610260516370a082316102a052336102c05260206102a060246102bc845afa610067573d600060003e3d6000fd5b60203d10610f6f576102a09050516102805261028051156100dd57610260516323b872dd6102a052336102c052306102e052610280516103005260206102a060646102bc6000855af16100bf573d600060003e3d6000fd5b60203d10610f6f576102a0518060011c610f6f576103205261032050505b610260516370a082316102a052306102c05260206102a060246102bc845afa61010b573d600060003e3d6000fd5b60203d10610f6f576102a090505161028052610280511561013d576102605160e052610280516101005261013d610ccd565b60016102a05260206102a0f35b637afb0ed181186103555760443610610f6f576004358060a01c610f6f5761026052610260516370a082316102a0526020610fa16000396000516102c05260206102a060246102bc845afa6101a4573d600060003e3d6000fd5b60203d10610f6f576102a090505161028052610280511561021d57306020610fa16000396000516303d41e0e6102a052610260516102c05260206102a060246102bc845afa6101f8573d600060003e3d6000fd5b60203d10610f6f576102a0518060a01c610f6f576102e0526102e09050511815610220565b60005b1561028a57610260516323b872dd610300526020610fa160003960005161032052306103405261028051610360526020610300606461031c6000855af161026c573d600060003e3d6000fd5b60203d10610f6f57610300518060011c610f6f576103805261038050505b610260516370a082316102a052306102c05260206102a060246102bc845afa6102b8573d600060003e3d6000fd5b60203d10610f6f576102a09050516102805260243561028051101561033d5760146102a0527f496e73756666696369656e742062616c616e63650000000000000000000000006102c0526102a0506102a051806102c001601f826000031636823750506308c379a061026052602061028052601f19601f6102a051011660440161027cfd5b6102605160e05260243561010052610353610ccd565b005b632b482c2181186103f75760243610610f6f576004358060a01c610f6f5760405260208060605280606001600060016101a05260006040516020526000526040600020600181019050546101c05260006101a0518084528060051b60008260088111610f6f5780156103e157905b8060051b6101c001518160051b6020890101526001018181186103c3575b5050820160200191505090509050810190506060f35b630c33f26c81186105965760443610610f6f576004356004016010813511610f6f5780358060405260008160108111610f6f57801561046d57905b8060061b6060018160061b602086010180358060a01c610f6f57825260208101358060a01c610f6f5760208301525050600101818118610432575b50505050336004548118610482576001610489565b6005548118155b90506104f557600a610480527f4f6e6c79206f776e6572000000000000000000000000000000000000000000006104a0526104805061048051806104a001601f826000031636823750506308c379a061044052602061046052601f19601f61048051011660440161045cfd5b600060405160108111610f6f57801561059257905b8060061b606001805161046052602081015161048052506104605163dbd06c856104e05260206104e060046104fc6000855af161054c573d600060003e3d6000fd5b60203d10610f6f576104e09050516104a052610480516104c05260006104605160205260005260406000206104a05181556104c05160018201555060010181811861050a575b5050005b633ab9caa5811861063a5760243610610f6f576004358060a01c610f6f576040523360045481186105c85760016105cf565b6005548118155b905061063257600a6080527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060a0526080506080518060a001601f826000031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b604051600155005b63db2f5f7981186106765760243610610f6f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff606052610690565b630cb491e1811861079e5760443610610f6f576024356060525b6004358060a01c610f6f5760405260605160805273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6040511861070257608051196106ce57476080525b600060a05260a0506000600060a05160c06080516020610fa16000396000515af161079c573d600060003e3d6000fd61079c565b60805119610744576040516370a0823160a0523060c052602060a0602460bc845afa610733573d600060003e3d6000fd5b60203d10610f6f5760a09050516080525b60405163a9059cbb60a0526020610fa160003960005160c05260805160e052602060a0604460bc6000855af161077f573d600060003e3d6000fd5b60203d10610f6f5760a0518060011c610f6f576101005261010050505b005b6390b2299781186107bb5760243610610f6f5760006060526107dd565b63ce91764f811861088f5760443610610f6f576024358060a01c610f6f576060525b6004358060011c610f6f576040523360045481186107fc576001610803565b6005548118155b905061086657600a60a0527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060c05260a05060a0518060c001601f826000031636823750506308c379a06060526020608052601f19601f60a0510116604401607cfd5b6060516108785760405160025561088d565b60405160036060516020526000526040600020555b005b636b441a4081186109285760243610610f6f576004358060a01c610f6f5760405260045433181561091757600a6060527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b604051600655600160605260206060f35b63e5ea47b881186109b15760043610610f6f576006543318156109a257600a6040527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b33600455600160405260206040f35b6395c899158118610a4a5760243610610f6f576004358060a01c610f6f57604052600554331815610a3957600a6060527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b604051600755600160605260206060f35b632d2cb6758118610ad35760043610610f6f57600754331815610ac457600a6040527f4f6e6c79206f776e65720000000000000000000000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b33600555600160405260206040f35b6312946aae8118610b185760243610610f6f576004358060a01c610f6f5760405260006040516020526000526040600020805460605260018101546080525060406060f35b63de918bbc8118610b375760043610610f6f5760015460405260206040f35b63a8c92d488118610b5e5760043610610f6f576020610fa160003960005160405260206040f35b639c868ac08118610b7d5760043610610f6f5760025460405260206040f35b636392be7d8118610bb85760243610610f6f576004358060a01c610f6f57604052600360405160205260005260406000205460605260206060f35b638da5cb5b8118610bd75760043610610f6f5760045460405260206040f35b6363a4042a8118610bf65760043610610f6f5760055460405260206040f35b631ec0cdc18118610c155760043610610f6f5760065460405260206040f35b63e19f994c8118610c345760043610610f6f5760075460405260206040f35b505b60006000fd5b600060405160205260005260406000208054606052600181015460805250606051610cbd5760405163dbd06c8560a052602060a0600460bc6000855af1610c88573d600060003e3d6000fd5b60203d10610f6f5760a09050516060526001546080526000604051602052600052604060002060605181556080516001820155505b6060518152608051602082015250565b600254610ceb57600360e05160205260005260406000205415610cee565b60005b610d56576009610120527f4973206b696c6c656400000000000000000000000000000000000000000000006101405261012050610120518061014001601f826000031636823750506308c379a060e052602061010052601f19601f61012051011660440160fcfd5b60e051604052610d67610160610c3c565b6101608051610120526020810151610140525060e0516101405118610e30576020610f8160003960005163987757dd6101605261012051610180526060610160602461017c6000855af1610dc0573d600060003e3d6000fd5b60603d10610f6f57610160505060e05163a9059cbb610160526020610fa160003960005161018052610100516101a0526020610160604461017c6000855af1610e0e573d600060003e3d6000fd5b60203d10610f6f57610160518060011c610f6f576101c0526101c05050610f6d565b6020610f816000396000516330ead7606101a052610120516101c052610100516101e05261014051604052610e66610160610c3c565b61016051610200526020610fa1600039600051610220527f43555256450000000000000000000000000000000000000000000000000000006102405260206101a060a46101bc6000855af1610ec0573d600060003e3d6000fd5b60203d10610f6f576101a05050610140516370a0823161018052306101a0526020610180602461019c845afa610efb573d600060003e3d6000fd5b60203d10610f6f57610180905051610160526101405163a9059cbb610180526020610fa16000396000516101a052610160516101c0526020610180604461019c6000855af1610f4f573d600060003e3d6000fd5b60203d10610f6f57610180518060011c610f6f576101e0526101e050505b565b600080fda165767970657283000307000b0000000000000000000000008700daec35af8ff88c16bdf0418774cb3d7599b4000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b
-----Decoded View---------------
Arg [0] : _proxy (address): 0xbF7E49483881C76487b0989CD7d9A8239B20CA41
Arg [1] : _owner (address): 0xB055EbbAcc8Eefc166c169e9Ce2886D0406aB49b
Arg [2] : _emergency_owner (address): 0xB055EbbAcc8Eefc166c169e9Ce2886D0406aB49b
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000bf7e49483881c76487b0989cd7d9a8239b20ca41
Arg [1] : 000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b
Arg [2] : 000000000000000000000000b055ebbacc8eefc166c169e9ce2886d0406ab49b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.