Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 23 from a total of 23 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Sign Up | 9229120 | 1861 days ago | IN | 0 ETH | 0.0002933 | ||||
Sign Up | 8173108 | 2034 days ago | IN | 0 ETH | 0.00059456 | ||||
Sign Up | 7496906 | 2139 days ago | IN | 0 ETH | 0.00059456 | ||||
Sign Up | 7300886 | 2170 days ago | IN | 0 ETH | 0.00059541 | ||||
Sign Up | 7137980 | 2205 days ago | IN | 0 ETH | 0.00029706 | ||||
Sign Up | 7137980 | 2205 days ago | IN | 0 ETH | 0.00029706 | ||||
Sign Up | 6827130 | 2259 days ago | IN | 0 ETH | 0.00207951 | ||||
Sign Up | 6725706 | 2276 days ago | IN | 0 ETH | 0.00089249 | ||||
Sign Up | 6560258 | 2303 days ago | IN | 0 ETH | 0.00059384 | ||||
Sign Up | 6559684 | 2303 days ago | IN | 0 ETH | 0.00237652 | ||||
Sign Up | 6539318 | 2306 days ago | IN | 0 ETH | 0.00149036 | ||||
Sign Up | 6424485 | 2325 days ago | IN | 0 ETH | 0.00238343 | ||||
Sign Up | 6424471 | 2325 days ago | IN | 0 ETH | 0.00238343 | ||||
Sign Up | 6360862 | 2336 days ago | IN | 0 ETH | 0.00237536 | ||||
Sign Up | 6320174 | 2342 days ago | IN | 0 ETH | 0.0023817 | ||||
Sign Up | 6320171 | 2342 days ago | IN | 0 ETH | 0.00178627 | ||||
Sign Up | 6244083 | 2355 days ago | IN | 0 ETH | 0.00089251 | ||||
Sign Up | 6076764 | 2383 days ago | IN | 0 ETH | 0.00029699 | ||||
Sign Up | 6067413 | 2385 days ago | IN | 0 ETH | 0.00059456 | ||||
Sign Up | 6058709 | 2386 days ago | IN | 0 ETH | 0.00035786 | ||||
Sign Up | 6035611 | 2390 days ago | IN | 0 ETH | 0.00029821 | ||||
Sign Up | 6035341 | 2390 days ago | IN | 0 ETH | 0.00162507 | ||||
Update | 6035031 | 2390 days ago | IN | 0 ETH | 0.00047226 |
Latest 22 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
9229120 | 1861 days ago | Contract Creation | 0 ETH | |||
8173108 | 2034 days ago | Contract Creation | 0 ETH | |||
7496906 | 2139 days ago | Contract Creation | 0 ETH | |||
7300886 | 2170 days ago | Contract Creation | 0 ETH | |||
7137980 | 2205 days ago | Contract Creation | 0 ETH | |||
7137980 | 2205 days ago | Contract Creation | 0 ETH | |||
6827130 | 2259 days ago | Contract Creation | 0 ETH | |||
6725706 | 2276 days ago | Contract Creation | 0 ETH | |||
6560258 | 2303 days ago | Contract Creation | 0 ETH | |||
6559684 | 2303 days ago | Contract Creation | 0 ETH | |||
6539318 | 2306 days ago | Contract Creation | 0 ETH | |||
6424485 | 2325 days ago | Contract Creation | 0 ETH | |||
6424471 | 2325 days ago | Contract Creation | 0 ETH | |||
6360862 | 2336 days ago | Contract Creation | 0 ETH | |||
6320174 | 2342 days ago | Contract Creation | 0 ETH | |||
6320171 | 2342 days ago | Contract Creation | 0 ETH | |||
6244083 | 2355 days ago | Contract Creation | 0 ETH | |||
6076764 | 2383 days ago | Contract Creation | 0 ETH | |||
6067413 | 2385 days ago | Contract Creation | 0 ETH | |||
6058709 | 2386 days ago | Contract Creation | 0 ETH | |||
6035611 | 2390 days ago | Contract Creation | 0 ETH | |||
6035341 | 2390 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
AffiliateFactory
Compiler Version
v0.4.23+commit.124ca40d
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-07-26 */ pragma solidity ^0.4.21; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } contract WETH9 { string public name = "Wrapped Ether"; string public symbol = "WETH"; uint8 public decimals = 18; event Approval(address indexed src, address indexed guy, uint wad); event Transfer(address indexed src, address indexed dst, uint wad); event Deposit(address indexed dst, uint wad); event Withdrawal(address indexed src, uint wad); mapping (address => uint) public balanceOf; mapping (address => mapping (address => uint)) public allowance; function() public payable { deposit(); } function deposit() public payable { balanceOf[msg.sender] += msg.value; Deposit(msg.sender, msg.value); } function withdraw(uint wad) public { require(balanceOf[msg.sender] >= wad); balanceOf[msg.sender] -= wad; msg.sender.transfer(wad); Withdrawal(msg.sender, wad); } function totalSupply() public view returns (uint) { return this.balance; } function approve(address guy, uint wad) public returns (bool) { allowance[msg.sender][guy] = wad; Approval(msg.sender, guy, wad); return true; } function transfer(address dst, uint wad) public returns (bool) { return transferFrom(msg.sender, dst, wad); } function transferFrom(address src, address dst, uint wad) public returns (bool) { require(balanceOf[src] >= wad); if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) { require(allowance[src][msg.sender] >= wad); allowance[src][msg.sender] -= wad; } balanceOf[src] -= wad; balanceOf[dst] += wad; Transfer(src, dst, wad); return true; } } interface Registry { function isAffiliated(address _affiliate) external returns (bool); } contract Affiliate { struct Share { address shareholder; uint stake; } Share[] shares; uint public totalShares; string public relayerName; address registry; WETH9 weth; event Payout(address indexed token, uint amount); function init(address _registry, address[] shareholders, uint[] stakes, address _weth, string _name) public returns (bool) { require(totalShares == 0); require(shareholders.length == stakes.length); weth = WETH9(_weth); totalShares = 0; for(uint i=0; i < shareholders.length; i++) { shares.push(Share({shareholder: shareholders[i], stake: stakes[i]})); totalShares += stakes[i]; } relayerName = _name; registry = _registry; return true; } function payout(address[] tokens) public { // Payout all stakes at once, so we don't have to do bookkeeping on who has // claimed their shares and who hasn't. If the number of shareholders is large // this could run into some gas limits. In most cases, I expect two // shareholders, but it could be a small handful. This also means the caller // must pay gas for everyone's payouts. for(uint i=0; i < tokens.length; i++) { ERC20 token = ERC20(tokens[i]); uint balance = token.balanceOf(this); for(uint j=0; j < shares.length; j++) { token.transfer(shares[j].shareholder, SafeMath.mul(balance, shares[j].stake) / totalShares); } emit Payout(tokens[i], balance); } } function isAffiliated(address _affiliate) public returns (bool) { return Registry(registry).isAffiliated(_affiliate); } function() public payable { // If we get paid in ETH, convert to WETH so payouts work the same. // Converting to WETH also makes payouts a bit safer, as we don't have to // worry about code execution if the stakeholder is a contract. weth.deposit.value(msg.value)(); } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } interface Downstream { function registerAffiliate(address _affiliate, string _name) external returns (bool); } contract AffiliateFactory is Ownable { event AffiliateDeployed(address affiliateAddress, address targetAddress, string affiliateName, address indexed sender); address public target; address public beneficiary; address public WETH; address public downstream; uint public beneficiaryStake; uint public senderStake; mapping(address => string) affiliates; constructor(address _target, address _weth, uint _beneficiaryStake, uint _senderStake, address _downstream) public Ownable() { update(_target, msg.sender, _weth, _beneficiaryStake, _senderStake, _downstream); } function update(address _target, address _beneficiary, address _weth, uint _beneficiaryStake, uint _senderStake, address _downstream) public onlyOwner { target = _target; beneficiary = _beneficiary; beneficiaryStake = _beneficiaryStake; senderStake = _senderStake; downstream = _downstream; WETH = _weth; } function signUp(address[] _stakeHolders, uint256[] _stakes, string _name) external returns (address affiliateContract) { require(_stakeHolders.length > 0 && _stakeHolders.length == _stakes.length && bytes(_name).length > 0); affiliateContract = createProxyImpl(target); address[] memory stakeHolders = new address[](_stakeHolders.length + 1); uint[] memory shares = new uint[](stakeHolders.length); stakeHolders[0] = beneficiary; shares[0] = beneficiaryStake; uint256 stakesTotal = 0; for(uint i=0; i < _stakeHolders.length; i++) { require(_stakes[i] > 0); stakesTotal = SafeMath.add(stakesTotal, _stakes[i]); } require(stakesTotal > 0); for(i=0; i < _stakeHolders.length; i++) { stakeHolders[i+1] = _stakeHolders[i]; // (user stake) / (total stake) * (available stake) ; but with integer math shares[i+1] = SafeMath.mul(_stakes[i], senderStake) / stakesTotal ; } require(Affiliate(affiliateContract).init(this, stakeHolders, shares, WETH, _name)); affiliates[affiliateContract] = _name; emit AffiliateDeployed(affiliateContract, target, _name, msg.sender); if(downstream != address(0)) { Downstream(downstream).registerAffiliate(affiliateContract, _name); } } function registerAffiliate(address[] stakeHolders, uint[] shares, string _name) external onlyOwner returns (address affiliateContract) { require(stakeHolders.length > 0 && stakeHolders.length == shares.length && bytes(_name).length > 0); affiliateContract = createProxyImpl(target); require(Affiliate(affiliateContract).init(this, stakeHolders, shares, WETH, _name)); affiliates[affiliateContract] = _name; emit AffiliateDeployed(affiliateContract, target, _name, msg.sender); if(downstream != address(0)) { Downstream(downstream).registerAffiliate(affiliateContract, _name); } } function isAffiliated(address _affiliate) external view returns (bool) { return bytes(affiliates[_affiliate]).length != 0; } function affiliateName(address _affiliate) external view returns (string) { return affiliates[_affiliate]; } function createProxyImpl(address _target) internal returns (address proxyContract) { assembly { let contractCode := mload(0x40) // Find empty storage location using "free memory pointer" mstore(add(contractCode, 0x0b), _target) // Add target address, with a 11 bytes [i.e. 23 - (32 - 20)] offset to later accomodate first part of the bytecode mstore(sub(contractCode, 0x09), 0x000000000000000000603160008181600b9039f3600080808080368092803773) // First part of the bytecode, shifted left by 9 bytes, overwrites left padding of target address mstore(add(contractCode, 0x2b), 0x5af43d828181803e808314602f57f35bfd000000000000000000000000000000) // Final part of bytecode, offset by 43 bytes proxyContract := create(0, contractCode, 60) // total length 60 bytes if iszero(extcodesize(proxyContract)) { revert(0, 0) } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"downstream","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_affiliate","type":"address"}],"name":"isAffiliated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WETH","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiaryStake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"stakeHolders","type":"address[]"},{"name":"shares","type":"uint256[]"},{"name":"_name","type":"string"}],"name":"registerAffiliate","outputs":[{"name":"affiliateContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"target","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_affiliate","type":"address"}],"name":"affiliateName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_beneficiary","type":"address"},{"name":"_weth","type":"address"},{"name":"_beneficiaryStake","type":"uint256"},{"name":"_senderStake","type":"uint256"},{"name":"_downstream","type":"address"}],"name":"update","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_stakeHolders","type":"address[]"},{"name":"_stakes","type":"uint256[]"},{"name":"_name","type":"string"}],"name":"signUp","outputs":[{"name":"affiliateContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"senderStake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_target","type":"address"},{"name":"_weth","type":"address"},{"name":"_beneficiaryStake","type":"uint256"},{"name":"_senderStake","type":"uint256"},{"name":"_downstream","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"affiliateAddress","type":"address"},{"indexed":false,"name":"targetAddress","type":"address"},{"indexed":false,"name":"affiliateName","type":"string"},{"indexed":true,"name":"sender","type":"address"}],"name":"AffiliateDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405160a080611b608339810180604052810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100b88533868686866100c2640100000000026401000000009004565b5050505050610237565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561011d57600080fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005819055508160068190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b61191a806102466000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063359582ca146100ca57806338af3eed146101215780638da5cb5b146101785780639ab102ac146101cf578063ad5c46481461022a578063b079257014610281578063c9e01787146102ac578063d4b8399214610357578063d5bf158a146103ae578063e0b9e83d1461046a578063f2fde38b14610521578063f492a72f14610564578063f720a4531461060f575b600080fd5b3480156100d657600080fd5b506100df61063a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012d57600080fd5b50610136610660565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018457600080fd5b5061018d610686565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101db57600080fd5b50610210600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ab565b604051808215151515815260200191505060405180910390f35b34801561023657600080fd5b5061023f61070b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028d57600080fd5b50610296610731565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b50610315600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610737565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036357600080fd5b5061036c610c55565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ba57600080fd5b506103ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c7b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561042f578082015181840152602081019050610414565b50505050905090810190601f16801561045c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561047657600080fd5b5061051f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5c565b005b34801561052d57600080fd5b50610562600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ed1565b005b34801561057057600080fd5b506105cd600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611026565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061b57600080fd5b50610624611786565b6040518082815260200191505060405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080546001816001161561010002031660029004905014159050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561079457600080fd5b6000878790501180156107ac57508484905087879050145b80156107bb5750600083839050115b15156107c657600080fd5b6107f1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661178c565b90508073ffffffffffffffffffffffffffffffffffffffff166317342d363089898989600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a8a6040518963ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200184810384528b8b82818152602001925060200280828437820191505084810383528989828181526020019250602002808284378201915050848103825286868281815260200192508082843782019150509b505050505050505050505050602060405180830381600087803b15801561095057600080fd5b505af1158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b8101908080519060200190929190505050151561099657600080fd5b8282600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091906109e4929190611849565b503373ffffffffffffffffffffffffffffffffffffffff167f60dad0d232381238c031553102e3a2d779bda5a9507ec806820542b3da2801eb82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4b57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334b552358285856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200182810382528484828181526020019250808284378201915050945050505050602060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b505050506040513d6020811015610c3857600080fd5b8101908080519060200190929190505050505b9695505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d505780601f10610d2557610100808354040283529160200191610d50565b820191906000526020600020905b815481529060010190602001808311610d3357829003601f168201915b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610db757600080fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005819055508160068190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f6857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060608060008060008b8b90501180156110465750888890508b8b9050145b80156110555750600087879050115b151561106057600080fd5b61108b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661178c565b945060018b8b9050016040519080825280602002602001820160405280156110c25781602001602082028038833980820191505090505b50935083516040519080825280602002602001820160405280156110f55781602001602082028038833980820191505090505b509250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600081518110151561112a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055483600081518110151561117857fe5b906020019060200201818152505060009150600090505b8a8a90508110156111ea57600089898381811015156111aa57fe5b905060200201351115156111bd57600080fd5b6111db828a8a8481811015156111cf57fe5b905060200201356117f5565b9150808060010191505061118f565b6000821115156111f957600080fd5b600090505b8a8a90508110156112d8578a8a82818110151561121757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16846001830181518110151561124557fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050816112a28a8a84818110151561129357fe5b90506020020135600654611811565b8115156112ab57fe5b0483600183018151811015156112bd57fe5b906020019060200201818152505080806001019150506111fe565b8473ffffffffffffffffffffffffffffffffffffffff166317342d36308686600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c8c6040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845289818151815260200191508051906020019060200280838360005b838110156113f65780820151818401526020810190506113db565b50505050905001848103835288818151815260200191508051906020019060200280838360005b8381101561143857808201518184015260208101905061141d565b50505050905001848103825286868281815260200192508082843782019150509950505050505050505050602060405180830381600087803b15801561147d57600080fd5b505af1158015611491573d6000803e3d6000fd5b505050506040513d60208110156114a757600080fd5b810190808051906020019092919050505015156114c357600080fd5b8686600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209190611511929190611849565b503373ffffffffffffffffffffffffffffffffffffffff167f60dad0d232381238c031553102e3a2d779bda5a9507ec806820542b3da2801eb86600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a8a604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561177857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334b552358689896040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200182810382528484828181526020019250808284378201915050945050505050602060405180830381600087803b15801561173b57600080fd5b505af115801561174f573d6000803e3d6000fd5b505050506040513d602081101561176557600080fd5b8101908080519060200190929190505050505b505050509695505050505050565b60065481565b600060405182600b82015276603160008181600b9039f360008080808036809280377360098203527f5af43d828181803e808314602f57f35bfd000000000000000000000000000000602b820152603c816000f09150813b15156117ef57600080fd5b50919050565b6000818301905082811015151561180857fe5b80905092915050565b6000808314156118245760009050611843565b818302905081838281151561183557fe5b0414151561183f57fe5b8090505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188a57803560ff19168380011785556118b8565b828001600101855582156118b8579182015b828111156118b757823582559160200191906001019061189c565b5b5090506118c591906118c9565b5090565b6118eb91905b808211156118e75760008160009055506001016118cf565b5090565b905600a165627a7a723058200f0d9e3b6965cdde5c34f9ac987644f1971bc8c9738ef63770392af5468be0410029
Deployed Bytecode
0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063359582ca146100ca57806338af3eed146101215780638da5cb5b146101785780639ab102ac146101cf578063ad5c46481461022a578063b079257014610281578063c9e01787146102ac578063d4b8399214610357578063d5bf158a146103ae578063e0b9e83d1461046a578063f2fde38b14610521578063f492a72f14610564578063f720a4531461060f575b600080fd5b3480156100d657600080fd5b506100df61063a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012d57600080fd5b50610136610660565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018457600080fd5b5061018d610686565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101db57600080fd5b50610210600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ab565b604051808215151515815260200191505060405180910390f35b34801561023657600080fd5b5061023f61070b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028d57600080fd5b50610296610731565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b50610315600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610737565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036357600080fd5b5061036c610c55565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ba57600080fd5b506103ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c7b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561042f578082015181840152602081019050610414565b50505050905090810190601f16801561045c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561047657600080fd5b5061051f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5c565b005b34801561052d57600080fd5b50610562600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ed1565b005b34801561057057600080fd5b506105cd600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611026565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061b57600080fd5b50610624611786565b6040518082815260200191505060405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080546001816001161561010002031660029004905014159050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561079457600080fd5b6000878790501180156107ac57508484905087879050145b80156107bb5750600083839050115b15156107c657600080fd5b6107f1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661178c565b90508073ffffffffffffffffffffffffffffffffffffffff166317342d363089898989600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a8a6040518963ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200184810384528b8b82818152602001925060200280828437820191505084810383528989828181526020019250602002808284378201915050848103825286868281815260200192508082843782019150509b505050505050505050505050602060405180830381600087803b15801561095057600080fd5b505af1158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b8101908080519060200190929190505050151561099657600080fd5b8282600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091906109e4929190611849565b503373ffffffffffffffffffffffffffffffffffffffff167f60dad0d232381238c031553102e3a2d779bda5a9507ec806820542b3da2801eb82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4b57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334b552358285856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200182810382528484828181526020019250808284378201915050945050505050602060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b505050506040513d6020811015610c3857600080fd5b8101908080519060200190929190505050505b9695505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d505780601f10610d2557610100808354040283529160200191610d50565b820191906000526020600020905b815481529060010190602001808311610d3357829003601f168201915b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610db757600080fd5b85600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826005819055508160068190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f6857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060608060008060008b8b90501180156110465750888890508b8b9050145b80156110555750600087879050115b151561106057600080fd5b61108b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661178c565b945060018b8b9050016040519080825280602002602001820160405280156110c25781602001602082028038833980820191505090505b50935083516040519080825280602002602001820160405280156110f55781602001602082028038833980820191505090505b509250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600081518110151561112a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055483600081518110151561117857fe5b906020019060200201818152505060009150600090505b8a8a90508110156111ea57600089898381811015156111aa57fe5b905060200201351115156111bd57600080fd5b6111db828a8a8481811015156111cf57fe5b905060200201356117f5565b9150808060010191505061118f565b6000821115156111f957600080fd5b600090505b8a8a90508110156112d8578a8a82818110151561121757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16846001830181518110151561124557fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050816112a28a8a84818110151561129357fe5b90506020020135600654611811565b8115156112ab57fe5b0483600183018151811015156112bd57fe5b906020019060200201818152505080806001019150506111fe565b8473ffffffffffffffffffffffffffffffffffffffff166317342d36308686600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168c8c6040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845289818151815260200191508051906020019060200280838360005b838110156113f65780820151818401526020810190506113db565b50505050905001848103835288818151815260200191508051906020019060200280838360005b8381101561143857808201518184015260208101905061141d565b50505050905001848103825286868281815260200192508082843782019150509950505050505050505050602060405180830381600087803b15801561147d57600080fd5b505af1158015611491573d6000803e3d6000fd5b505050506040513d60208110156114a757600080fd5b810190808051906020019092919050505015156114c357600080fd5b8686600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209190611511929190611849565b503373ffffffffffffffffffffffffffffffffffffffff167f60dad0d232381238c031553102e3a2d779bda5a9507ec806820542b3da2801eb86600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a8a604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561177857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334b552358689896040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200182810382528484828181526020019250808284378201915050945050505050602060405180830381600087803b15801561173b57600080fd5b505af115801561174f573d6000803e3d6000fd5b505050506040513d602081101561176557600080fd5b8101908080519060200190929190505050505b505050509695505050505050565b60065481565b600060405182600b82015276603160008181600b9039f360008080808036809280377360098203527f5af43d828181803e808314602f57f35bfd000000000000000000000000000000602b820152603c816000f09150813b15156117ef57600080fd5b50919050565b6000818301905082811015151561180857fe5b80905092915050565b6000808314156118245760009050611843565b818302905081838281151561183557fe5b0414151561183f57fe5b8090505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188a57803560ff19168380011785556118b8565b828001600101855582156118b8579182015b828111156118b757823582559160200191906001019061189c565b5b5090506118c591906118c9565b5090565b6118eb91905b808211156118e75760008160009055506001016118cf565b5090565b905600a165627a7a723058200f0d9e3b6965cdde5c34f9ac987644f1971bc8c9738ef63770392af5468be0410029
Swarm Source
bzzr://0f0d9e3b6965cdde5c34f9ac987644f1971bc8c9738ef63770392af5468be041
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.