Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 194 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Fund Multiple Co... | 15390221 | 923 days ago | IN | 1.5 ETH | 0.00027624 | ||||
Fund Multiple Co... | 15390218 | 923 days ago | IN | 1.5 ETH | 0.00027706 | ||||
Fund Multiple Co... | 15390122 | 923 days ago | IN | 0.1 ETH | 0.00036806 | ||||
Fund Multiple Co... | 15390118 | 923 days ago | IN | 0.1 ETH | 0.00035692 | ||||
Fund Multiple Co... | 15390116 | 923 days ago | IN | 0.1 ETH | 0.00039861 | ||||
Change Minimum D... | 15000228 | 986 days ago | IN | 0 ETH | 0.00170122 | ||||
Fund Multiple Co... | 15000192 | 986 days ago | IN | 15.8 ETH | 0.00296239 | ||||
Fund Multiple Co... | 14995048 | 987 days ago | IN | 0.1 ETH | 0.00250219 | ||||
Fund Multiple Co... | 14959981 | 993 days ago | IN | 10 ETH | 0.00257903 | ||||
Fund Multiple Co... | 14916986 | 1000 days ago | IN | 1 ETH | 0.00486786 | ||||
Fund Multiple Co... | 14897837 | 1003 days ago | IN | 32 ETH | 0.00578678 | ||||
Fund Multiple Co... | 14894036 | 1004 days ago | IN | 0.1 ETH | 0.00453903 | ||||
Fund Multiple Co... | 14891545 | 1004 days ago | IN | 0.1 ETH | 0.00279917 | ||||
Fund Multiple Co... | 14887508 | 1005 days ago | IN | 1 ETH | 0.00225558 | ||||
Fund Multiple Co... | 14886293 | 1005 days ago | IN | 1 ETH | 0.00384433 | ||||
Fund Multiple Co... | 14885246 | 1005 days ago | IN | 0.9 ETH | 0.00293457 | ||||
Fund Multiple Co... | 14885211 | 1005 days ago | IN | 0.1 ETH | 0.00304855 | ||||
Fund Multiple Co... | 14882056 | 1006 days ago | IN | 7.1 ETH | 0.00314427 | ||||
Fund Multiple Co... | 14877494 | 1007 days ago | IN | 0.5 ETH | 0.00208561 | ||||
Fund Multiple Co... | 14828602 | 1015 days ago | IN | 0.1 ETH | 0.00125263 | ||||
Fund Multiple Co... | 14822370 | 1016 days ago | IN | 0.1 ETH | 0.00080153 | ||||
Fund Multiple Co... | 14822144 | 1016 days ago | IN | 0.1 ETH | 0.0010241 | ||||
Fund Multiple Co... | 14817294 | 1016 days ago | IN | 0.6 ETH | 0.00154108 | ||||
Fund Multiple Co... | 14813867 | 1017 days ago | IN | 0.1 ETH | 0.00156263 | ||||
Fund Multiple Co... | 14810099 | 1018 days ago | IN | 0.1 ETH | 0.0008954 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15390221 | 923 days ago | 1.5 ETH | ||||
15390218 | 923 days ago | 1.5 ETH | ||||
15390122 | 923 days ago | 0.1 ETH | ||||
15390118 | 923 days ago | 0.1 ETH | ||||
15390116 | 923 days ago | 0.1 ETH | ||||
15000192 | 986 days ago | 15.8 ETH | ||||
14995048 | 987 days ago | 0.1 ETH | ||||
14959981 | 993 days ago | 10 ETH | ||||
14916986 | 1000 days ago | 1 ETH | ||||
14897837 | 1003 days ago | 32 ETH | ||||
14894036 | 1004 days ago | 0.1 ETH | ||||
14891545 | 1004 days ago | 0.1 ETH | ||||
14887508 | 1005 days ago | 1 ETH | ||||
14886293 | 1005 days ago | 1 ETH | ||||
14885246 | 1005 days ago | 0.9 ETH | ||||
14885211 | 1005 days ago | 0.1 ETH | ||||
14882056 | 1006 days ago | 7.1 ETH | ||||
14877494 | 1007 days ago | 0.5 ETH | ||||
14828602 | 1015 days ago | 0.1 ETH | ||||
14822370 | 1016 days ago | 0.1 ETH | ||||
14822144 | 1016 days ago | 0.1 ETH | ||||
14817294 | 1016 days ago | 0.6 ETH | ||||
14813867 | 1017 days ago | 0.1 ETH | ||||
14810099 | 1018 days ago | 0.1 ETH | ||||
14805430 | 1018 days ago | 0.1 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:
StakefishServicesContractFactory
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
Yes with 100000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// Copyright (C) 2021 BITFISH LIMITED// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.// SPDX-License-Identifier: GPL-3.0-onlypragma solidity 0.8.4;import "./interfaces/IStakefishServicesContract.sol";import "./interfaces/IStakefishServicesContractFactory.sol";import "./libraries/ProxyFactory.sol";import "./libraries/Address.sol";import "./StakefishServicesContract.sol";contract StakefishServicesContractFactory is ProxyFactory, IStakefishServicesContractFactory {
1234567891011121314151617181920212223242526// Copyright (C) 2021 BITFISH LIMITED// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.// SPDX-License-Identifier: GPL-3.0-onlypragma solidity ^0.8.0;/// @notice Governs the life cycle of a single Eth2 validator with ETH provided by multiple stakers.interface IStakefishServicesContract {/// @notice The life cycle of a services contract.enum State {NotInitialized,PreDeposit,
1234567891011121314151617181920212223242526// Copyright (C) 2021 BITFISH LIMITED// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.// SPDX-License-Identifier: GPL-3.0-onlypragma solidity ^0.8.0;/// @notice Manages the deployment of services contractsinterface IStakefishServicesContractFactory {/// @notice Emitted when a proxy contract of the services contract is createdevent ContractCreated(bytes32 create2Salt);
1234567891011121314151617181920212223242526// Copyright (C) 2021 BITFISH LIMITED// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.// SPDX-License-Identifier: GPL-3.0-onlypragma solidity 0.8.4;/// @dev https://eips.ethereum.org/EIPS/eip-1167contract ProxyFactory {function _getDeterministicAddress(address target,bytes32 salt) internal view returns (address proxy) {address deployer = address(this);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.0;// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/4d0f8c1da8654a478f046ea7cf83d2166e1025af/contracts/utils/Address.sol/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====
1234567891011121314151617181920212223242526// Copyright (C) 2021 BITFISH LIMITED// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.// SPDX-License-Identifier: GPL-3.0-onlypragma solidity 0.8.4;import "./interfaces/deposit_contract.sol";import "./interfaces/IStakefishServicesContract.sol";import "./libraries/Address.sol";contract StakefishServicesContract is IStakefishServicesContract {using Address for address payable;
1234567891011121314151617181920212223242526// ┏━━━┓━┏┓━┏┓━━┏━━━┓━━┏━━━┓━━━━┏━━━┓━━━━━━━━━━━━━━━━━━━┏┓━━━━━┏━━━┓━━━━━━━━━┏┓━━━━━━━━━━━━━━┏┓━// ┃┏━━┛┏┛┗┓┃┃━━┃┏━┓┃━━┃┏━┓┃━━━━┗┓┏┓┃━━━━━━━━━━━━━━━━━━┏┛┗┓━━━━┃┏━┓┃━━━━━━━━┏┛┗┓━━━━━━━━━━━━┏┛┗┓// ┃┗━━┓┗┓┏┛┃┗━┓┗┛┏┛┃━━┃┃━┃┃━━━━━┃┃┃┃┏━━┓┏━━┓┏━━┓┏━━┓┏┓┗┓┏┛━━━━┃┃━┗┛┏━━┓┏━┓━┗┓┏┛┏━┓┏━━┓━┏━━┓┗┓┏┛// ┃┏━━┛━┃┃━┃┏┓┃┏━┛┏┛━━┃┃━┃┃━━━━━┃┃┃┃┃┏┓┃┃┏┓┃┃┏┓┃┃━━┫┣┫━┃┃━━━━━┃┃━┏┓┃┏┓┃┃┏┓┓━┃┃━┃┏┛┗━┓┃━┃┏━┛━┃┃━// ┃┗━━┓━┃┗┓┃┃┃┃┃┃┗━┓┏┓┃┗━┛┃━━━━┏┛┗┛┃┃┃━┫┃┗┛┃┃┗┛┃┣━━┃┃┃━┃┗┓━━━━┃┗━┛┃┃┗┛┃┃┃┃┃━┃┗┓┃┃━┃┗┛┗┓┃┗━┓━┃┗┓// ┗━━━┛━┗━┛┗┛┗┛┗━━━┛┗┛┗━━━┛━━━━┗━━━┛┗━━┛┃┏━┛┗━━┛┗━━┛┗┛━┗━┛━━━━┗━━━┛┗━━┛┗┛┗┛━┗━┛┗┛━┗━━━┛┗━━┛━┗━┛// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┃┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┗┛━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━// SPDX-License-Identifier: CC0-1.0pragma solidity 0.8.4;// This interface is designed to be compatible with the Vyper version./// @notice This is the Ethereum 2.0 deposit contract interface./// For more information see the Phase 0 specification under https://github.com/ethereum/eth2.0-specsinterface IDepositContract {/// @notice A processed deposit event.event DepositEvent(bytes pubkey,bytes withdrawal_credentials,bytes amount,bytes signature,bytes index);
12345678910111213141516171819{"optimizer": {"enabled": true,"runs": 100000},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint24","name":"commissionRate","type":"uint24"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newCommissionRate","type":"uint256"}],"name":"CommissionRateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"create2Salt","type":"bytes32"}],"name":"ContractCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMinimumDeposit","type":"uint256"}],"name":"MinimumDepositChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOperatorAddress","type":"address"}],"name":"OperatorChanged","type":"event"},{"inputs":[{"internalType":"uint24","name":"newCommissionRate","type":"uint24"}],"name":"changeCommissionRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinimumDeposit","type":"uint256"}],"name":"changeMinimumDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"changeOperatorAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"saltValue","type":"bytes32"},{"internalType":"bytes32","name":"operatorDataCommitment","type":"bytes32"}],"name":"createContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"baseSaltValue","type":"uint256"},{"internalType":"bytes32[]","name":"operatorDataCommitments","type":"bytes32[]"}],"name":"createMultipleContracts","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"saltValues","type":"bytes32[]"},{"internalType":"bool","name":"force","type":"bool"}],"name":"fundMultipleContracts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getCommissionRate","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinimumDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOperatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getServicesContractImpl","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405267016345785d8a000060005534801561001c57600080fd5b50604051620040813803806200408183398101604081905261003d916101e6565b620f42408162ffffff1611156100995760405162461bcd60e51b815260206004820152601d60248201527f436f6d6d697373696f6e20726174652065786365656473207363616c65000000604482015260640160405180910390fd5b600280546001600160b81b0319163362ffffff60a01b191617600160a01b62ffffff8416021790556040516100cd906101d8565b604051809103906000f0801580156100e9573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b03929092169182179055604051636ce858bf60e01b8152600060048201819052602482018190526044820152636ce858bf90606401600060405180830381600087803b15801561014e57600080fd5b505af1158015610162573d6000803e3d6000fd5b50506040513381527f4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e549250602001905060405180910390a160405162ffffff821681527f7944cc49dc8637e3cacb75b6261e778f93a87026e0357ae7c3b0e434324afa359060200160405180910390a150610210565b612c1a806200146783390190565b6000602082840312156101f7578081fd5b815162ffffff81168114610209578182fd5b9392505050565b61124780620002206000396000f3fe6080604052600436106100b15760003560e01c80633e4eb36c11610069578063c189f8c71161004e578063c189f8c7146101da578063c3c54a1f146101fa578063e67431e91461021a57600080fd5b80633e4eb36c1461016e57806368db2cdd146101af57600080fd5b80632ec338ba1161009a5780632ec338ba146100fc57806336ff71bc146101485780633c574bf71461015b57600080fd5b8063035cf142146100b65780630382292b146100da575b600080fd5b3480156100c257600080fd5b506000545b6040519081526020015b60405180910390f35b3480156100e657600080fd5b506100fa6100f53660046110a4565b61022d565b005b34801561010857600080fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d1565b6100fa6101563660046110f7565b61034b565b610123610169366004611064565b6105ea565b34801561017a57600080fd5b5060025474010000000000000000000000000000000000000000900462ffffff1660405162ffffff90911681526020016100d1565b3480156101bb57600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff16610123565b3480156101e657600080fd5b506100fa6101f53660046110c7565b6107e0565b34801561020657600080fd5b506100fa610215366004610fd7565b610839565b6100c761022836600461100b565b61094d565b60025473ffffffffffffffffffffffffffffffffffffffff16331461025157600080fd5b620f42408162ffffff1611156102c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f436f6d6d697373696f6e20726174652065786365656473207363616c6500000060448201526064015b60405180910390fd5b600280547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000062ffffff8416908102919091179091556040519081527f7944cc49dc8637e3cacb75b6261e778f93a87026e0357ae7c3b0e434324afa35906020015b60405180910390a150565b3460005b828110156105d3576000610363828761117a565b60025490915060009062ffffff740100000000000000000000000000000000000000008204169073ffffffffffffffffffffffffffffffffffffffff168787868181106103d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60405162ffffff909516602486015273ffffffffffffffffffffffffffffffffffffffff909316604485015250602090910201356064820152608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ce858bf000000000000000000000000000000000000000000000000000000001790526001549091506000906104b59073ffffffffffffffffffffffffffffffffffffffff168385610c56565b90507f60ea16e611deaec22d992e02267746362828fca13882a5d0dd11878eaa181230836040516104e891815260200190565b60405180910390a16000610505866801bc16d674ec800000610e17565b905080156105bc576040517fcfe2edcb00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff83169063cfe2edcb9083906024016020604051808303818588803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105ae91906110df565b506105b98187611192565b95505b5050505080806105cb906111a9565b91505061034f565b5080156105e4576105e43382610e2e565b50505050565b60006801bc16d674ec80000034111561060257600080fd5b60025460405174010000000000000000000000000000000000000000820462ffffff16602482015273ffffffffffffffffffffffffffffffffffffffff909116604482015260648101839052600090608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ce858bf000000000000000000000000000000000000000000000000000000001790526001549091506000906106f49073ffffffffffffffffffffffffffffffffffffffff168387610c56565b90507f60ea16e611deaec22d992e02267746362828fca13882a5d0dd11878eaa1812308560405161072791815260200190565b60405180910390a134156107d8576040517fcfe2edcb00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff82169063cfe2edcb9034906024016020604051808303818588803b15801561079d57600080fd5b505af11580156107b1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107d691906110df565b505b949350505050565b60025473ffffffffffffffffffffffffffffffffffffffff16331461080457600080fd5b60008190556040518181527f505ef1171e5f0d40e4db6458251e0f04d569b2573dc6dc166c714c8a93b5682690602001610340565b60025473ffffffffffffffffffffffffffffffffffffffff16331461085d57600080fd5b73ffffffffffffffffffffffffffffffffffffffff81166108da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573732063616e2774206265207a65726f206164647265737300000060448201526064016102bf565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e5490602001610340565b60003433825b85811015610c3a578415801561096a575060005483105b1561097457610c3a565b600154600090610a4a9073ffffffffffffffffffffffffffffffffffffffff168989858181106109cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606092831b60148201527f5af43d82803e903d91602b57fd5bf3ff0000000000000000000000000000000060288201523090921b6038830152604c8201526037808220606c830152605591012090565b905073ffffffffffffffffffffffffffffffffffffffff81163b15610c27578060018173ffffffffffffffffffffffffffffffffffffffff16631865c57d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ab257600080fd5b505afa158015610ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aea9190611085565b6003811115610b22577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c25576000610b5d86610b5873ffffffffffffffffffffffffffffffffffffffff8516316801bc16d674ec800000611192565b610e17565b90508780610b6d57506000548110155b15610c23576040517fcfe2edcb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015283169063cfe2edcb9083906024016020604051808303818588803b158015610bdc57600080fd5b505af1158015610bf0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c1591906110df565b50610c208187611192565b95505b505b505b5080610c32816111a9565b915050610953565b508115610c4b57610c4b3383610e2e565b5090505b9392505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528460601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f591505073ffffffffffffffffffffffffffffffffffffffff8116610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f50726f7879206465706c6f79206661696c65640000000000000000000000000060448201526064016102bf565b825115610c4f5760008173ffffffffffffffffffffffffffffffffffffffff1684604051610d629190611141565b6000604051808303816000865af19150503d8060008114610d9f576040519150601f19603f3d011682016040523d82523d6000602084013e610da4565b606091505b5050905080610e0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f50726f787920696e6974206661696c656400000000000000000000000000000060448201526064016102bf565b509392505050565b600081831115610e275781610c4f565b5090919050565b80471015610e98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102bf565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610ef2576040519150601f19603f3d011682016040523d82523d6000602084013e610ef7565b606091505b5050905080610f88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102bf565b505050565b60008083601f840112610f9e578182fd5b50813567ffffffffffffffff811115610fb5578182fd5b6020830191508360208260051b8501011115610fd057600080fd5b9250929050565b600060208284031215610fe8578081fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610c4f578182fd5b60008060006040848603121561101f578182fd5b833567ffffffffffffffff811115611035578283fd5b61104186828701610f8d565b90945092505060208401358015158114611059578182fd5b809150509250925092565b60008060408385031215611076578182fd5b50508035926020909101359150565b600060208284031215611096578081fd5b815160048110610c4f578182fd5b6000602082840312156110b5578081fd5b813562ffffff81168114610c4f578182fd5b6000602082840312156110d8578081fd5b5035919050565b6000602082840312156110f0578081fd5b5051919050565b60008060006040848603121561110b578283fd5b83359250602084013567ffffffffffffffff811115611128578283fd5b61113486828701610f8d565b9497909650939450505050565b60008251815b818110156111615760208186018101518583015201611147565b8181111561116f5782828501525b509190910192915050565b6000821982111561118d5761118d6111e2565b500190565b6000828210156111a4576111a46111e2565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156111db576111db6111e2565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122079b56c0d9abbafea8dd96ad207f698c7c36488e3fcabed4484762dd0c939236f64736f6c63430008040033608060405234801561001057600080fd5b50612bfa806100206000396000f3fe6080604052600436106102025760003560e01c8063671a24f11161011d578063cfe2edcb116100b0578063e94ad65b1161007f578063f54c071411610064578063f54c071414610767578063f632c1af14610787578063f67771751461079c57600080fd5b8063e94ad65b14610723578063f4970e711461074757600080fd5b8063cfe2edcb146106a5578063d0e30db0146106b8578063d4fdc309146106c0578063e1254fba146106e057600080fd5b8063924d2784116100ec578063924d27841461060b578063958e2d3114610645578063a457c2d714610665578063caa7262b1461068557600080fd5b8063671a24f1146105a15780636a8d8d8d146105b65780636ce858bf146105d65780637fcd7332146105f657600080fd5b8063395093511161019557806350f3dbec1161016457806350f3dbec146104ee5780635d13d5141461050e5780635d722feb1461052e578063666c10351461058157600080fd5b806339509351146104745780633e4eb36c14610494578063441a3e70146104ae57806346fcb042146104ce57600080fd5b8063171808af116101d1578063171808af146103a95780631865c57d146103c95780631ca800971461040c5780632ec338ba1461042157600080fd5b8063095ea7b3146102de5780630af4187d146103135780630e2cc32714610374578063168a48221461039457600080fd5b366102d95760016000547f0100000000000000000000000000000000000000000000000000000000000000900460ff16600381111561026a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156102d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f506c61696e204574686572207472616e73666572206e6f7420616c6c6f77656460448201526064015b60405180910390fd5b005b600080fd5b3480156102ea57600080fd5b506102fe6102f936600461276c565b6107bc565b60405190151581526020015b60405180910390f35b34801561031f57600080fd5b5061036661032e3660046126af565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b60405190815260200161030a565b34801561038057600080fd5b506102fe61038f36600461276c565b6107d2565b3480156103a057600080fd5b50600554610366565b3480156103b557600080fd5b506102fe6103c436600461276c565b61081b565b3480156103d557600080fd5b506000547f0100000000000000000000000000000000000000000000000000000000000000900460ff1660405161030a9190612a53565b34801561041857600080fd5b50600154610366565b34801561042d57600080fd5b506000546301000000900473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030a565b34801561048057600080fd5b506102fe61048f36600461276c565b610876565b3480156104a057600080fd5b5060005462ffffff16610366565b3480156104ba57600080fd5b506103666104c9366004612880565b6108ba565b3480156104da57600080fd5b506102fe6104e936600461276c565b6109f3565b3480156104fa57600080fd5b506102fe61050936600461276c565b610a3f565b34801561051a57600080fd5b506102d7610529366004612797565b610a4c565b34801561053a57600080fd5b506103666105493660046126af565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260036020908152604080832093909416825291909152205490565b34801561058d57600080fd5b506102fe61059c36600461276c565b610ec9565b3480156105ad57600080fd5b50600654610366565b3480156105c257600080fd5b506102d76105d13660046128a1565b610f0d565b3480156105e257600080fd5b506102d76105f136600461281c565b61116f565b34801561060257600080fd5b506102d7611350565b34801561061757600080fd5b5060005477010000000000000000000000000000000000000000000000900467ffffffffffffffff16610366565b34801561065157600080fd5b50610366610660366004612842565b611691565b34801561067157600080fd5b506102fe61068036600461276c565b6117d9565b34801561069157600080fd5b506103666106a036600461285a565b61181d565b6103666106b3366004612693565b611957565b610366611a2c565b3480156106cc57600080fd5b506103666106db3660046126e7565b611b06565b3480156106ec57600080fd5b506103666106fb366004612693565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b34801561072f57600080fd5b5061044f6f219ab540356cbb839cbe05303d7705fa81565b34801561075357600080fd5b506102fe61076236600461276c565b611ce9565b34801561077357600080fd5b506102fe61078236600461272c565b611cf6565b34801561079357600080fd5b50610366611d4e565b3480156107a857600080fd5b506103666107b7366004612693565b611e6d565b60006107c9338484611f2a565b50600192915050565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916107c9918590610816908690612aa7565b612016565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161086c908561085d86856120f9565b6108679085612b35565b611f2a565b5060019392505050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916107c9918590610867908690612aa7565b600060026000547f0100000000000000000000000000000000000000000000000000000000000000900460ff16600381111561091f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415604051806060016040528060248152602001612ba16024913990610972576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9190612a94565b50600061098033338661210f565b9050828110156109ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c657373207468616e206d696e696d756d20616d6f756e74000000000000000060448201526064016102ce565b9392505050565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909161086c9085610a3586856120f9565b6108169085612b35565b60006107c933848461226f565b6000546301000000900473ffffffffffffffffffffffffffffffffffffffff163314610ad4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016102ce565b60016000547f0100000000000000000000000000000000000000000000000000000000000000900460ff166003811115610b37577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14610b9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f56616c696461746f7220686173206265656e206372656174656400000000000060448201526064016102ce565b600080547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f020000000000000000000000000000000000000000000000000000000000000017905560308514610c51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f496e76616c69642076616c696461746f72207075626c6963206b65790000000060448201526064016102ce565b60608314610cbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496e76616c6964206465706f736974207369676e61747572650000000000000060448201526064016102ce565b30868686868686604051602001610cd8979695949392919061296e565b6040516020818303038152906040528051906020012060015414610d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4461746120646f65736e2774206d6174636820636f6d6d69746d656e7400000060448201526064016102ce565b600080547fff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffff167701000000000000000000000000000000000000000000000067ffffffffffffffff841602179055604080517f010000000000000000000000000000000000000000000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b16602c8201526f219ab540356cbb839cbe05303d7705fa916322895118916801bc16d674ec800000918a918a91016040516020818303038152906040528989896040518863ffffffff1660e01b8152600401610e5696959493929190612a04565b6000604051808303818588803b158015610e6f57600080fd5b505af1158015610e83573d6000803e3d6000fd5b50505050507fc7114975f4ef557d4d63c6e4171d351eb22178fecbeefc10214791527c1df0c58686604051610eb99291906129f0565b60405180910390a1505050505050565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916107c9918590610816908690612b35565b6000546301000000900473ffffffffffffffffffffffffffffffffffffffff163314610f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016102ce565b60026000547f0100000000000000000000000000000000000000000000000000000000000000900460ff166003811115610ff8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f56616c696461746f72206973206e6f742061637469766500000000000000000060448201526064016102ce565b60005467ffffffffffffffff77010000000000000000000000000000000000000000000000909104811690821610611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4e6f74206561726c696572207468616e20746865206f726967696e616c20766160448201527f6c7565000000000000000000000000000000000000000000000000000000000060648201526084016102ce565b6000805467ffffffffffffffff90921677010000000000000000000000000000000000000000000000027fff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b600080547f0100000000000000000000000000000000000000000000000000000000000000900460ff1660038111156111d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f436f6e747261637420697320616c726561647920696e697469616c697a65640060448201526064016102ce565b600080547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0100000000000000000000000000000000000000000000000000000000000000179055620f424062ffffff841611156112f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f436f6d6d697373696f6e20726174652065786365656473207363616c6500000060448201526064016102ce565b6000805473ffffffffffffffffffffffffffffffffffffffff9093166301000000027fffffffffffffffffff000000000000000000000000000000000000000000000090931662ffffff9094169390931791909117909155600155565b47806113b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f43616e277420656e64207769746820302062616c616e6365000000000000000060448201526064016102ce565b60026000547f0100000000000000000000000000000000000000000000000000000000000000900460ff16600381111561141b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e6f7420616c6c6f77656420696e207468652063757272656e7420737461746560448201526064016102ce565b6000546301000000900473ffffffffffffffffffffffffffffffffffffffff16331480156114d6575060005477010000000000000000000000000000000000000000000000900467ffffffffffffffff1642115b8061154e5750336000908152600460205260409020541580159061154e5750611502610e106018612af8565b61150e9061016d612af8565b611519906001612af8565b60005461154b919077010000000000000000000000000000000000000000000000900467ffffffffffffffff16612aa7565b42115b6115b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4e6f7420616c6c6f776564206174207468652063757272656e742074696d650060448201526064016102ce565b600080547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f03000000000000000000000000000000000000000000000000000000000000001790556801bc16d674ec8000008111156116655760006116236801bc16d674ec80000083612b35565b6000805491925090620f42409061163f9062ffffff1684612af8565b6116499190612abf565b9050806006600082825461165d9190612aa7565b909155505050505b6040517ffbd6622fc13ddf86275d242b7ed2c826cd2a9bc82b2c6db61a651c8b044339f690600090a150565b600060026000547f0100000000000000000000000000000000000000000000000000000000000000900460ff1660038111156116f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415604051806060016040528060248152602001612ba16024913990611749576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9190612a94565b5033600081815260046020526040812054909161176791819061210f565b9050828110156117d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c657373207468616e206d696e696d756d20616d6f756e74000000000000000060448201526064016102ce565b92915050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916107c9918590610867908690612b35565b600060026000547f0100000000000000000000000000000000000000000000000000000000000000900460ff166003811115611882577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415604051806060016040528060248152602001612ba160249139906118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9190612a94565b5060006118e333858761210f565b90508281101561194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c657373207468616e206d696e696d756d20616d6f756e74000000000000000060448201526064016102ce565b949350505050565b600060016000547f0100000000000000000000000000000000000000000000000000000000000000900460ff1660038111156119bc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696461746f7220616c726561647920637265617465640000000000000060448201526064016102ce565b6117d3826123c1565b600060016000547f0100000000000000000000000000000000000000000000000000000000000000900460ff166003811115611a91577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f56616c696461746f7220616c726561647920637265617465640000000000000060448201526064016102ce565b611b01336123c1565b905090565b600060026000547f0100000000000000000000000000000000000000000000000000000000000000900460ff166003811115611b6b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415604051806060016040528060248152602001612ba16024913990611bbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ce9190612a94565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260036020908152604080832033845290915281205490611bfb8583612b35565b73ffffffffffffffffffffffffffffffffffffffff8816600081815260036020908152604080832033808552908352928190208590555184815293945090927f86cf336bf0eef9691e91aad1f012fdff22e082219d77b1b84289e919a1ed1326910160405180910390a36000611c7288888861210f565b905084811015611cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4c657373207468616e206d696e696d756d20616d6f756e74000000000000000060448201526064016102ce565b979650505050505050565b60006107c9338484612016565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260026020908152604080832033808552925282205490611d389086906108678685612b35565b611d4385858561226f565b506001949350505050565b600080546301000000900473ffffffffffffffffffffffffffffffffffffffff163314611dd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616c6c6572206973206e6f7420746865206f70657261746f7200000000000060448201526064016102ce565b6006548015611b01576000600681905554611e0f906301000000900473ffffffffffffffffffffffffffffffffffffffff16826124d0565b60005460408051630100000090920473ffffffffffffffffffffffffffffffffffffffff168252602082018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4910160405180910390a1905090565b600060026000547f0100000000000000000000000000000000000000000000000000000000000000900460ff166003811115611ed2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611ee057506000919050565b600554600654611ef09047612b35565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020526040902054611f209190612af8565b6117d39190612abf565b73ffffffffffffffffffffffffffffffffffffffff8216611fa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016102ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8216612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016102ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526003602090815260408083209487168084529482529182902085905590518481527f86cf336bf0eef9691e91aad1f012fdff22e082219d77b1b84289e919a1ed13269101612009565b600081831061210857816109ec565b5090919050565b600080821161217a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f416d6f756e742073686f756c646e2774206265207a65726f000000000000000060448201526064016102ce565b60006005546006544761218d9190612b35565b6121979085612af8565b6121a19190612abf565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600460205260408120805492935085929091906121db908490612b35565b9250508190555082600560008282546121f49190612b35565b9091555050604080518481526020810183905273ffffffffffffffffffffffffffffffffffffffff80871692908816917fc2b4a290c20fb28939d29f102514fbffd2b73c059ffba8b78250c94161d5fcc6910160405180910390a361194f73ffffffffffffffffffffffffffffffffffffffff8516826124d0565b73ffffffffffffffffffffffffffffffffffffffff82166122ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016102ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604081208054839290612321908490612b35565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260408120805483929061235b908490612aa7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161200991815260200190565b6000346801bc16d674ec80000047116123db5760006123ee565b6123ee6801bc16d674ec80000047612b35565b915060006123fc8383612b35565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260046020526040812080549293508392909190612436908490612aa7565b92505081905550806005600082825461244f9190612aa7565b90915550506040805173ffffffffffffffffffffffffffffffffffffffff86168152602081018390527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c910160405180910390a182156124c9576124c973ffffffffffffffffffffffffffffffffffffffff8516846124d0565b5050919050565b8047101561253a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102ce565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612594576040519150601f19603f3d011682016040523d82523d6000602084013e612599565b606091505b505090508061262a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102ce565b505050565b60008083601f840112612640578182fd5b50813567ffffffffffffffff811115612657578182fd5b60208301915083602082850101111561266f57600080fd5b9250929050565b803567ffffffffffffffff8116811461268e57600080fd5b919050565b6000602082840312156126a4578081fd5b81356109ec81612b7b565b600080604083850312156126c1578081fd5b82356126cc81612b7b565b915060208301356126dc81612b7b565b809150509250929050565b600080600080608085870312156126fc578182fd5b843561270781612b7b565b9350602085013561271781612b7b565b93969395505050506040820135916060013590565b600080600060608486031215612740578283fd5b833561274b81612b7b565b9250602084013561275b81612b7b565b929592945050506040919091013590565b6000806040838503121561277e578182fd5b823561278981612b7b565b946020939093013593505050565b600080600080600080608087890312156127af578182fd5b863567ffffffffffffffff808211156127c6578384fd5b6127d28a838b0161262f565b909850965060208901359150808211156127ea578384fd5b506127f789828a0161262f565b9095509350506040870135915061281060608801612676565b90509295509295509295565b600080600060608486031215612830578283fd5b833562ffffff8116811461274b578384fd5b600060208284031215612853578081fd5b5035919050565b60008060006060848603121561286e578283fd5b83359250602084013561275b81612b7b565b60008060408385031215612892578182fd5b50508035926020909101359150565b6000602082840312156128b2578081fd5b6109ec82612676565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600081518084526020825b8281101561292957848101820151868201830152810161290e565b8281111561293957838284880101525b50807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401168601019250505092915050565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008860601b16815285876014830137600086820160148101828152868882375060149501948501939093525060c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016603483015250603c01949350505050565b60208152600061194f6020830184866128bb565b608081526000612a1860808301888a6128bb565b8281036020840152612a2a8188612903565b90508281036040840152612a3f8186886128bb565b915050826060830152979650505050505050565b6020810160048310612a8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6020815260006109ec6020830184612903565b60008219821115612aba57612aba612b4c565b500190565b600082612af3577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b3057612b30612b4c565b500290565b600082821015612b4757612b47612b4c565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114612b9d57600080fd5b5056fe4e6f7420616c6c6f776564207768656e2076616c696461746f7220697320616374697665a26469706673582212200b7cedc9067ec1d24c831fc4b3489f87a6a061209f64b8e65feac3fd71122a1764736f6c6343000804003300000000000000000000000000000000000000000000000000000000000186a0
Deployed Bytecode
0x6080604052600436106100b15760003560e01c80633e4eb36c11610069578063c189f8c71161004e578063c189f8c7146101da578063c3c54a1f146101fa578063e67431e91461021a57600080fd5b80633e4eb36c1461016e57806368db2cdd146101af57600080fd5b80632ec338ba1161009a5780632ec338ba146100fc57806336ff71bc146101485780633c574bf71461015b57600080fd5b8063035cf142146100b65780630382292b146100da575b600080fd5b3480156100c257600080fd5b506000545b6040519081526020015b60405180910390f35b3480156100e657600080fd5b506100fa6100f53660046110a4565b61022d565b005b34801561010857600080fd5b5060025473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d1565b6100fa6101563660046110f7565b61034b565b610123610169366004611064565b6105ea565b34801561017a57600080fd5b5060025474010000000000000000000000000000000000000000900462ffffff1660405162ffffff90911681526020016100d1565b3480156101bb57600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff16610123565b3480156101e657600080fd5b506100fa6101f53660046110c7565b6107e0565b34801561020657600080fd5b506100fa610215366004610fd7565b610839565b6100c761022836600461100b565b61094d565b60025473ffffffffffffffffffffffffffffffffffffffff16331461025157600080fd5b620f42408162ffffff1611156102c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f436f6d6d697373696f6e20726174652065786365656473207363616c6500000060448201526064015b60405180910390fd5b600280547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000062ffffff8416908102919091179091556040519081527f7944cc49dc8637e3cacb75b6261e778f93a87026e0357ae7c3b0e434324afa35906020015b60405180910390a150565b3460005b828110156105d3576000610363828761117a565b60025490915060009062ffffff740100000000000000000000000000000000000000008204169073ffffffffffffffffffffffffffffffffffffffff168787868181106103d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60405162ffffff909516602486015273ffffffffffffffffffffffffffffffffffffffff909316604485015250602090910201356064820152608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ce858bf000000000000000000000000000000000000000000000000000000001790526001549091506000906104b59073ffffffffffffffffffffffffffffffffffffffff168385610c56565b90507f60ea16e611deaec22d992e02267746362828fca13882a5d0dd11878eaa181230836040516104e891815260200190565b60405180910390a16000610505866801bc16d674ec800000610e17565b905080156105bc576040517fcfe2edcb00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff83169063cfe2edcb9083906024016020604051808303818588803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105ae91906110df565b506105b98187611192565b95505b5050505080806105cb906111a9565b91505061034f565b5080156105e4576105e43382610e2e565b50505050565b60006801bc16d674ec80000034111561060257600080fd5b60025460405174010000000000000000000000000000000000000000820462ffffff16602482015273ffffffffffffffffffffffffffffffffffffffff909116604482015260648101839052600090608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ce858bf000000000000000000000000000000000000000000000000000000001790526001549091506000906106f49073ffffffffffffffffffffffffffffffffffffffff168387610c56565b90507f60ea16e611deaec22d992e02267746362828fca13882a5d0dd11878eaa1812308560405161072791815260200190565b60405180910390a134156107d8576040517fcfe2edcb00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff82169063cfe2edcb9034906024016020604051808303818588803b15801561079d57600080fd5b505af11580156107b1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107d691906110df565b505b949350505050565b60025473ffffffffffffffffffffffffffffffffffffffff16331461080457600080fd5b60008190556040518181527f505ef1171e5f0d40e4db6458251e0f04d569b2573dc6dc166c714c8a93b5682690602001610340565b60025473ffffffffffffffffffffffffffffffffffffffff16331461085d57600080fd5b73ffffffffffffffffffffffffffffffffffffffff81166108da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573732063616e2774206265207a65726f206164647265737300000060448201526064016102bf565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e5490602001610340565b60003433825b85811015610c3a578415801561096a575060005483105b1561097457610c3a565b600154600090610a4a9073ffffffffffffffffffffffffffffffffffffffff168989858181106109cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606092831b60148201527f5af43d82803e903d91602b57fd5bf3ff0000000000000000000000000000000060288201523090921b6038830152604c8201526037808220606c830152605591012090565b905073ffffffffffffffffffffffffffffffffffffffff81163b15610c27578060018173ffffffffffffffffffffffffffffffffffffffff16631865c57d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ab257600080fd5b505afa158015610ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aea9190611085565b6003811115610b22577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c25576000610b5d86610b5873ffffffffffffffffffffffffffffffffffffffff8516316801bc16d674ec800000611192565b610e17565b90508780610b6d57506000548110155b15610c23576040517fcfe2edcb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015283169063cfe2edcb9083906024016020604051808303818588803b158015610bdc57600080fd5b505af1158015610bf0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c1591906110df565b50610c208187611192565b95505b505b505b5080610c32816111a9565b915050610953565b508115610c4b57610c4b3383610e2e565b5090505b9392505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528460601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f591505073ffffffffffffffffffffffffffffffffffffffff8116610d34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f50726f7879206465706c6f79206661696c65640000000000000000000000000060448201526064016102bf565b825115610c4f5760008173ffffffffffffffffffffffffffffffffffffffff1684604051610d629190611141565b6000604051808303816000865af19150503d8060008114610d9f576040519150601f19603f3d011682016040523d82523d6000602084013e610da4565b606091505b5050905080610e0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f50726f787920696e6974206661696c656400000000000000000000000000000060448201526064016102bf565b509392505050565b600081831115610e275781610c4f565b5090919050565b80471015610e98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102bf565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610ef2576040519150601f19603f3d011682016040523d82523d6000602084013e610ef7565b606091505b5050905080610f88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102bf565b505050565b60008083601f840112610f9e578182fd5b50813567ffffffffffffffff811115610fb5578182fd5b6020830191508360208260051b8501011115610fd057600080fd5b9250929050565b600060208284031215610fe8578081fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610c4f578182fd5b60008060006040848603121561101f578182fd5b833567ffffffffffffffff811115611035578283fd5b61104186828701610f8d565b90945092505060208401358015158114611059578182fd5b809150509250925092565b60008060408385031215611076578182fd5b50508035926020909101359150565b600060208284031215611096578081fd5b815160048110610c4f578182fd5b6000602082840312156110b5578081fd5b813562ffffff81168114610c4f578182fd5b6000602082840312156110d8578081fd5b5035919050565b6000602082840312156110f0578081fd5b5051919050565b60008060006040848603121561110b578283fd5b83359250602084013567ffffffffffffffff811115611128578283fd5b61113486828701610f8d565b9497909650939450505050565b60008251815b818110156111615760208186018101518583015201611147565b8181111561116f5782828501525b509190910192915050565b6000821982111561118d5761118d6111e2565b500190565b6000828210156111a4576111a46111e2565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156111db576111db6111e2565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122079b56c0d9abbafea8dd96ad207f698c7c36488e3fcabed4484762dd0c939236f64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000186a0
-----Decoded View---------------
Arg [0] : commissionRate (uint24): 100000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000186a0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.