Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Sponsored
Latest 18 from a total of 18 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Governance | 24670148 | 746 days ago | IN | 0 ETH | 0.000020154306 | ||||
New Experimental... | 18885387 | 787 days ago | IN | 0 ETH | 0.000093496392 | ||||
New Experimental... | 18885381 | 787 days ago | IN | 0 ETH | 0.000093496391 | ||||
New Experimental... | 18885373 | 787 days ago | IN | 0 ETH | 0.000092789245 | ||||
Endorse Vault | 18795809 | 788 days ago | IN | 0 ETH | 0.000135061115 | ||||
New Experimental... | 18498365 | 790 days ago | IN | 0 ETH | 0.000073382658 | ||||
New Experimental... | 18111496 | 793 days ago | IN | 0 ETH | 0.000040658923 | ||||
New Experimental... | 18111492 | 793 days ago | IN | 0 ETH | 0.000047356373 | ||||
New Experimental... | 18111490 | 793 days ago | IN | 0 ETH | 0.000047356373 | ||||
New Experimental... | 18111487 | 793 days ago | IN | 0 ETH | 0.000047356373 | ||||
New Experimental... | 18111485 | 793 days ago | IN | 0 ETH | 0.000047178677 | ||||
New Experimental... | 18111329 | 793 days ago | IN | 0 ETH | 0.000029193118 | ||||
New Experimental... | 18111326 | 793 days ago | IN | 0 ETH | 0.000029187895 | ||||
New Experimental... | 18111324 | 793 days ago | IN | 0 ETH | 0.000028190777 | ||||
New Experimental... | 18111320 | 793 days ago | IN | 0 ETH | 0.000029187894 | ||||
New Experimental... | 18111318 | 793 days ago | IN | 0 ETH | 0.00002907494 | ||||
New Release | 18099370 | 793 days ago | IN | 0 ETH | 0.000012572348 | ||||
0x33600755 | 18097341 | 793 days ago | IN | 0 ETH | 0.000479545604 |
Latest 14 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
18885387 | 787 days ago | Contract Creation | 0 ETH | |||
18885381 | 787 days ago | Contract Creation | 0 ETH | |||
18885373 | 787 days ago | Contract Creation | 0 ETH | |||
18498365 | 790 days ago | Contract Creation | 0 ETH | |||
18111496 | 793 days ago | Contract Creation | 0 ETH | |||
18111492 | 793 days ago | Contract Creation | 0 ETH | |||
18111490 | 793 days ago | Contract Creation | 0 ETH | |||
18111487 | 793 days ago | Contract Creation | 0 ETH | |||
18111485 | 793 days ago | Contract Creation | 0 ETH | |||
18111329 | 793 days ago | Contract Creation | 0 ETH | |||
18111326 | 793 days ago | Contract Creation | 0 ETH | |||
18111324 | 793 days ago | Contract Creation | 0 ETH | |||
18111320 | 793 days ago | Contract Creation | 0 ETH | |||
18111318 | 793 days 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 Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.2.11
Contract Source Code (Vyper language format)
# @version 0.2.11 interface Vault: def token() -> address: view def apiVersion() -> String[28]: view def governance() -> address: view def initialize( token: address, governance: address, rewards: address, name: String[64], symbol: String[32], guardian: address, ): nonpayable # len(releases) numReleases: public(uint256) releases: public(HashMap[uint256, address]) # Token => len(vaults) numVaults: public(HashMap[address, uint256]) vaults: public(HashMap[address, HashMap[uint256, address]]) # Index of token added => token address tokens: public(HashMap[uint256, address]) # len(tokens) numTokens: public(uint256) # Inclusion check for token isRegistered: public(HashMap[address, bool]) # 2-phase commit governance: public(address) pendingGovernance: public(address) tags: public(HashMap[address, String[120]]) banksy: public(HashMap[address, bool]) # could be anyone event NewRelease: release_id: indexed(uint256) template: address api_version: String[28] event NewVault: token: indexed(address) vault_id: indexed(uint256) vault: address api_version: String[28] event NewExperimentalVault: token: indexed(address) deployer: indexed(address) vault: address api_version: String[28] event NewGovernance: governance: address event VaultTagged: vault: address tag: String[120] @external def __init__(): self.governance = msg.sender @external def setGovernance(governance: address): """ @notice Starts the 1st phase of the governance transfer. @dev Throws if the caller is not current governance. @param governance The next governance address """ assert msg.sender == self.governance # dev: unauthorized self.pendingGovernance = governance @external def acceptGovernance(): """ @notice Completes the 2nd phase of the governance transfer. @dev Throws if the caller is not the pending caller. Emits a `NewGovernance` event. """ assert msg.sender == self.pendingGovernance # dev: unauthorized self.governance = msg.sender log NewGovernance(msg.sender) @view @external def latestRelease() -> String[28]: """ @notice Returns the api version of the latest release. @dev Throws if no releases are registered yet. @return The api version of the latest release. """ # NOTE: Throws if there has not been a release yet return Vault(self.releases[self.numReleases - 1]).apiVersion() # dev: no release @view @external def latestVault(token: address) -> address: """ @notice Returns the latest deployed vault for the given token. @dev Throws if no vaults are endorsed yet for the given token. @param token The token address to find the latest vault for. @return The address of the latest vault for the given token. """ # NOTE: Throws if there has not been a deployed vault yet for this token return self.vaults[token][self.numVaults[token] - 1] # dev: no vault for token @external def newRelease(vault: address): """ @notice Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas). @dev Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if the api version is the same as the previous release. Emits a `NewVault` event. @param vault The vault that will be used as the template contract for the next release. """ assert msg.sender == self.governance # dev: unauthorized # Check if the release is different from the current one # NOTE: This doesn't check for strict semver-style linearly increasing release versions release_id: uint256 = self.numReleases # Next id in series if release_id > 0: assert ( Vault(self.releases[release_id - 1]).apiVersion() != Vault(vault).apiVersion() ) # dev: same api version # else: we are adding the first release to the Registry! # Update latest release self.releases[release_id] = vault self.numReleases = release_id + 1 # Log the release for external listeners (e.g. Graph) log NewRelease(release_id, vault, Vault(vault).apiVersion()) @internal def _newProxyVault( token: address, governance: address, rewards: address, guardian: address, name: String[64], symbol: String[32], releaseTarget: uint256, ) -> address: release: address = self.releases[releaseTarget] assert release != ZERO_ADDRESS # dev: unknown release vault: address = create_forwarder_to(release) # NOTE: Must initialize the Vault atomically with deploying it Vault(vault).initialize(token, governance, rewards, name, symbol, guardian) return vault @internal def _registerVault(token: address, vault: address): # Check if there is an existing deployment for this token at the particular api version # NOTE: This doesn't check for strict semver-style linearly increasing release versions vault_id: uint256 = self.numVaults[token] # Next id in series if vault_id > 0: assert ( Vault(self.vaults[token][vault_id - 1]).apiVersion() != Vault(vault).apiVersion() ) # dev: same api version # else: we are adding a new token to the Registry # Update the latest deployment self.vaults[token][vault_id] = vault self.numVaults[token] = vault_id + 1 # Register tokens for endorsed vaults if not self.isRegistered[token]: self.isRegistered[token] = True self.tokens[self.numTokens] = token self.numTokens += 1 # Log the deployment for external listeners (e.g. Graph) log NewVault(token, vault_id, vault, Vault(vault).apiVersion()) @external def newVault( token: address, guardian: address, rewards: address, name: String[64], symbol: String[32], releaseDelta: uint256 = 0, # NOTE: Uses latest by default ) -> address: """ @notice Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token. @dev `governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event. @param token The token that may be deposited into the new Vault. @param guardian The address authorized for guardian interactions in the new Vault. @param rewards The address to use for collecting rewards in the new Vault @param name Specify a custom Vault name. Set to empty string for default choice. @param symbol Specify a custom Vault symbol name. Set to empty string for default choice. @param releaseDelta Specify the number of releases prior to the latest to use as a target. Default is latest. @return The address of the newly-deployed vault """ assert msg.sender == self.governance # dev: unauthorized # NOTE: Underflow if no releases created yet, or targeting prior to release history releaseTarget: uint256 = self.numReleases - 1 - releaseDelta # dev: no releases vault: address = self._newProxyVault(token, msg.sender, rewards, guardian, name, symbol, releaseTarget) self._registerVault(token, vault) return vault @external def newExperimentalVault( token: address, governance: address, guardian: address, rewards: address, name: String[64], symbol: String[32], releaseDelta: uint256 = 0, # NOTE: Uses latest by default ) -> address: """ @notice Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token. @dev Throws if no releases are registered yet. Emits a `NewExperimentalVault` event. @param token The token that may be deposited into the new Vault. @param governance The address authorized for governance interactions in the new Vault. @param guardian The address authorized for guardian interactions in the new Vault. @param rewards The address to use for collecting rewards in the new Vault @param name Specify a custom Vault name. Set to empty string for default choice. @param symbol Specify a custom Vault symbol name. Set to empty string for default choice. @param releaseDelta Specify the number of releases prior to the latest to use as a target. Default is latest. @return The address of the newly-deployed vault """ # NOTE: Underflow if no releases created yet, or targeting prior to release history releaseTarget: uint256 = self.numReleases - 1 - releaseDelta # dev: no releases # NOTE: Anyone can call this method, as a convenience to Strategist' experiments vault: address = self._newProxyVault(token, governance, rewards, guardian, name, symbol, releaseTarget) # NOTE: Not registered, so emit an "experiment" event here instead log NewExperimentalVault(token, msg.sender, vault, Vault(vault).apiVersion()) return vault @external def endorseVault(vault: address, releaseDelta: uint256 = 0): """ @notice Adds an existing vault to the list of "endorsed" vaults for that token. @dev `governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event. @param vault The vault that will be endorsed by the Registry. @param releaseDelta Specify the number of releases prior to the latest to use as a target. Default is latest. """ assert msg.sender == self.governance # dev: unauthorized assert Vault(vault).governance() == msg.sender # dev: not governed # NOTE: Underflow if no releases created yet, or targeting prior to release history releaseTarget: uint256 = self.numReleases - 1 - releaseDelta # dev: no releases api_version: String[28] = Vault(self.releases[releaseTarget]).apiVersion() assert Vault(vault).apiVersion() == api_version # dev: not target release # Add to the end of the list of vaults for token self._registerVault(Vault(vault).token(), vault) @external def setBanksy(tagger: address, allowed: bool = True): """ @notice Set the ability of a particular tagger to tag current vaults. @dev Throws if caller is not `self.governance`. @param tagger The address to approve or deny access to tagging. @param allowed Whether to approve or deny `tagger`. Defaults to approve. """ assert msg.sender == self.governance # dev: unauthorized self.banksy[tagger] = allowed @external def tagVault(vault: address, tag: String[120]): """ @notice Tag a Vault with a message. @dev Throws if caller is not `self.governance` or an approved tagger. Emits a `VaultTagged` event. @param vault The address to tag with the given `tag` message. @param tag The message to tag `vault` with. """ if msg.sender != self.governance: assert self.banksy[msg.sender] # dev: not banksy # else: we are governance, we can do anything banksy can do self.tags[vault] = tag log VaultTagged(vault, tag)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"NewRelease","inputs":[{"name":"release_id","type":"uint256","indexed":true},{"name":"template","type":"address","indexed":false},{"name":"api_version","type":"string","indexed":false}],"anonymous":false,"type":"event"},{"name":"NewVault","inputs":[{"name":"token","type":"address","indexed":true},{"name":"vault_id","type":"uint256","indexed":true},{"name":"vault","type":"address","indexed":false},{"name":"api_version","type":"string","indexed":false}],"anonymous":false,"type":"event"},{"name":"NewExperimentalVault","inputs":[{"name":"token","type":"address","indexed":true},{"name":"deployer","type":"address","indexed":true},{"name":"vault","type":"address","indexed":false},{"name":"api_version","type":"string","indexed":false}],"anonymous":false,"type":"event"},{"name":"NewGovernance","inputs":[{"name":"governance","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"VaultTagged","inputs":[{"name":"vault","type":"address","indexed":false},{"name":"tag","type":"string","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setGovernance","inputs":[{"name":"governance","type":"address"}],"outputs":[],"gas":36245},{"stateMutability":"nonpayable","type":"function","name":"acceptGovernance","inputs":[],"outputs":[],"gas":37517},{"stateMutability":"view","type":"function","name":"latestRelease","inputs":[],"outputs":[{"name":"","type":"string"}],"gas":6831},{"stateMutability":"view","type":"function","name":"latestVault","inputs":[{"name":"token","type":"address"}],"outputs":[{"name":"","type":"address"}],"gas":2587},{"stateMutability":"nonpayable","type":"function","name":"newRelease","inputs":[{"name":"vault","type":"address"}],"outputs":[],"gas":82588},{"stateMutability":"nonpayable","type":"function","name":"newVault","inputs":[{"name":"token","type":"address"},{"name":"guardian","type":"address"},{"name":"rewards","type":"address"},{"name":"name","type":"string"},{"name":"symbol","type":"string"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"newVault","inputs":[{"name":"token","type":"address"},{"name":"guardian","type":"address"},{"name":"rewards","type":"address"},{"name":"name","type":"string"},{"name":"symbol","type":"string"},{"name":"releaseDelta","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"newExperimentalVault","inputs":[{"name":"token","type":"address"},{"name":"governance","type":"address"},{"name":"guardian","type":"address"},{"name":"rewards","type":"address"},{"name":"name","type":"string"},{"name":"symbol","type":"string"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"newExperimentalVault","inputs":[{"name":"token","type":"address"},{"name":"governance","type":"address"},{"name":"guardian","type":"address"},{"name":"rewards","type":"address"},{"name":"name","type":"string"},{"name":"symbol","type":"string"},{"name":"releaseDelta","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"endorseVault","inputs":[{"name":"vault","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"endorseVault","inputs":[{"name":"vault","type":"address"},{"name":"releaseDelta","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setBanksy","inputs":[{"name":"tagger","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setBanksy","inputs":[{"name":"tagger","type":"address"},{"name":"allowed","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"tagVault","inputs":[{"name":"vault","type":"address"},{"name":"tag","type":"string"}],"outputs":[],"gas":186064},{"stateMutability":"view","type":"function","name":"numReleases","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":1388},{"stateMutability":"view","type":"function","name":"releases","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":1533},{"stateMutability":"view","type":"function","name":"numVaults","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":1663},{"stateMutability":"view","type":"function","name":"vaults","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":1808},{"stateMutability":"view","type":"function","name":"tokens","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}],"gas":1623},{"stateMutability":"view","type":"function","name":"numTokens","inputs":[],"outputs":[{"name":"","type":"uint256"}],"gas":1538},{"stateMutability":"view","type":"function","name":"isRegistered","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":1783},{"stateMutability":"view","type":"function","name":"governance","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":1598},{"stateMutability":"view","type":"function","name":"pendingGovernance","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":1628},{"stateMutability":"view","type":"function","name":"tags","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"string"}],"gas":10229},{"stateMutability":"view","type":"function","name":"banksy","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}],"gas":1903}]
Contract Creation Code
336007556115eb56600436101561000d576110f9565b600035601c52600051341561002157600080fd5b63ab033ea98114156100535760043560a01c1561003d57600080fd5b600754331461004b57600080fd5b600435600855005b63238efcbc81141561009f57600854331461006d57600080fd5b3360075533610140527f4f386975ea1c2f7cf1845b08bee00626fbb624ecad16254d63d9bb9ba86526de6020610140a1005b637be0ca5e8114156101735760606101a0600463258294106101405261015c60016000546001808210156100d257600080fd5b8082039050905060e05260c052604060c020545afa6100f057600080fd5b603f3d116100fd57600080fd5b601d6101a06101a05101511061011257600080fd5b6000506101c08051602001806102408284600060045af161013257600080fd5b5050610240518061026001818260206001820306601f82010390500336823750506020610220526040610240510160206001820306601f8201039050610220f35b63e177dc708114156101db5760043560a01c1561018f57600080fd5b600360043560e05260c052604060c020600260043560e05260c052604060c020546001808210156101bf57600080fd5b8082039050905060e05260c052604060c0205460005260206000f35b6333990d4b8114156104315760043560a01c156101f757600080fd5b600754331461020557600080fd5b6000546101405260006101405111156102e1576060610400600463258294106103a0526103bc6004355afa61023957600080fd5b603f3d1161024657600080fd5b601d6104006104005101511061025b57600080fd5b600050610420602001516060610340600463258294106102e0526102fc60016101405160018082101561028d57600080fd5b8082039050905060e05260c052604060c020545afa6102ab57600080fd5b603f3d116102b857600080fd5b601d610340610340510151106102cd57600080fd5b60005061036060200151186102e157600080fd5b60043560016101405160e05260c052604060c0205561014051600181818301101561030b57600080fd5b8082019050905060005560606101c0600463258294106101605261017c6004355afa61033657600080fd5b603f3d1161034357600080fd5b601d6101c06101c05101511061035857600080fd5b6000506101e08051602001806102208284600060045af161037857600080fd5b50506004356102c052604061028052610280516102e052610220805160200180610280516102c0018284600060045af16103b157600080fd5b5050610280516102c00151806020610280516102c0010101818260206001820306601f82010390500336823750506020610280516102c0015160206001820306601f820103905061028051010161028052610140517fa6fbd216b6734f34092f1be6b7247e1551a6d4f2d5000c53721cfdc119a5b7cf610280516102c0a2005b63108ca11e81141561044857600061022052610469565b63b0b40fce81141561046457602060a461022037600050610469565b6106f4565b60043560a01c1561047957600080fd5b60243560a01c1561048957600080fd5b60443560a01c1561049957600080fd5b60606064356004016101403760406064356004013511156104b957600080fd5b60406084356004016101c03760206084356004013511156104d957600080fd5b60075433146104e757600080fd5b6000546001808210156104f957600080fd5b80820390509050610220518082101561051157600080fd5b80820390509050610240526101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605160e060043561028052336102a0526044356102c0526024356102e05280610300526101408080516020018084610280018284600060045af161058557600080fd5b50508051820160206001820306601f820103905060200191505080610320526101c08080516020018084610280018284600060045af16105c457600080fd5b50505061024051610340525061032051806102800180518060206001820306601f82010390508201610440525050505b6103606104405110156106065761061b565b610440515160206104405103610440526105f4565b6103405161032051610300516102e0516102c0516102a05161028051600658016110ff565b61046052610260526102405261022052610200526101e0526101c0526101a05261018052610160526101405261046051610260526101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605160043561028052610260516102a0526102a0516102805160065801611302565b610260526102405261022052610200526101e0526101c0526101a0526101805261016052610140526000506102605160005260206000f35b635b73aa0d81141561070b5760006102205261072c565b635bd4b0f281141561072757602060c46102203760005061072c565b610a64565b60043560a01c1561073c57600080fd5b60243560a01c1561074c57600080fd5b60443560a01c1561075c57600080fd5b60643560a01c1561076c57600080fd5b606060843560040161014037604060843560040135111561078c57600080fd5b604060a4356004016101c037602060a4356004013511156107ac57600080fd5b6000546001808210156107be57600080fd5b8082039050905061022051808210156107d657600080fd5b80820390509050610240526101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605160e0600435610280526024356102a0526064356102c0526044356102e05280610300526101408080516020018084610280018284600060045af161084c57600080fd5b50508051820160206001820306601f820103905060200191505080610320526101c08080516020018084610280018284600060045af161088b57600080fd5b50505061024051610340525061032051806102800180518060206001820306601f82010390508201610440525050505b6103606104405110156108cd576108e2565b610440515160206104405103610440526108bb565b6103405161032051610300516102e0516102c0516102a05161028051600658016110ff565b61046052610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052610460516102605260606102e0600463258294106102805261029c610260515afa61095d57600080fd5b603f3d1161096a57600080fd5b601d6102e06102e05101511061097f57600080fd5b6000506103008051602001806103408284600060045af161099f57600080fd5b5050610260516103e05260406103a0526103a051610400526103408051602001806103a0516103e0018284600060045af16109d957600080fd5b50506103a0516103e001518060206103a0516103e0010101818260206001820306601f820103905003368237505060206103a0516103e0015160206001820306601f82010390506103a05101016103a052336004357f57a9cdc2a05e05f66e76769bdbe88e21ec45d9ee0f97d4cb60395d4c75dcbcda6103a0516103e0a36102605160005260206000f35b6329b2e0c6811415610a7b57600061014052610a9c565b63b366a35c811415610a97576020602461014037600050610a9c565b610cac565b60043560a01c15610aac57600080fd5b6007543314610aba57600080fd5b3360206101c06004635aa6e6756101605261017c6004355afa610adc57600080fd5b601f3d11610ae957600080fd5b6000506101c05114610afa57600080fd5b600054600180821015610b0c57600080fd5b808203905090506101405180821015610b2457600080fd5b80820390509050610160526060610240600463258294106101e0526101fc60016101605160e05260c052604060c020545afa610b5f57600080fd5b603f3d11610b6c57600080fd5b601d61024061024051015110610b8157600080fd5b6000506102608051602001806101808284600060045af1610ba157600080fd5b50506101a0516060610300600463258294106102a0526102bc6004355afa610bc857600080fd5b603f3d11610bd557600080fd5b601d61030061030051015110610bea57600080fd5b6000506103206020015114610bfe57600080fd5b6020610240600463fc0c546a6101e0526101fc6004355afa610c1f57600080fd5b601f3d11610c2c57600080fd5b60005061024051610260526101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605161026051610280526004356102a0526102a0516102805160065801611302565b610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052600050005b632cad8f9f811415610cc357600161014052610cf4565b635e05f6af811415610cef5760243560011c15610cdf57600080fd5b6020602461014037600050610cf4565b610d29565b60043560a01c15610d0457600080fd5b6007543314610d1257600080fd5b61014051600a60043560e05260c052604060c02055005b6360bd68f8811415610ea25760043560a01c15610d4557600080fd5b6098602435600401610140376078602435600401351115610d6557600080fd5b600754331815610d8757600a3360e05260c052604060c02054610d8757600080fd5b61014080600960043560e05260c052604060c02060c052602060c020602082510161012060006005818352015b82610120516020021115610dc757610de9565b61012051602002850151610120518501555b8151600101808352811415610db4575b50505050505060043561024052604061020052610200516102605261014080516020018061020051610240018284600060045af1610e2657600080fd5b505061020051610240015180602061020051610240010101818260206001820306601f8201039050033682375050602061020051610240015160206001820306601f8201039050610200510101610200527f07bd58794c2ca0ae152f7719eb5f02c654476de972cadec0e8191ae8be42096d61020051610240a1005b6356e0a94b811415610eba5760005460005260206000f35b63b6a9f40f811415610ee057600160043560e05260c052604060c0205460005260206000f35b63f9c7bba5811415610f165760043560a01c15610efc57600080fd5b600260043560e05260c052604060c0205460005260206000f35b637bbfc69e811415610f5a5760043560a01c15610f3257600080fd5b600360043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b634f64b2be811415610f8057600460043560e05260c052604060c0205460005260206000f35b638e499bcf811415610f985760055460005260206000f35b63c3c5a547811415610fce5760043560a01c15610fb457600080fd5b600660043560e05260c052604060c0205460005260206000f35b635aa6e675811415610fe65760075460005260206000f35b63f39c38a0811415610ffe5760085460005260206000f35b6358b8f8428114156110c15760043560a01c1561101a57600080fd5b600960043560e05260c052604060c0208060c052602060c020610180602082540161012060006005818352015b8261012051602002111561105a5761107c565b61012051850154610120516020028501525b8151600101808352811415611047575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f35b63ee711ed58114156110f75760043560a01c156110dd57600080fd5b600a60043560e05260c052604060c0205460005260206000f35b505b60006000fd5b610220526101405261016052610180526101a0526101c0526101e05261020052610240526000610320525b6102405160206001820306601f82010390506103205110151561114c57611165565b610320516102600152610320516020016103205261112a565b6102c0526000610320525b6102c05160206001820306601f820103905061032051101515611192576111ab565b610320516102e001526103205160200161032052611170565b60005060016102005160e05260c052604060c0205461034052600061034051186111d457600080fd5b7f602d3d8160093d39f3363d3d373d3d3d363d7300000000000000000000000000610380526103405160601b610393527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006103a75260366103806000f061036052610360513b61124357600080fd5b6000600061016460c063a5b81fdf61038052610140516103a052610160516103c052610180516103e052806104005261024080805160200180846103a0018284600060045af161129257600080fd5b50508051820160206001820306601f820103905060200191505080610420526102c080805160200180846103a0018284600060045af16112d157600080fd5b5050506101a0516104405261039c90506000610360515af16112f257600080fd5b6103605160005260005161022051565b61018052610140526101605260026101405160e05260c052604060c020546101a05260006101a0511115611409576060610460600463258294106104005261041c610160515afa61135257600080fd5b603f3d1161135f57600080fd5b601d6104606104605101511061137457600080fd5b6000506104806020015160606103a0600463258294106103405261035c60036101405160e05260c052604060c0206101a0516001808210156113b557600080fd5b8082039050905060e05260c052604060c020545afa6113d357600080fd5b603f3d116113e057600080fd5b601d6103a06103a0510151106113f557600080fd5b6000506103c0602001511861140957600080fd5b6101605160036101405160e05260c052604060c0206101a05160e05260c052604060c020556101a051600181818301101561144357600080fd5b8082019050905060026101405160e05260c052604060c0205560066101405160e05260c052604060c0205415156114bd57600160066101405160e05260c052604060c0205561014051600460055460e05260c052604060c020556005805460018181830110156114b257600080fd5b808201905090508155505b6060610220600463258294106101c0526101dc610160515afa6114df57600080fd5b603f3d116114ec57600080fd5b601d6102206102205101511061150157600080fd5b6000506102408051602001806102808284600060045af161152157600080fd5b5050610160516103205260406102e0526102e051610340526102808051602001806102e051610320018284600060045af161155b57600080fd5b50506102e05161032001518060206102e051610320010101818260206001820306601f820103905003368237505060206102e051610320015160206001820306601f82010390506102e05101016102e0526101a051610140517fce089905ba4a4d622553bcb5646fd23e895c256f0376eee04e99e61cec1dc7e86102e051610320a361018051565b6100086115eb036100086000396100086115eb036000f3
Deployed Bytecode
0x600436101561000d576110f9565b600035601c52600051341561002157600080fd5b63ab033ea98114156100535760043560a01c1561003d57600080fd5b600754331461004b57600080fd5b600435600855005b63238efcbc81141561009f57600854331461006d57600080fd5b3360075533610140527f4f386975ea1c2f7cf1845b08bee00626fbb624ecad16254d63d9bb9ba86526de6020610140a1005b637be0ca5e8114156101735760606101a0600463258294106101405261015c60016000546001808210156100d257600080fd5b8082039050905060e05260c052604060c020545afa6100f057600080fd5b603f3d116100fd57600080fd5b601d6101a06101a05101511061011257600080fd5b6000506101c08051602001806102408284600060045af161013257600080fd5b5050610240518061026001818260206001820306601f82010390500336823750506020610220526040610240510160206001820306601f8201039050610220f35b63e177dc708114156101db5760043560a01c1561018f57600080fd5b600360043560e05260c052604060c020600260043560e05260c052604060c020546001808210156101bf57600080fd5b8082039050905060e05260c052604060c0205460005260206000f35b6333990d4b8114156104315760043560a01c156101f757600080fd5b600754331461020557600080fd5b6000546101405260006101405111156102e1576060610400600463258294106103a0526103bc6004355afa61023957600080fd5b603f3d1161024657600080fd5b601d6104006104005101511061025b57600080fd5b600050610420602001516060610340600463258294106102e0526102fc60016101405160018082101561028d57600080fd5b8082039050905060e05260c052604060c020545afa6102ab57600080fd5b603f3d116102b857600080fd5b601d610340610340510151106102cd57600080fd5b60005061036060200151186102e157600080fd5b60043560016101405160e05260c052604060c0205561014051600181818301101561030b57600080fd5b8082019050905060005560606101c0600463258294106101605261017c6004355afa61033657600080fd5b603f3d1161034357600080fd5b601d6101c06101c05101511061035857600080fd5b6000506101e08051602001806102208284600060045af161037857600080fd5b50506004356102c052604061028052610280516102e052610220805160200180610280516102c0018284600060045af16103b157600080fd5b5050610280516102c00151806020610280516102c0010101818260206001820306601f82010390500336823750506020610280516102c0015160206001820306601f820103905061028051010161028052610140517fa6fbd216b6734f34092f1be6b7247e1551a6d4f2d5000c53721cfdc119a5b7cf610280516102c0a2005b63108ca11e81141561044857600061022052610469565b63b0b40fce81141561046457602060a461022037600050610469565b6106f4565b60043560a01c1561047957600080fd5b60243560a01c1561048957600080fd5b60443560a01c1561049957600080fd5b60606064356004016101403760406064356004013511156104b957600080fd5b60406084356004016101c03760206084356004013511156104d957600080fd5b60075433146104e757600080fd5b6000546001808210156104f957600080fd5b80820390509050610220518082101561051157600080fd5b80820390509050610240526101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605160e060043561028052336102a0526044356102c0526024356102e05280610300526101408080516020018084610280018284600060045af161058557600080fd5b50508051820160206001820306601f820103905060200191505080610320526101c08080516020018084610280018284600060045af16105c457600080fd5b50505061024051610340525061032051806102800180518060206001820306601f82010390508201610440525050505b6103606104405110156106065761061b565b610440515160206104405103610440526105f4565b6103405161032051610300516102e0516102c0516102a05161028051600658016110ff565b61046052610260526102405261022052610200526101e0526101c0526101a05261018052610160526101405261046051610260526101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605160043561028052610260516102a0526102a0516102805160065801611302565b610260526102405261022052610200526101e0526101c0526101a0526101805261016052610140526000506102605160005260206000f35b635b73aa0d81141561070b5760006102205261072c565b635bd4b0f281141561072757602060c46102203760005061072c565b610a64565b60043560a01c1561073c57600080fd5b60243560a01c1561074c57600080fd5b60443560a01c1561075c57600080fd5b60643560a01c1561076c57600080fd5b606060843560040161014037604060843560040135111561078c57600080fd5b604060a4356004016101c037602060a4356004013511156107ac57600080fd5b6000546001808210156107be57600080fd5b8082039050905061022051808210156107d657600080fd5b80820390509050610240526101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605160e0600435610280526024356102a0526064356102c0526044356102e05280610300526101408080516020018084610280018284600060045af161084c57600080fd5b50508051820160206001820306601f820103905060200191505080610320526101c08080516020018084610280018284600060045af161088b57600080fd5b50505061024051610340525061032051806102800180518060206001820306601f82010390508201610440525050505b6103606104405110156108cd576108e2565b610440515160206104405103610440526108bb565b6103405161032051610300516102e0516102c0516102a05161028051600658016110ff565b61046052610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052610460516102605260606102e0600463258294106102805261029c610260515afa61095d57600080fd5b603f3d1161096a57600080fd5b601d6102e06102e05101511061097f57600080fd5b6000506103008051602001806103408284600060045af161099f57600080fd5b5050610260516103e05260406103a0526103a051610400526103408051602001806103a0516103e0018284600060045af16109d957600080fd5b50506103a0516103e001518060206103a0516103e0010101818260206001820306601f820103905003368237505060206103a0516103e0015160206001820306601f82010390506103a05101016103a052336004357f57a9cdc2a05e05f66e76769bdbe88e21ec45d9ee0f97d4cb60395d4c75dcbcda6103a0516103e0a36102605160005260206000f35b6329b2e0c6811415610a7b57600061014052610a9c565b63b366a35c811415610a97576020602461014037600050610a9c565b610cac565b60043560a01c15610aac57600080fd5b6007543314610aba57600080fd5b3360206101c06004635aa6e6756101605261017c6004355afa610adc57600080fd5b601f3d11610ae957600080fd5b6000506101c05114610afa57600080fd5b600054600180821015610b0c57600080fd5b808203905090506101405180821015610b2457600080fd5b80820390509050610160526060610240600463258294106101e0526101fc60016101605160e05260c052604060c020545afa610b5f57600080fd5b603f3d11610b6c57600080fd5b601d61024061024051015110610b8157600080fd5b6000506102608051602001806101808284600060045af1610ba157600080fd5b50506101a0516060610300600463258294106102a0526102bc6004355afa610bc857600080fd5b603f3d11610bd557600080fd5b601d61030061030051015110610bea57600080fd5b6000506103206020015114610bfe57600080fd5b6020610240600463fc0c546a6101e0526101fc6004355afa610c1f57600080fd5b601f3d11610c2c57600080fd5b60005061024051610260526101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605161026051610280526004356102a0526102a0516102805160065801611302565b610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052600050005b632cad8f9f811415610cc357600161014052610cf4565b635e05f6af811415610cef5760243560011c15610cdf57600080fd5b6020602461014037600050610cf4565b610d29565b60043560a01c15610d0457600080fd5b6007543314610d1257600080fd5b61014051600a60043560e05260c052604060c02055005b6360bd68f8811415610ea25760043560a01c15610d4557600080fd5b6098602435600401610140376078602435600401351115610d6557600080fd5b600754331815610d8757600a3360e05260c052604060c02054610d8757600080fd5b61014080600960043560e05260c052604060c02060c052602060c020602082510161012060006005818352015b82610120516020021115610dc757610de9565b61012051602002850151610120518501555b8151600101808352811415610db4575b50505050505060043561024052604061020052610200516102605261014080516020018061020051610240018284600060045af1610e2657600080fd5b505061020051610240015180602061020051610240010101818260206001820306601f8201039050033682375050602061020051610240015160206001820306601f8201039050610200510101610200527f07bd58794c2ca0ae152f7719eb5f02c654476de972cadec0e8191ae8be42096d61020051610240a1005b6356e0a94b811415610eba5760005460005260206000f35b63b6a9f40f811415610ee057600160043560e05260c052604060c0205460005260206000f35b63f9c7bba5811415610f165760043560a01c15610efc57600080fd5b600260043560e05260c052604060c0205460005260206000f35b637bbfc69e811415610f5a5760043560a01c15610f3257600080fd5b600360043560e05260c052604060c02060243560e05260c052604060c0205460005260206000f35b634f64b2be811415610f8057600460043560e05260c052604060c0205460005260206000f35b638e499bcf811415610f985760055460005260206000f35b63c3c5a547811415610fce5760043560a01c15610fb457600080fd5b600660043560e05260c052604060c0205460005260206000f35b635aa6e675811415610fe65760075460005260206000f35b63f39c38a0811415610ffe5760085460005260206000f35b6358b8f8428114156110c15760043560a01c1561101a57600080fd5b600960043560e05260c052604060c0208060c052602060c020610180602082540161012060006005818352015b8261012051602002111561105a5761107c565b61012051850154610120516020028501525b8151600101808352811415611047575b50505050505061018051806101a001818260206001820306601f82010390500336823750506020610160526040610180510160206001820306601f8201039050610160f35b63ee711ed58114156110f75760043560a01c156110dd57600080fd5b600a60043560e05260c052604060c0205460005260206000f35b505b60006000fd5b610220526101405261016052610180526101a0526101c0526101e05261020052610240526000610320525b6102405160206001820306601f82010390506103205110151561114c57611165565b610320516102600152610320516020016103205261112a565b6102c0526000610320525b6102c05160206001820306601f820103905061032051101515611192576111ab565b610320516102e001526103205160200161032052611170565b60005060016102005160e05260c052604060c0205461034052600061034051186111d457600080fd5b7f602d3d8160093d39f3363d3d373d3d3d363d7300000000000000000000000000610380526103405160601b610393527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006103a75260366103806000f061036052610360513b61124357600080fd5b6000600061016460c063a5b81fdf61038052610140516103a052610160516103c052610180516103e052806104005261024080805160200180846103a0018284600060045af161129257600080fd5b50508051820160206001820306601f820103905060200191505080610420526102c080805160200180846103a0018284600060045af16112d157600080fd5b5050506101a0516104405261039c90506000610360515af16112f257600080fd5b6103605160005260005161022051565b61018052610140526101605260026101405160e05260c052604060c020546101a05260006101a0511115611409576060610460600463258294106104005261041c610160515afa61135257600080fd5b603f3d1161135f57600080fd5b601d6104606104605101511061137457600080fd5b6000506104806020015160606103a0600463258294106103405261035c60036101405160e05260c052604060c0206101a0516001808210156113b557600080fd5b8082039050905060e05260c052604060c020545afa6113d357600080fd5b603f3d116113e057600080fd5b601d6103a06103a0510151106113f557600080fd5b6000506103c0602001511861140957600080fd5b6101605160036101405160e05260c052604060c0206101a05160e05260c052604060c020556101a051600181818301101561144357600080fd5b8082019050905060026101405160e05260c052604060c0205560066101405160e05260c052604060c0205415156114bd57600160066101405160e05260c052604060c0205561014051600460055460e05260c052604060c020556005805460018181830110156114b257600080fd5b808201905090508155505b6060610220600463258294106101c0526101dc610160515afa6114df57600080fd5b603f3d116114ec57600080fd5b601d6102206102205101511061150157600080fd5b6000506102408051602001806102808284600060045af161152157600080fd5b5050610160516103205260406102e0526102e051610340526102808051602001806102e051610320018284600060045af161155b57600080fd5b50506102e05161032001518060206102e051610320010101818260206001820306601f820103905003368237505060206102e051610320015160206001820306601f82010390506102e05101016102e0526101a051610140517fce089905ba4a4d622553bcb5646fd23e895c256f0376eee04e99e61cec1dc7e86102e051610320a36101805156
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.