More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Remove Liquidity | 8317818 | 2030 days ago | IN | 0 ETH | 0.00056949 | ||||
Transfer | 8317793 | 2030 days ago | IN | 0 ETH | 0.00057004 | ||||
Transfer | 8317778 | 2030 days ago | IN | 0 ETH | 0.00073644 | ||||
Remove Liquidity | 8317638 | 2030 days ago | IN | 0 ETH | 0.00027443 | ||||
Add Liquidity | 8317622 | 2030 days ago | IN | 0 ETH | 0.00114686 | ||||
Update Output To... | 8277700 | 2036 days ago | IN | 0 ETH | 0.0001193 | ||||
Update Output To... | 8277699 | 2036 days ago | IN | 0 ETH | 0.00013569 | ||||
Update Input Tok... | 8277694 | 2036 days ago | IN | 0 ETH | 0.00012613 | ||||
Update Input Tok... | 8277692 | 2036 days ago | IN | 0 ETH | 0.00013698 | ||||
Transfer Ownersh... | 8277526 | 2036 days ago | IN | 0 ETH | 0.00030664 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Vyper_contract
Compiler Version
vyper:0.1.0b9
Contract Source Code (Vyper language format)
contract ERC20(): def transfer(_to: address, _value: uint256) -> bool: modifying def transferFrom(_from: address, _to: address, _value: uint256) -> bool: modifying def balanceOf(_owner: address) -> uint256: constant def allowance(_owner: address, _spender: address) -> uint256: constant def decimals() -> uint256: constant contract PriceOracle(): def poolSize(contract_address: address) -> uint256: constant def normalized_token_prices(token_address: address) -> uint256: constant TOKEN_PRICE_MULTIPLIER: constant(uint256) = 100000000 FEE_MULTIPLIER: constant(uint256) = 100000 # ERC20 events Transfer: event({_from: indexed(address), _to: indexed(address), _value: uint256}) Approval: event({_owner: indexed(address), _spender: indexed(address), _value: uint256}) OwnershipTransferred: event({previous_owner: indexed(address), new_owner: indexed(address)}) LiquidityAdded: event({provider: indexed(address), amount: indexed(uint256)}) LiquidityRemoved: event({provider: indexed(address), amount: indexed(uint256)}) Trade: event({input_token: indexed(address), output_token: indexed(address), input_amount: indexed(uint256)}) PermissionUpdated: event({name: indexed(string[32]), value: indexed(bool)}) FeeUpdated: event({name: indexed(string[32]), value: indexed(decimal)}) PriceOracleAddressUpdated: event({new_address: indexed(address)}) Payment: event({amount: uint256(wei), _from: indexed(address)}) name: public(string[32]) # Stablecoinswap owner: public(address) # contract owner decimals: public(uint256) # 18 totalSupply: public(uint256) # total number of contract tokens in existence balanceOf: public(map(address, uint256)) # balance of an address allowance: public(map(address, map(address, uint256))) # allowance of one address on another inputTokens: public(map(address, bool)) # addresses of the ERC20 tokens allowed to transfer into this contract outputTokens: public(map(address, bool)) # addresses of the ERC20 tokens allowed to transfer out of this contract permissions: public(map(string[32], bool)) # pause / resume contract functions feesInt: map(string[32], uint256) # trade / pool fees multiplied by FEE_MULTIPLIER priceOracleAddress: public(address) # address of price oracle @public def __init__(token_addresses: address[3], price_oracle_addr: address): assert price_oracle_addr != ZERO_ADDRESS self.owner = msg.sender self.name = "Stablecoinswap" self.decimals = 18 self.permissions["tradingAllowed"] = True self.permissions["liquidityAddingAllowed"] = True self.permissions["liquidityRemovingAllowed"] = True for i in range(3): assert token_addresses[i] != ZERO_ADDRESS self.inputTokens[token_addresses[i]] = True self.outputTokens[token_addresses[i]] = True self.feesInt['tradeFee'] = 200 self.feesInt['ownerFee'] = 100 self.priceOracleAddress = price_oracle_addr @private @constant def tokenPrice(token_address: address) -> uint256: token_price: uint256 = PriceOracle(self.priceOracleAddress).normalized_token_prices(token_address) assert token_price > 0 return token_price # Deposit erc20 token @public def addLiquidity(token_address: address, erc20_token_amount: uint256, deadline: timestamp) -> bool: assert self.inputTokens[token_address] assert deadline > block.timestamp and erc20_token_amount > 0 assert self.permissions["liquidityAddingAllowed"] assert ERC20(token_address).balanceOf(msg.sender) >= erc20_token_amount assert ERC20(token_address).allowance(msg.sender, self) >= erc20_token_amount token_price: uint256 = self.tokenPrice(token_address) # It's better to divide at the very end for a higher precision new_liquidity: uint256 = token_price * erc20_token_amount / TOKEN_PRICE_MULTIPLIER if self.totalSupply > 0: new_liquidity = new_liquidity * self.totalSupply / PriceOracle(self.priceOracleAddress).poolSize(self) else: assert new_liquidity >= 1000000000 self.balanceOf[msg.sender] += new_liquidity self.totalSupply += new_liquidity # Can't assert the result directly: https://github.com/ethereum/vyper/issues/1468 transfer_from_result: bool = ERC20(token_address).transferFrom(msg.sender, self, erc20_token_amount) assert transfer_from_result log.LiquidityAdded(msg.sender, new_liquidity) return True # Withdraw erc20 token @public def removeLiquidity(token_address: address, stableswap_token_amount: uint256, deadline: timestamp) -> bool: assert self.outputTokens[token_address] assert stableswap_token_amount > 0 and deadline > block.timestamp assert self.balanceOf[msg.sender] >= stableswap_token_amount assert self.permissions["liquidityRemovingAllowed"] assert self.totalSupply > 0 token_price: uint256 = self.tokenPrice(token_address) pool_size: uint256 = PriceOracle(self.priceOracleAddress).poolSize(self) # erc20_token_amount = stableswapt_token_amount * pool_size / totalSupply / token_price * TOKEN_PRICE_MULTIPLIER # It's better to divide at the very end for a higher precision erc20_token_amount: uint256 = stableswap_token_amount * pool_size * TOKEN_PRICE_MULTIPLIER / token_price / self.totalSupply ownerFee: uint256 = 0 if msg.sender != self.owner: ownerFee = stableswap_token_amount * self.feesInt['ownerFee'] / FEE_MULTIPLIER multiplier_after_fees: uint256 = FEE_MULTIPLIER - self.feesInt['ownerFee'] - self.feesInt['tradeFee'] erc20_token_amount = erc20_token_amount * multiplier_after_fees / FEE_MULTIPLIER self.balanceOf[msg.sender] -= stableswap_token_amount self.balanceOf[self.owner] += ownerFee self.totalSupply -= stableswap_token_amount - ownerFee # Can't assert the result directly: https://github.com/ethereum/vyper/issues/1468 transfer_result: bool = ERC20(token_address).transfer(msg.sender, erc20_token_amount) assert transfer_result log.LiquidityRemoved(msg.sender, stableswap_token_amount) return True # Trade one erc20 token for another @public def swapTokens(input_token: address, output_token: address, erc20_input_amount: uint256, erc20_min_output_amount: uint256, deadline: timestamp) -> bool: assert self.inputTokens[input_token] and self.outputTokens[output_token] assert erc20_input_amount > 0 and erc20_min_output_amount > 0 assert deadline > block.timestamp assert self.permissions["tradingAllowed"] assert ERC20(input_token).balanceOf(msg.sender) >= erc20_input_amount assert ERC20(input_token).allowance(msg.sender, self) >= erc20_input_amount input_token_price: uint256 = self.tokenPrice(input_token) output_token_price: uint256 = self.tokenPrice(output_token) # contract_token_amount is an equivalent of an input multiplied by TOKEN_PRICE_MULTIPLIER contract_token_amount: uint256 = erc20_input_amount * input_token_price tradeFee: uint256 = contract_token_amount * self.feesInt['tradeFee'] / FEE_MULTIPLIER ownerFee: uint256 = contract_token_amount * self.feesInt['ownerFee'] / FEE_MULTIPLIER contract_token_amount -= tradeFee + ownerFee tradeFee /= TOKEN_PRICE_MULTIPLIER ownerFee /= TOKEN_PRICE_MULTIPLIER pool_size_after_swap: uint256 = PriceOracle(self.priceOracleAddress).poolSize(self) + tradeFee new_owner_shares: uint256 = self.totalSupply * ownerFee / pool_size_after_swap erc20_output_amount: uint256 = contract_token_amount / output_token_price assert erc20_output_amount >= erc20_min_output_amount self.balanceOf[self.owner] += new_owner_shares self.totalSupply += new_owner_shares # Can't assert the result directly: https://github.com/ethereum/vyper/issues/1468 transfer_from_result: bool = ERC20(input_token).transferFrom(msg.sender, self, erc20_input_amount) assert transfer_from_result transfer_result: bool = ERC20(output_token).transfer(msg.sender, erc20_output_amount) assert transfer_result log.Trade(input_token, output_token, erc20_input_amount) return True @public def updateInputToken(token_address: address, allowed: bool) -> bool: assert msg.sender == self.owner assert not self.inputTokens[token_address] == allowed self.inputTokens[token_address] = allowed return True @public def updateOutputToken(token_address: address, allowed: bool) -> bool: assert msg.sender == self.owner assert not self.outputTokens[token_address] == allowed self.outputTokens[token_address] = allowed return True @public def updatePermission(permission_name: string[32], value: bool) -> bool: assert msg.sender == self.owner self.permissions[permission_name] = value log.PermissionUpdated(permission_name, value) return True # Return share of total liquidity belonging to the user @public @constant def poolOwnership(user_address: address) -> decimal: user_balance: decimal = convert(self.balanceOf[user_address], decimal) total_liquidity: decimal = convert(self.totalSupply, decimal) share: decimal = user_balance / total_liquidity return share @public def transferOwnership(new_owner: address) -> bool: assert new_owner != ZERO_ADDRESS assert msg.sender == self.owner self.owner = new_owner log.OwnershipTransferred(self.owner, new_owner) return True @public def updateFee(fee_name: string[32], value: decimal) -> bool: assert msg.sender == self.owner self.feesInt[fee_name] = convert(floor(value * convert(FEE_MULTIPLIER, decimal)), uint256) log.FeeUpdated(fee_name, value) return True @public @constant def fees(fee_name: string[32]) -> decimal: return convert(self.feesInt[fee_name], decimal) / convert(FEE_MULTIPLIER, decimal) @public def updatePriceOracleAddress(new_address: address) -> bool: assert msg.sender == self.owner self.priceOracleAddress = new_address log.PriceOracleAddressUpdated(new_address) return True # ERC-20 functions @public def transfer(_to: address, _value: uint256) -> bool: self.balanceOf[msg.sender] -= _value self.balanceOf[_to] += _value log.Transfer(msg.sender, _to, _value) return True @public def transferFrom(_from: address, _to: address, _value: uint256) -> bool: self.balanceOf[_from] -= _value self.balanceOf[_to] += _value self.allowance[_from][msg.sender] -= _value log.Transfer(_from, _to, _value) return True @public def approve(_spender: address, _value: uint256) -> bool: self.allowance[msg.sender][_spender] = _value log.Approval(msg.sender, msg.sender, _value) return True
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"name":"Transfer","inputs":[{"type":"address","name":"_from","indexed":true},{"type":"address","name":"_to","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false,"type":"event"},{"name":"Approval","inputs":[{"type":"address","name":"_owner","indexed":true},{"type":"address","name":"_spender","indexed":true},{"type":"uint256","name":"_value","indexed":false}],"anonymous":false,"type":"event"},{"name":"OwnershipTransferred","inputs":[{"type":"address","name":"previous_owner","indexed":true},{"type":"address","name":"new_owner","indexed":true}],"anonymous":false,"type":"event"},{"name":"LiquidityAdded","inputs":[{"type":"address","name":"provider","indexed":true},{"type":"uint256","name":"amount","indexed":true}],"anonymous":false,"type":"event"},{"name":"LiquidityRemoved","inputs":[{"type":"address","name":"provider","indexed":true},{"type":"uint256","name":"amount","indexed":true}],"anonymous":false,"type":"event"},{"name":"Trade","inputs":[{"type":"address","name":"input_token","indexed":true},{"type":"address","name":"output_token","indexed":true},{"type":"uint256","name":"input_amount","indexed":true}],"anonymous":false,"type":"event"},{"name":"PermissionUpdated","inputs":[{"type":"string32","name":"name","indexed":true},{"type":"bool","name":"value","indexed":true}],"anonymous":false,"type":"event"},{"name":"FeeUpdated","inputs":[{"type":"string32","name":"name","indexed":true},{"type":"fixed168x10","name":"value","indexed":true}],"anonymous":false,"type":"event"},{"name":"PriceOracleAddressUpdated","inputs":[{"type":"address","name":"new_address","indexed":true}],"anonymous":false,"type":"event"},{"name":"Payment","inputs":[{"type":"uint256","name":"amount","indexed":false,"unit":"wei"},{"type":"address","name":"_from","indexed":true}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[{"type":"address[3]","name":"token_addresses"},{"type":"address","name":"price_oracle_addr"}],"constant":false,"payable":false,"type":"constructor"},{"name":"addLiquidity","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"token_address"},{"type":"uint256","name":"erc20_token_amount"},{"type":"uint256","name":"deadline","unit":"sec"}],"constant":false,"payable":false,"type":"function","gas":84801},{"name":"removeLiquidity","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"token_address"},{"type":"uint256","name":"stableswap_token_amount"},{"type":"uint256","name":"deadline","unit":"sec"}],"constant":false,"payable":false,"type":"function","gas":124344},{"name":"swapTokens","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"input_token"},{"type":"address","name":"output_token"},{"type":"uint256","name":"erc20_input_amount"},{"type":"uint256","name":"erc20_min_output_amount"},{"type":"uint256","name":"deadline","unit":"sec"}],"constant":false,"payable":false,"type":"function","gas":94815},{"name":"updateInputToken","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"token_address"},{"type":"bool","name":"allowed"}],"constant":false,"payable":false,"type":"function","gas":36334},{"name":"updateOutputToken","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"token_address"},{"type":"bool","name":"allowed"}],"constant":false,"payable":false,"type":"function","gas":36364},{"name":"updatePermission","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"string","name":"permission_name"},{"type":"bool","name":"value"}],"constant":false,"payable":false,"type":"function","gas":37803},{"name":"poolOwnership","outputs":[{"type":"fixed168x10","name":"out"}],"inputs":[{"type":"address","name":"user_address"}],"constant":true,"payable":false,"type":"function","gas":1375},{"name":"transferOwnership","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"new_owner"}],"constant":false,"payable":false,"type":"function","gas":37700},{"name":"updateFee","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"string","name":"fee_name"},{"type":"fixed168x10","name":"value"}],"constant":false,"payable":false,"type":"function","gas":37857},{"name":"fees","outputs":[{"type":"fixed168x10","name":"out"}],"inputs":[{"type":"string","name":"fee_name"}],"constant":true,"payable":false,"type":"function","gas":1349},{"name":"updatePriceOracleAddress","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"new_address"}],"constant":false,"payable":false,"type":"function","gas":37112},{"name":"transfer","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":74374},{"name":"transferFrom","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_from"},{"type":"address","name":"_to"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":110247},{"name":"approve","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"_spender"},{"type":"uint256","name":"_value"}],"constant":false,"payable":false,"type":"function","gas":38105},{"name":"name","outputs":[{"type":"string","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":6732},{"name":"owner","outputs":[{"type":"address","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":963},{"name":"decimals","outputs":[{"type":"uint256","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":993},{"name":"totalSupply","outputs":[{"type":"uint256","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1023},{"name":"balanceOf","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1225},{"name":"allowance","outputs":[{"type":"uint256","name":"out"}],"inputs":[{"type":"address","name":"arg0"},{"type":"address","name":"arg1"}],"constant":true,"payable":false,"type":"function","gas":1415},{"name":"inputTokens","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1285},{"name":"outputTokens","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"address","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1315},{"name":"permissions","outputs":[{"type":"bool","name":"out"}],"inputs":[{"type":"string","name":"arg0"}],"constant":true,"payable":false,"type":"function","gas":1488},{"name":"priceOracleAddress","outputs":[{"type":"address","name":"out"}],"inputs":[],"constant":true,"payable":false,"type":"function","gas":1203}]
Contract Creation Code
600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052608061257d6101403934156100a757600080fd5b602061257d60c03960c05160205181106100c057600080fd5b506020602061257d0160c03960c05160205181106100dd57600080fd5b506020604061257d0160c03960c05160205181106100fa57600080fd5b506020606061257d0160c03960c051602051811061011757600080fd5b5060006101a051141561012957600080fd5b33600155600e6101c0527f537461626c65636f696e737761700000000000000000000000000000000000006101e0526101c080600060c052602060c020602082510161012060006002818352015b8261012051602002111561018a576101ac565b61012051602002850151610120518501555b8151600101808352811415610177575b505050505050601260025560016008600e610220527f74726164696e67416c6c6f776564000000000000000000000000000000000000610240526102205150610220516102402060e05260c052604060c02055600160086016610280527f6c6971756964697479416464696e67416c6c6f776564000000000000000000006102a0526102805150610280516102a02060e05260c052604060c020556001600860186102e0527f6c697175696469747952656d6f76696e67416c6c6f7765640000000000000000610300526102e051506102e0516103002060e05260c052604060c0205561034060006003818352015b600061014061034051600381106102b157600080fd5b602002015114156102c157600080fd5b6001600661014061034051600381106102d957600080fd5b602002015160e05260c052604060c0205560016007610140610340516003811061030257600080fd5b602002015160e05260c052604060c020555b815160010180835281141561029b575b505060c860096008610360527f7472616465466565000000000000000000000000000000000000000000000000610380526103605150610360516103802060e05260c052604060c020556064600960086103c0527f6f776e65724665650000000000000000000000000000000000000000000000006103e0526103c051506103c0516103e02060e05260c052604060c020556101a051600a5561256556600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052600015610115575b6101605261014052600a543b6100b057600080fd5b600a543014156100bf57600080fd5b6020610220602463f1bb10866101a052610140516101c0526101bc600a545afa6100e857600080fd5b60005061022051610180526000610180511161010357600080fd5b61018051600052600051610160515650005b6355776b776000511415610538576060600461014037341561013657600080fd5b600435602051811061014757600080fd5b5060066101405160e05260c052604060c0205461016357600080fd5b600061016051114261018051111661017a57600080fd5b600860166101a0527f6c6971756964697479416464696e67416c6c6f776564000000000000000000006101c0526101a051506101a0516101c02060e05260c052604060c020546101c957600080fd5b61016051610140513b6101db57600080fd5b610140513014156101eb57600080fd5b602061028060246370a0823161020052336102205261021c610140515afa61021257600080fd5b60005061028051101561022457600080fd5b61016051610140513b61023657600080fd5b6101405130141561024657600080fd5b6020610340604463dd62ed3e6102a052336102c052306102e0526102bc610140515afa61027257600080fd5b60005061034051101561028457600080fd5b6101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e051610300516103205161034051610360516384ba3f6961038052610140516103a0526103a0516006580161009b565b61040052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526101405261040051610360526305f5e10061034c57600080fd5b6305f5e100610360511515610362576000610388565b6101605161036051610160516103605102041461037e57600080fd5b6101605161036051025b04610420526000600354111561043457600a543b6103a557600080fd5b600a543014156103b457600080fd5b60206104c0602463fa75d16061044052306104605261045c600a545afa6103da57600080fd5b6000506104c0516104e0526104e0516103f257600080fd5b6104e05161042051151561040757600061042a565b600354610420516003546104205102041461042157600080fd5b60035461042051025b0461042052610449565b633b9aca0061042051101561044857600080fd5b5b60043360e05260c052604060c020805461042051825401101561046b57600080fd5b610420518154018155506003805461042051825401101561048b57600080fd5b61042051815401815550610140513b6104a357600080fd5b610140513014156104b357600080fd5b60206105e060646323b872dd6105205233610540523061056052610160516105805261053c6000610140515af16104e957600080fd5b6000506105e051610500526105005161050157600080fd5b61042051337fc17cea59c2955cb181b03393209566960365771dbba9dc3d510180e7cb31208860006000a3600160005260206000f3005b63e38192e36000511415610c84576060600461014037341561055957600080fd5b600435602051811061056a57600080fd5b5060076101405160e05260c052604060c0205461058657600080fd5b426101805111600061016051111661059d57600080fd5b6101605160043360e05260c052604060c0205410156105bb57600080fd5b600860186101a0527f6c697175696469747952656d6f76696e67416c6c6f77656400000000000000006101c0526101a051506101a0516101c02060e05260c052604060c0205461060a57600080fd5b60006003541161061957600080fd5b6101405161016051610180516101a0516101c0516101e051610200516384ba3f69610220526101405161024052610240516006580161009b565b6102a052610200526101e0526101c0526101a0526101805261016052610140526102a05161020052600a543b61068857600080fd5b600a5430141561069757600080fd5b6020610360602463fa75d1606102e05230610300526102fc600a545afa6106bd57600080fd5b600050610360516102c0526003546106d457600080fd5b600354610200516106e457600080fd5b610200516101605115156106f957600061071f565b6102c051610160516102c0516101605102041461071557600080fd5b6102c05161016051025b151561072c5760006107ee565b6305f5e100610160511515610742576000610768565b6102c051610160516102c0516101605102041461075e57600080fd5b6102c05161016051025b6305f5e10061016051151561077e5760006107a4565b6102c051610160516102c0516101605102041461079a57600080fd5b6102c05161016051025b0204146107b057600080fd5b6305f5e1006101605115156107c65760006107ec565b6102c051610160516102c051610160510204146107e257600080fd5b6102c05161016051025b025b04046103805260006103a05260015433141515610b4257620186a061081257600080fd5b620186a0610160511515610827576000610913565b600960086103c0527f6f776e65724665650000000000000000000000000000000000000000000000006103e0526103c051506103c0516103e02060e05260c052604060c0205461016051600960086103c0527f6f776e65724665650000000000000000000000000000000000000000000000006103e0526103c051506103c0516103e02060e05260c052604060c02054610160510204146108c757600080fd5b600960086103c0527f6f776e65724665650000000000000000000000000000000000000000000000006103e0526103c051506103c0516103e02060e05260c052604060c0205461016051025b046103a052600960086104a0527f74726164654665650000000000000000000000000000000000000000000000006104c0526104a051506104a0516104c02060e05260c052604060c0205460096008610440527f6f776e6572466565000000000000000000000000000000000000000000000000610460526104405150610440516104602060e05260c052604060c02054620186a010156109b357600080fd5b60096008610440527f6f776e6572466565000000000000000000000000000000000000000000000000610460526104405150610440516104602060e05260c052604060c02054620186a0031015610a0957600080fd5b600960086104a0527f74726164654665650000000000000000000000000000000000000000000000006104c0526104a051506104a0516104c02060e05260c052604060c0205460096008610440527f6f776e6572466565000000000000000000000000000000000000000000000000610460526104405150610440516104602060e05260c052604060c02054620186a01015610aa457600080fd5b60096008610440527f6f776e6572466565000000000000000000000000000000000000000000000000610460526104405150610440516104602060e05260c052604060c02054620186a0030361042052620186a0610b0157600080fd5b620186a0610380511515610b16576000610b3c565b61042051610380516104205161038051020414610b3257600080fd5b6104205161038051025b04610380525b60043360e05260c052604060c0206101605181541015610b6157600080fd5b61016051815403815550600460015460e05260c052604060c02080546103a0518254011015610b8f57600080fd5b6103a05181540181555060036103a051610160511015610bae57600080fd5b6103a051610160510381541015610bc457600080fd5b6103a051610160511015610bd757600080fd5b6103a0516101605103815403815550610140513b610bf457600080fd5b61014051301415610c0457600080fd5b60206105c0604463a9059cbb610520523361054052610380516105605261053c6000610140515af1610c3557600080fd5b6000506105c0516105005261050051610c4d57600080fd5b61016051337fc2c3f06e49b9f15e7b4af9055e183b0d73362e033ad82a07dec9bf984017171960006000a3600160005260206000f3005b6343d91bf160005114156115245760a06004610140373415610ca557600080fd5b6004356020518110610cb657600080fd5b506024356020518110610cc857600080fd5b5060076101605160e05260c052604060c0205460066101405160e05260c052604060c0205416610cf757600080fd5b60006101a051116000610180511116610d0f57600080fd5b426101c05111610d1e57600080fd5b6008600e6101e0527f74726164696e67416c6c6f776564000000000000000000000000000000000000610200526101e051506101e0516102002060e05260c052604060c02054610d6d57600080fd5b61018051610140513b610d7f57600080fd5b61014051301415610d8f57600080fd5b60206102c060246370a0823161024052336102605261025c610140515afa610db657600080fd5b6000506102c0511015610dc857600080fd5b61018051610140513b610dda57600080fd5b61014051301415610dea57600080fd5b6020610380604463dd62ed3e6102e052336103005230610320526102fc610140515afa610e1657600080fd5b600050610380511015610e2857600080fd5b6101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516384ba3f696103c052610140516103e0526103e0516006580161009b565b610440526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052610440516103a0526101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e051610400516104205161044051610460516384ba3f6961048052610160516104a0526104a0516006580161009b565b61050052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052610140526105005161046052610180511515610ffd576000611023565b6103a051610180516103a0516101805102041461101957600080fd5b6103a05161018051025b61052052620186a061103457600080fd5b620186a0610520511515611049576000611135565b60096008610560527f7472616465466565000000000000000000000000000000000000000000000000610580526105605150610560516105802060e05260c052604060c020546105205160096008610560527f7472616465466565000000000000000000000000000000000000000000000000610580526105605150610560516105802060e05260c052604060c02054610520510204146110e957600080fd5b60096008610560527f7472616465466565000000000000000000000000000000000000000000000000610580526105605150610560516105802060e05260c052604060c0205461052051025b0461054052620186a061114757600080fd5b620186a061052051151561115c576000611248565b600960086105e0527f6f776e6572466565000000000000000000000000000000000000000000000000610600526105e051506105e0516106002060e05260c052604060c0205461052051600960086105e0527f6f776e6572466565000000000000000000000000000000000000000000000000610600526105e051506105e0516106002060e05260c052604060c02054610520510204146111fc57600080fd5b600960086105e0527f6f776e6572466565000000000000000000000000000000000000000000000000610600526105e051506105e0516106002060e05260c052604060c0205461052051025b046105c052610520610540516105c0516105405101101561126857600080fd5b6105c05161054051018151101561127e57600080fd5b610540516105c0516105405101101561129657600080fd5b6105c05161054051018151038152506105406305f5e1006112b657600080fd5b6305f5e1008151048152506105c06305f5e1006112d257600080fd5b6305f5e100815104815250600a543b6112ea57600080fd5b600a543014156112f957600080fd5b60206106e0602463fa75d16061066052306106805261067c600a545afa61131f57600080fd5b6000506106e0516107005261070051610540516107005101101561134257600080fd5b610540516107005101610640526106405161135c57600080fd5b610640516003541515611370576000611393565b6105c0516003546105c05160035402041461138a57600080fd5b6105c051600354025b0461072052610460516113a557600080fd5b610460516105205104610740526101a0516107405110156113c557600080fd5b600460015460e05260c052604060c02080546107205182540110156113e957600080fd5b610720518154018155506003805461072051825401101561140957600080fd5b61072051815401815550610140513b61142157600080fd5b6101405130141561143157600080fd5b602061084060646323b872dd61078052336107a052306107c052610180516107e05261079c6000610140515af161146757600080fd5b60005061084051610760526107605161147f57600080fd5b610160513b61148d57600080fd5b6101605130141561149d57600080fd5b6020610920604463a9059cbb61088052336108a052610740516108c05261089c6000610160515af16114ce57600080fd5b6000506109205161086052610860516114e657600080fd5b6101805161016051610140517f0d49f50d6dd629f4e4070731edb0abd680823ab1cbd43d89590522da4b5b32e760006000a4600160005260206000f3005b6323d7d1a860005114156115b9576040600461014037341561154557600080fd5b600435602051811061155657600080fd5b506024356002811061156757600080fd5b50600154331461157657600080fd5b6101605160066101405160e05260c052604060c02054141561159757600080fd5b6101605160066101405160e05260c052604060c02055600160005260206000f3005b6344dbd334600051141561164e57604060046101403734156115da57600080fd5b60043560205181106115eb57600080fd5b50602435600281106115fc57600080fd5b50600154331461160b57600080fd5b6101605160076101405160e05260c052604060c02054141561162c57600080fd5b6101605160076101405160e05260c052604060c02055600160005260206000f3005b63903a10016000511415611739576040600461014037341561166f57600080fd5b604060043560040161018037602060043560040135111561168f57600080fd5b6024356002811061169f57600080fd5b5060015433146116ae57600080fd5b610160516008610180516101a02060e05260c052604060c02055610160516101808060200151600082518060209013156116e757600080fd5b80919012156116f557600080fd5b8061018051036101000a82049050905090507f22b59c94b6ec143f205f4ac5d8177280de0eab514e8d857330a1af17343e97bd60006000a3600160005260206000f3005b6380a0628b6000511415611808576020600461014037341561175a57600080fd5b600435602051811061176b57600080fd5b506402540be40060046101405160e05260c052604060c020540260805181111561179457600080fd5b610160526402540be400600354026080518111156117b157600080fd5b6101805260a0516101605161018051806117ca57600080fd5b806402540be40083020590509050806080519013156117e857600080fd5b80919012156117f657600080fd5b6101a0526101a05160005260206000f3005b63f2fde38b600051141561189a576020600461014037341561182957600080fd5b600435602051811061183a57600080fd5b50600061014051141561184c57600080fd5b600154331461185a57600080fd5b61014051600155610140516001547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060006000a3600160005260206000f3005b63993f4a206000511415611aa657604060046101403734156118bb57600080fd5b60406004356004016101803760206004356004013511156118db57600080fd5b60015433146118e957600080fd5b600066038d7ea4c680006101e05260a0516101e05161016051818102811583838305141761191657600080fd5b6402540be40081059050905090508060805190131561193457600080fd5b809190121561194257600080fd5b12156119b2576402540be4006402540be3ff66038d7ea4c680006101e05260a0516101e05161016051818102811583838305141761197f57600080fd5b6402540be40081059050905090508060805190131561199d57600080fd5b80919012156119ab57600080fd5b0305611a11565b6402540be40066038d7ea4c680006101e05260a0516101e0516101605181810281158383830514176119e357600080fd5b6402540be400810590509050905080608051901315611a0157600080fd5b8091901215611a0f57600080fd5b055b6000811215611a1f57600080fd5b6009610180516101a02060e05260c052604060c0205561016051610180806020015160008251806020901315611a5457600080fd5b8091901215611a6257600080fd5b8061018051036101000a82049050905090507fd8dd23b660d1a2cd022ce86c6122d03c591f721b3c2af378ecb404c0b605ddc760006000a3600160005260206000f3005b63e005cbbf6000511415611b6e5760206004610140373415611ac757600080fd5b6040600435600401610160376020600435600401351115611ae757600080fd5b6402540be4006009610160516101802060e05260c052604060c0205402608051811115611b1357600080fd5b6101c05266038d7ea4c680006101e05260a0516101c0516101e05180611b3857600080fd5b806402540be4008302059050905080608051901315611b5657600080fd5b8091901215611b6457600080fd5b60005260206000f3005b6386d1e02b6000511415611bec5760206004610140373415611b8f57600080fd5b6004356020518110611ba057600080fd5b506001543314611baf57600080fd5b61014051600a55610140517f12ad2958c2383ce31dd51da097e673d81de88c202731500406f3afc70a8cf17060006000a2600160005260206000f3005b63a9059cbb6000511415611cb75760406004610140373415611c0d57600080fd5b6004356020518110611c1e57600080fd5b5060043360e05260c052604060c0206101605181541015611c3e57600080fd5b6101605181540381555060046101405160e05260c052604060c0208054610160518254011015611c6d57600080fd5b61016051815401815550610160516101805261014051337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610180a3600160005260206000f3005b6323b872dd6000511415611dd25760606004610140373415611cd857600080fd5b6004356020518110611ce957600080fd5b506024356020518110611cfb57600080fd5b5060046101405160e05260c052604060c0206101805181541015611d1e57600080fd5b6101805181540381555060046101605160e05260c052604060c0208054610180518254011015611d4d57600080fd5b6101805181540181555060056101405160e05260c052604060c0203360e05260c052604060c0206101805181541015611d8557600080fd5b61018051815403815550610180516101a05261016051610140517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206101a0a3600160005260206000f3005b63095ea7b36000511415611e645760406004610140373415611df357600080fd5b6004356020518110611e0457600080fd5b506101605160053360e05260c052604060c0206101405160e05260c052604060c02055610160516101805233337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256020610180a3600160005260206000f3005b6306fdde036000511415611f47573415611e7d57600080fd5b60008060c052602060c020610180602082540161012060006002818352015b82610120516020021115611eaf57611ed1565b61012051850154610120516020028501525b8151600101808352811415611e9c575b5050505050506101805160206001820306601f82010390506101e0610180516020818352015b826101e0511115611f0757611f23565b60006101e0516101a001535b8151600101808352811415611ef7575b5050506020610160526040610180510160206001820306601f8201039050610160f3005b638da5cb5b6000511415611f6d573415611f6057600080fd5b60015460005260206000f3005b63313ce5676000511415611f93573415611f8657600080fd5b60025460005260206000f3005b6318160ddd6000511415611fb9573415611fac57600080fd5b60035460005260206000f3005b6370a0823160005114156120085760206004610140373415611fda57600080fd5b6004356020518110611feb57600080fd5b5060046101405160e05260c052604060c0205460005260206000f3005b63dd62ed3e6000511415612078576040600461014037341561202957600080fd5b600435602051811061203a57600080fd5b50602435602051811061204c57600080fd5b5060056101405160e05260c052604060c0206101605160e05260c052604060c0205460005260206000f3005b634999eb8f60005114156120c7576020600461014037341561209957600080fd5b60043560205181106120aa57600080fd5b5060066101405160e05260c052604060c0205460005260206000f3005b6351ecd2fa600051141561211657602060046101403734156120e857600080fd5b60043560205181106120f957600080fd5b5060076101405160e05260c052604060c0205460005260206000f3005b63752708fb6000511415612177576020600461014037341561213757600080fd5b604060043560040161016037602060043560040135111561215757600080fd5b6008610160516101802060e05260c052604060c0205460005260206000f3005b632bc51c6d600051141561219d57341561219057600080fd5b600a5460005260206000f3005b60006000fd5b6103c2612565036103c26000396103c2612565036000f3000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000089d24a6b4ccb1b6faa2625fe562bdd9a232603590000000000000000000000008e870d67f660d95d5be530380d0ec0bd388289e10000000000000000000000002b4ba323ab07da8250e896b6ff29bb96ddfe55a9
Deployed Bytecode
0x600035601c52740100000000000000000000000000000000000000006020526f7fffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060605274012a05f1fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffed5fa0e000000000000000000000000000000000060a052600015610115575b6101605261014052600a543b6100b057600080fd5b600a543014156100bf57600080fd5b6020610220602463f1bb10866101a052610140516101c0526101bc600a545afa6100e857600080fd5b60005061022051610180526000610180511161010357600080fd5b61018051600052600051610160515650005b6355776b776000511415610538576060600461014037341561013657600080fd5b600435602051811061014757600080fd5b5060066101405160e05260c052604060c0205461016357600080fd5b600061016051114261018051111661017a57600080fd5b600860166101a0527f6c6971756964697479416464696e67416c6c6f776564000000000000000000006101c0526101a051506101a0516101c02060e05260c052604060c020546101c957600080fd5b61016051610140513b6101db57600080fd5b610140513014156101eb57600080fd5b602061028060246370a0823161020052336102205261021c610140515afa61021257600080fd5b60005061028051101561022457600080fd5b61016051610140513b61023657600080fd5b6101405130141561024657600080fd5b6020610340604463dd62ed3e6102a052336102c052306102e0526102bc610140515afa61027257600080fd5b60005061034051101561028457600080fd5b6101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e051610300516103205161034051610360516384ba3f6961038052610140516103a0526103a0516006580161009b565b61040052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a05261018052610160526101405261040051610360526305f5e10061034c57600080fd5b6305f5e100610360511515610362576000610388565b6101605161036051610160516103605102041461037e57600080fd5b6101605161036051025b04610420526000600354111561043457600a543b6103a557600080fd5b600a543014156103b457600080fd5b60206104c0602463fa75d16061044052306104605261045c600a545afa6103da57600080fd5b6000506104c0516104e0526104e0516103f257600080fd5b6104e05161042051151561040757600061042a565b600354610420516003546104205102041461042157600080fd5b60035461042051025b0461042052610449565b633b9aca0061042051101561044857600080fd5b5b60043360e05260c052604060c020805461042051825401101561046b57600080fd5b610420518154018155506003805461042051825401101561048b57600080fd5b61042051815401815550610140513b6104a357600080fd5b610140513014156104b357600080fd5b60206105e060646323b872dd6105205233610540523061056052610160516105805261053c6000610140515af16104e957600080fd5b6000506105e051610500526105005161050157600080fd5b61042051337fc17cea59c2955cb181b03393209566960365771dbba9dc3d510180e7cb31208860006000a3600160005260206000f3005b63e38192e36000511415610c84576060600461014037341561055957600080fd5b600435602051811061056a57600080fd5b5060076101405160e05260c052604060c0205461058657600080fd5b426101805111600061016051111661059d57600080fd5b6101605160043360e05260c052604060c0205410156105bb57600080fd5b600860186101a0527f6c697175696469747952656d6f76696e67416c6c6f77656400000000000000006101c0526101a051506101a0516101c02060e05260c052604060c0205461060a57600080fd5b60006003541161061957600080fd5b6101405161016051610180516101a0516101c0516101e051610200516384ba3f69610220526101405161024052610240516006580161009b565b6102a052610200526101e0526101c0526101a0526101805261016052610140526102a05161020052600a543b61068857600080fd5b600a5430141561069757600080fd5b6020610360602463fa75d1606102e05230610300526102fc600a545afa6106bd57600080fd5b600050610360516102c0526003546106d457600080fd5b600354610200516106e457600080fd5b610200516101605115156106f957600061071f565b6102c051610160516102c0516101605102041461071557600080fd5b6102c05161016051025b151561072c5760006107ee565b6305f5e100610160511515610742576000610768565b6102c051610160516102c0516101605102041461075e57600080fd5b6102c05161016051025b6305f5e10061016051151561077e5760006107a4565b6102c051610160516102c0516101605102041461079a57600080fd5b6102c05161016051025b0204146107b057600080fd5b6305f5e1006101605115156107c65760006107ec565b6102c051610160516102c051610160510204146107e257600080fd5b6102c05161016051025b025b04046103805260006103a05260015433141515610b4257620186a061081257600080fd5b620186a0610160511515610827576000610913565b600960086103c0527f6f776e65724665650000000000000000000000000000000000000000000000006103e0526103c051506103c0516103e02060e05260c052604060c0205461016051600960086103c0527f6f776e65724665650000000000000000000000000000000000000000000000006103e0526103c051506103c0516103e02060e05260c052604060c02054610160510204146108c757600080fd5b600960086103c0527f6f776e65724665650000000000000000000000000000000000000000000000006103e0526103c051506103c0516103e02060e05260c052604060c0205461016051025b046103a052600960086104a0527f74726164654665650000000000000000000000000000000000000000000000006104c0526104a051506104a0516104c02060e05260c052604060c0205460096008610440527f6f776e6572466565000000000000000000000000000000000000000000000000610460526104405150610440516104602060e05260c052604060c02054620186a010156109b357600080fd5b60096008610440527f6f776e6572466565000000000000000000000000000000000000000000000000610460526104405150610440516104602060e05260c052604060c02054620186a0031015610a0957600080fd5b600960086104a0527f74726164654665650000000000000000000000000000000000000000000000006104c0526104a051506104a0516104c02060e05260c052604060c0205460096008610440527f6f776e6572466565000000000000000000000000000000000000000000000000610460526104405150610440516104602060e05260c052604060c02054620186a01015610aa457600080fd5b60096008610440527f6f776e6572466565000000000000000000000000000000000000000000000000610460526104405150610440516104602060e05260c052604060c02054620186a0030361042052620186a0610b0157600080fd5b620186a0610380511515610b16576000610b3c565b61042051610380516104205161038051020414610b3257600080fd5b6104205161038051025b04610380525b60043360e05260c052604060c0206101605181541015610b6157600080fd5b61016051815403815550600460015460e05260c052604060c02080546103a0518254011015610b8f57600080fd5b6103a05181540181555060036103a051610160511015610bae57600080fd5b6103a051610160510381541015610bc457600080fd5b6103a051610160511015610bd757600080fd5b6103a0516101605103815403815550610140513b610bf457600080fd5b61014051301415610c0457600080fd5b60206105c0604463a9059cbb610520523361054052610380516105605261053c6000610140515af1610c3557600080fd5b6000506105c0516105005261050051610c4d57600080fd5b61016051337fc2c3f06e49b9f15e7b4af9055e183b0d73362e033ad82a07dec9bf984017171960006000a3600160005260206000f3005b6343d91bf160005114156115245760a06004610140373415610ca557600080fd5b6004356020518110610cb657600080fd5b506024356020518110610cc857600080fd5b5060076101605160e05260c052604060c0205460066101405160e05260c052604060c0205416610cf757600080fd5b60006101a051116000610180511116610d0f57600080fd5b426101c05111610d1e57600080fd5b6008600e6101e0527f74726164696e67416c6c6f776564000000000000000000000000000000000000610200526101e051506101e0516102002060e05260c052604060c02054610d6d57600080fd5b61018051610140513b610d7f57600080fd5b61014051301415610d8f57600080fd5b60206102c060246370a0823161024052336102605261025c610140515afa610db657600080fd5b6000506102c0511015610dc857600080fd5b61018051610140513b610dda57600080fd5b61014051301415610dea57600080fd5b6020610380604463dd62ed3e6102e052336103005230610320526102fc610140515afa610e1657600080fd5b600050610380511015610e2857600080fd5b6101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516384ba3f696103c052610140516103e0526103e0516006580161009b565b610440526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052610440516103a0526101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e051610400516104205161044051610460516384ba3f6961048052610160516104a0526104a0516006580161009b565b61050052610460526104405261042052610400526103e0526103c0526103a05261038052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a0526101805261016052610140526105005161046052610180511515610ffd576000611023565b6103a051610180516103a0516101805102041461101957600080fd5b6103a05161018051025b61052052620186a061103457600080fd5b620186a0610520511515611049576000611135565b60096008610560527f7472616465466565000000000000000000000000000000000000000000000000610580526105605150610560516105802060e05260c052604060c020546105205160096008610560527f7472616465466565000000000000000000000000000000000000000000000000610580526105605150610560516105802060e05260c052604060c02054610520510204146110e957600080fd5b60096008610560527f7472616465466565000000000000000000000000000000000000000000000000610580526105605150610560516105802060e05260c052604060c0205461052051025b0461054052620186a061114757600080fd5b620186a061052051151561115c576000611248565b600960086105e0527f6f776e6572466565000000000000000000000000000000000000000000000000610600526105e051506105e0516106002060e05260c052604060c0205461052051600960086105e0527f6f776e6572466565000000000000000000000000000000000000000000000000610600526105e051506105e0516106002060e05260c052604060c02054610520510204146111fc57600080fd5b600960086105e0527f6f776e6572466565000000000000000000000000000000000000000000000000610600526105e051506105e0516106002060e05260c052604060c0205461052051025b046105c052610520610540516105c0516105405101101561126857600080fd5b6105c05161054051018151101561127e57600080fd5b610540516105c0516105405101101561129657600080fd5b6105c05161054051018151038152506105406305f5e1006112b657600080fd5b6305f5e1008151048152506105c06305f5e1006112d257600080fd5b6305f5e100815104815250600a543b6112ea57600080fd5b600a543014156112f957600080fd5b60206106e0602463fa75d16061066052306106805261067c600a545afa61131f57600080fd5b6000506106e0516107005261070051610540516107005101101561134257600080fd5b610540516107005101610640526106405161135c57600080fd5b610640516003541515611370576000611393565b6105c0516003546105c05160035402041461138a57600080fd5b6105c051600354025b0461072052610460516113a557600080fd5b610460516105205104610740526101a0516107405110156113c557600080fd5b600460015460e05260c052604060c02080546107205182540110156113e957600080fd5b610720518154018155506003805461072051825401101561140957600080fd5b61072051815401815550610140513b61142157600080fd5b6101405130141561143157600080fd5b602061084060646323b872dd61078052336107a052306107c052610180516107e05261079c6000610140515af161146757600080fd5b60005061084051610760526107605161147f57600080fd5b610160513b61148d57600080fd5b6101605130141561149d57600080fd5b6020610920604463a9059cbb61088052336108a052610740516108c05261089c6000610160515af16114ce57600080fd5b6000506109205161086052610860516114e657600080fd5b6101805161016051610140517f0d49f50d6dd629f4e4070731edb0abd680823ab1cbd43d89590522da4b5b32e760006000a4600160005260206000f3005b6323d7d1a860005114156115b9576040600461014037341561154557600080fd5b600435602051811061155657600080fd5b506024356002811061156757600080fd5b50600154331461157657600080fd5b6101605160066101405160e05260c052604060c02054141561159757600080fd5b6101605160066101405160e05260c052604060c02055600160005260206000f3005b6344dbd334600051141561164e57604060046101403734156115da57600080fd5b60043560205181106115eb57600080fd5b50602435600281106115fc57600080fd5b50600154331461160b57600080fd5b6101605160076101405160e05260c052604060c02054141561162c57600080fd5b6101605160076101405160e05260c052604060c02055600160005260206000f3005b63903a10016000511415611739576040600461014037341561166f57600080fd5b604060043560040161018037602060043560040135111561168f57600080fd5b6024356002811061169f57600080fd5b5060015433146116ae57600080fd5b610160516008610180516101a02060e05260c052604060c02055610160516101808060200151600082518060209013156116e757600080fd5b80919012156116f557600080fd5b8061018051036101000a82049050905090507f22b59c94b6ec143f205f4ac5d8177280de0eab514e8d857330a1af17343e97bd60006000a3600160005260206000f3005b6380a0628b6000511415611808576020600461014037341561175a57600080fd5b600435602051811061176b57600080fd5b506402540be40060046101405160e05260c052604060c020540260805181111561179457600080fd5b610160526402540be400600354026080518111156117b157600080fd5b6101805260a0516101605161018051806117ca57600080fd5b806402540be40083020590509050806080519013156117e857600080fd5b80919012156117f657600080fd5b6101a0526101a05160005260206000f3005b63f2fde38b600051141561189a576020600461014037341561182957600080fd5b600435602051811061183a57600080fd5b50600061014051141561184c57600080fd5b600154331461185a57600080fd5b61014051600155610140516001547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060006000a3600160005260206000f3005b63993f4a206000511415611aa657604060046101403734156118bb57600080fd5b60406004356004016101803760206004356004013511156118db57600080fd5b60015433146118e957600080fd5b600066038d7ea4c680006101e05260a0516101e05161016051818102811583838305141761191657600080fd5b6402540be40081059050905090508060805190131561193457600080fd5b809190121561194257600080fd5b12156119b2576402540be4006402540be3ff66038d7ea4c680006101e05260a0516101e05161016051818102811583838305141761197f57600080fd5b6402540be40081059050905090508060805190131561199d57600080fd5b80919012156119ab57600080fd5b0305611a11565b6402540be40066038d7ea4c680006101e05260a0516101e0516101605181810281158383830514176119e357600080fd5b6402540be400810590509050905080608051901315611a0157600080fd5b8091901215611a0f57600080fd5b055b6000811215611a1f57600080fd5b6009610180516101a02060e05260c052604060c0205561016051610180806020015160008251806020901315611a5457600080fd5b8091901215611a6257600080fd5b8061018051036101000a82049050905090507fd8dd23b660d1a2cd022ce86c6122d03c591f721b3c2af378ecb404c0b605ddc760006000a3600160005260206000f3005b63e005cbbf6000511415611b6e5760206004610140373415611ac757600080fd5b6040600435600401610160376020600435600401351115611ae757600080fd5b6402540be4006009610160516101802060e05260c052604060c0205402608051811115611b1357600080fd5b6101c05266038d7ea4c680006101e05260a0516101c0516101e05180611b3857600080fd5b806402540be4008302059050905080608051901315611b5657600080fd5b8091901215611b6457600080fd5b60005260206000f3005b6386d1e02b6000511415611bec5760206004610140373415611b8f57600080fd5b6004356020518110611ba057600080fd5b506001543314611baf57600080fd5b61014051600a55610140517f12ad2958c2383ce31dd51da097e673d81de88c202731500406f3afc70a8cf17060006000a2600160005260206000f3005b63a9059cbb6000511415611cb75760406004610140373415611c0d57600080fd5b6004356020518110611c1e57600080fd5b5060043360e05260c052604060c0206101605181541015611c3e57600080fd5b6101605181540381555060046101405160e05260c052604060c0208054610160518254011015611c6d57600080fd5b61016051815401815550610160516101805261014051337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020610180a3600160005260206000f3005b6323b872dd6000511415611dd25760606004610140373415611cd857600080fd5b6004356020518110611ce957600080fd5b506024356020518110611cfb57600080fd5b5060046101405160e05260c052604060c0206101805181541015611d1e57600080fd5b6101805181540381555060046101605160e05260c052604060c0208054610180518254011015611d4d57600080fd5b6101805181540181555060056101405160e05260c052604060c0203360e05260c052604060c0206101805181541015611d8557600080fd5b61018051815403815550610180516101a05261016051610140517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206101a0a3600160005260206000f3005b63095ea7b36000511415611e645760406004610140373415611df357600080fd5b6004356020518110611e0457600080fd5b506101605160053360e05260c052604060c0206101405160e05260c052604060c02055610160516101805233337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256020610180a3600160005260206000f3005b6306fdde036000511415611f47573415611e7d57600080fd5b60008060c052602060c020610180602082540161012060006002818352015b82610120516020021115611eaf57611ed1565b61012051850154610120516020028501525b8151600101808352811415611e9c575b5050505050506101805160206001820306601f82010390506101e0610180516020818352015b826101e0511115611f0757611f23565b60006101e0516101a001535b8151600101808352811415611ef7575b5050506020610160526040610180510160206001820306601f8201039050610160f3005b638da5cb5b6000511415611f6d573415611f6057600080fd5b60015460005260206000f3005b63313ce5676000511415611f93573415611f8657600080fd5b60025460005260206000f3005b6318160ddd6000511415611fb9573415611fac57600080fd5b60035460005260206000f3005b6370a0823160005114156120085760206004610140373415611fda57600080fd5b6004356020518110611feb57600080fd5b5060046101405160e05260c052604060c0205460005260206000f3005b63dd62ed3e6000511415612078576040600461014037341561202957600080fd5b600435602051811061203a57600080fd5b50602435602051811061204c57600080fd5b5060056101405160e05260c052604060c0206101605160e05260c052604060c0205460005260206000f3005b634999eb8f60005114156120c7576020600461014037341561209957600080fd5b60043560205181106120aa57600080fd5b5060066101405160e05260c052604060c0205460005260206000f3005b6351ecd2fa600051141561211657602060046101403734156120e857600080fd5b60043560205181106120f957600080fd5b5060076101405160e05260c052604060c0205460005260206000f3005b63752708fb6000511415612177576020600461014037341561213757600080fd5b604060043560040161016037602060043560040135111561215757600080fd5b6008610160516101802060e05260c052604060c0205460005260206000f3005b632bc51c6d600051141561219d57341561219057600080fd5b600a5460005260206000f3005b60006000fd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000089d24a6b4ccb1b6faa2625fe562bdd9a232603590000000000000000000000008e870d67f660d95d5be530380d0ec0bd388289e10000000000000000000000002b4ba323ab07da8250e896b6ff29bb96ddfe55a9
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [1] : 00000000000000000000000089d24a6b4ccb1b6faa2625fe562bdd9a23260359
Arg [2] : 0000000000000000000000008e870d67f660d95d5be530380d0ec0bd388289e1
Arg [3] : 0000000000000000000000002b4ba323ab07da8250e896b6ff29bb96ddfe55a9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $12.6 | 1.027 | $12.94 |
Loading...
Loading
[ 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.