More Info
Private Name Tags
ContractCreator
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 8021268 | 2040 days ago | IN | 0.944049 ETH | 0.00171428 | ||||
Transfer | 8009552 | 2041 days ago | IN | 0.001 ETH | 0.00028928 | ||||
Transfer | 7976828 | 2047 days ago | IN | 0.037 ETH | 0.00042857 | ||||
0xe1a8cba7 | 7821584 | 2071 days ago | IN | 0 ETH | 0.00015169 | ||||
0xe1a8cba7 | 7821577 | 2071 days ago | IN | 0.1 ETH | 0.00022669 | ||||
Transfer | 7467140 | 2126 days ago | IN | 0.0015 ETH | 0.00029571 | ||||
Transfer | 7305117 | 2151 days ago | IN | 0.1 ETH | 0.00024 | ||||
Transfer | 7144450 | 2186 days ago | IN | 0.01 ETH | 0.00029999 | ||||
Transfer Ownersh... | 6919790 | 2226 days ago | IN | 0 ETH | 0.00024288 | ||||
Add Address | 6885293 | 2232 days ago | IN | 0 ETH | 0.00085035 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Proxy
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-12-14 */ /* Copyright 2018 The Hydro Protocol Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity 0.4.24; /// @dev Math operations with safety checks that revert on error library SafeMath { /// @dev Multiplies two numbers, reverts on overflow. function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "MUL_ERROR"); return c; } /// @dev Integer division of two numbers truncating the quotient, reverts on division by zero. function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "DIVIDING_ERROR"); uint256 c = a / b; return c; } /// @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend). function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SUB_ERROR"); uint256 c = a - b; return c; } /// @dev Adds two numbers, reverts on overflow. function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "ADD_ERROR"); return c; } /// @dev Divides two numbers and returns the remainder (unsigned integer modulo), reverts when dividing by zero. function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "MOD_ERROR"); return a % b; } } /// @title Ownable /// @dev The Ownable contract has an owner address, and provides basic authorization control /// functions, this simplifies the implementation of "user permissions". contract LibOwnable { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /// @dev The Ownable constructor sets the original `owner` of the contract to the sender account. constructor() internal { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /// @return the address of the owner. function owner() public view returns(address) { return _owner; } /// @dev Throws if called by any account other than the owner. modifier onlyOwner() { require(isOwner(), "NOT_OWNER"); _; } /// @return true if `msg.sender` is the owner of the contract. function isOwner() public view returns(bool) { return msg.sender == _owner; } /// @dev Allows the current owner to relinquish control of the contract. /// @notice Renouncing to ownership will leave the contract without an owner. /// It will not be possible to call the functions with the `onlyOwner` /// modifier anymore. function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /// @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), "INVALID_OWNER"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract LibWhitelist is LibOwnable { mapping (address => bool) public whitelist; address[] public allAddresses; event AddressAdded(address indexed adr); event AddressRemoved(address indexed adr); /// @dev Only address in whitelist can invoke functions with this modifier. modifier onlyAddressInWhitelist { require(whitelist[msg.sender], "SENDER_NOT_IN_WHITELIST_ERROR"); _; } /// @dev add Address into whitelist /// @param adr Address to add function addAddress(address adr) external onlyOwner { emit AddressAdded(adr); whitelist[adr] = true; allAddresses.push(adr); } /// @dev remove Address from whitelist /// @param adr Address to remove function removeAddress(address adr) external onlyOwner { emit AddressRemoved(adr); delete whitelist[adr]; for(uint i = 0; i < allAddresses.length; i++){ if(allAddresses[i] == adr) { allAddresses[i] = allAddresses[allAddresses.length - 1]; allAddresses.length -= 1; break; } } } /// @dev Get all addresses in whitelist function getAllAddresses() external view returns (address[] memory) { return allAddresses; } } contract Proxy is LibWhitelist { using SafeMath for uint256; mapping( address => uint256 ) public balances; event Deposit(address owner, uint256 amount); event Withdraw(address owner, uint256 amount); event Transfer(address indexed from, address indexed to, uint256 value); function depositEther() public payable { balances[msg.sender] = balances[msg.sender].add(msg.value); emit Deposit(msg.sender, msg.value); } function withdrawEther(uint256 amount) public { balances[msg.sender] = balances[msg.sender].sub(amount); msg.sender.transfer(amount); emit Withdraw(msg.sender, amount); } function () public payable { depositEther(); } /// @dev Invoking transferFrom. /// @param token Address of token to transfer. /// @param from Address to transfer token from. /// @param to Address to transfer token to. /// @param value Amount of token to transfer. function transferFrom(address token, address from, address to, uint256 value) external onlyAddressInWhitelist { if (token == address(0)) { transferEther(from, to, value); } else { transferToken(token, from, to, value); } } function transferEther(address from, address to, uint256 value) internal onlyAddressInWhitelist { balances[from] = balances[from].sub(value); balances[to] = balances[to].add(value); emit Transfer(from, to, value); } /// @dev Calls into ERC20 Token contract, invoking transferFrom. /// @param token Address of token to transfer. /// @param from Address to transfer token from. /// @param to Address to transfer token to. /// @param value Amount of token to transfer. function transferToken(address token, address from, address to, uint256 value) internal onlyAddressInWhitelist { assembly { // keccak256('transferFrom(address,address,uint256)') & 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 mstore(0, 0x23b872dd00000000000000000000000000000000000000000000000000000000) // calldatacopy(t, f, s) copy s bytes from calldata at position f to mem at position t // copy from, to, value from calldata to memory calldatacopy(4, 36, 96) // call ERC20 Token contract transferFrom function let result := call(gas, token, 0, 0, 100, 0, 32) // Some ERC20 Token contract doesn't return any value when calling the transferFrom function successfully. // So we consider the transferFrom call is successful in either case below. // 1. call successfully and nothing return. // 2. call successfully, return value is 32 bytes long and the value isn't equal to zero. switch eq(result, 1) case 1 { switch or(eq(returndatasize, 0), and(eq(returndatasize, 32), gt(mload(0), 0))) case 1 { return(0, 0) } } } revert("TOKEN_TRANSFER_FROM_ERROR"); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"adr","type":"address"}],"name":"addAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"adr","type":"address"}],"name":"removeAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAllAddresses","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"depositEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allAddresses","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"adr","type":"address"}],"name":"AddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"adr","type":"address"}],"name":"AddressRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
6080604081905260008054600160a060020a0319163317808255600160a060020a0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3611013806100576000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315dacbea81146100ce57806327e235e31461010b57806338eada1c1461014b5780633bed33ce146101795780634ba79dfe14610191578063715018a6146101bf5780638da5cb5b146101d45780638f32d59b146102125780639516a1041461023b57806398ea5fca146100c45780639b19251a146102a0578063dacc5370146102ce578063f2fde38b146102e6575b6100cc610314565b005b3480156100da57600080fd5b506100cc73ffffffffffffffffffffffffffffffffffffffff60043581169060243581169060443516606435610387565b34801561011757600080fd5b5061013973ffffffffffffffffffffffffffffffffffffffff60043516610446565b60408051918252519081900360200190f35b34801561015757600080fd5b506100cc73ffffffffffffffffffffffffffffffffffffffff60043516610458565b34801561018557600080fd5b506100cc6004356105b5565b34801561019d57600080fd5b506100cc73ffffffffffffffffffffffffffffffffffffffff60043516610652565b3480156101cb57600080fd5b506100cc6108a3565b3480156101e057600080fd5b506101e9610987565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561021e57600080fd5b506102276109a4565b604080519115158252519081900360200190f35b34801561024757600080fd5b506102506109c2565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028c578181015183820152602001610274565b505050509050019250505060405180910390f35b3480156102ac57600080fd5b5061022773ffffffffffffffffffffffffffffffffffffffff60043516610a31565b3480156102da57600080fd5b506101e9600435610a46565b3480156102f257600080fd5b506100cc73ffffffffffffffffffffffffffffffffffffffff60043516610a7b565b33600090815260036020526040902054610334903463ffffffff610c0116565b33600081815260036020908152604091829020939093558051918252349282019290925281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a1565b3360009081526001602052604090205460ff16151561040757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f53454e4445525f4e4f545f494e5f57484954454c4953545f4552524f52000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff841615156104345761042f838383610c7c565b610440565b61044084848484610ddd565b50505050565b60036020526000908152604090205481565b6104606109a4565b15156104cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60405173ffffffffffffffffffffffffffffffffffffffff8216907fa226db3f664042183ee0281230bba26cbf7b5057e50aee7f25a175ff45ce4d7f90600090a273ffffffffffffffffffffffffffffffffffffffff166000818152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016821790556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b336000908152600360205260409020546105d5908263ffffffff610f2716565b33600081815260036020526040808220939093559151909183156108fc02918491818181858888f19350505050158015610613573d6000803e3d6000fd5b50604080513381526020810183905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a150565b600061065c6109a4565b15156106c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60405173ffffffffffffffffffffffffffffffffffffffff8316907f24a12366c02e13fe4a9e03d86a8952e85bb74a456c16e4a18b6d8295700b74bb90600090a25073ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b60025481101561089f578173ffffffffffffffffffffffffffffffffffffffff1660028281548110151561078757fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561089757600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107df57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061081257fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906108919082610fa0565b5061089f565b600101610757565b5050565b6108ab6109a4565b151561091857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff165b90565b60005473ffffffffffffffffffffffffffffffffffffffff16331490565b60606002805480602002602001604051908101604052809291908181526020018280548015610a2757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116109fc575b5050505050905090565b60016020526000908152604090205460ff1681565b6002805482908110610a5457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610a836109a4565b1515610af057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161515610b7457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f494e56414c49445f4f574e455200000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600082820183811015610c7557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4144445f4552524f520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b3360009081526001602052604090205460ff161515610cfc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f53454e4445525f4e4f545f494e5f57484954454c4953545f4552524f52000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902054610d32908263ffffffff610f2716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600360205260408082209390935590841681522054610d74908263ffffffff610c0116565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b3360009081526001602052604090205460ff161515610e5d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f53454e4445525f4e4f545f494e5f57484954454c4953545f4552524f52000000604482015290519081900360640190fd5b7f23b872dd0000000000000000000000000000000000000000000000000000000060005260606024600437602060006064600080885af16001811460018114610ea557610ebe565b600080511160203d141660003d1417600181146100cc57505b5050604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f544f4b454e5f5452414e534645525f46524f4d5f4552524f5200000000000000604482015290519081900360640190fd5b60008083831115610f9957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f5355425f4552524f520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050900390565b815481835581811115610fc457600083815260209020610fc4918101908301610fc9565b505050565b6109a191905b80821115610fe35760008155600101610fcf565b50905600a165627a7a72305820024f94543de0a4535c4c61d4ff3640ab40030e4a818d024007afe002fe3ae9a70029
Deployed Bytecode
0x6080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166315dacbea81146100ce57806327e235e31461010b57806338eada1c1461014b5780633bed33ce146101795780634ba79dfe14610191578063715018a6146101bf5780638da5cb5b146101d45780638f32d59b146102125780639516a1041461023b57806398ea5fca146100c45780639b19251a146102a0578063dacc5370146102ce578063f2fde38b146102e6575b6100cc610314565b005b3480156100da57600080fd5b506100cc73ffffffffffffffffffffffffffffffffffffffff60043581169060243581169060443516606435610387565b34801561011757600080fd5b5061013973ffffffffffffffffffffffffffffffffffffffff60043516610446565b60408051918252519081900360200190f35b34801561015757600080fd5b506100cc73ffffffffffffffffffffffffffffffffffffffff60043516610458565b34801561018557600080fd5b506100cc6004356105b5565b34801561019d57600080fd5b506100cc73ffffffffffffffffffffffffffffffffffffffff60043516610652565b3480156101cb57600080fd5b506100cc6108a3565b3480156101e057600080fd5b506101e9610987565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561021e57600080fd5b506102276109a4565b604080519115158252519081900360200190f35b34801561024757600080fd5b506102506109c2565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561028c578181015183820152602001610274565b505050509050019250505060405180910390f35b3480156102ac57600080fd5b5061022773ffffffffffffffffffffffffffffffffffffffff60043516610a31565b3480156102da57600080fd5b506101e9600435610a46565b3480156102f257600080fd5b506100cc73ffffffffffffffffffffffffffffffffffffffff60043516610a7b565b33600090815260036020526040902054610334903463ffffffff610c0116565b33600081815260036020908152604091829020939093558051918252349282019290925281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a1565b3360009081526001602052604090205460ff16151561040757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f53454e4445525f4e4f545f494e5f57484954454c4953545f4552524f52000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff841615156104345761042f838383610c7c565b610440565b61044084848484610ddd565b50505050565b60036020526000908152604090205481565b6104606109a4565b15156104cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60405173ffffffffffffffffffffffffffffffffffffffff8216907fa226db3f664042183ee0281230bba26cbf7b5057e50aee7f25a175ff45ce4d7f90600090a273ffffffffffffffffffffffffffffffffffffffff166000818152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016821790556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b336000908152600360205260409020546105d5908263ffffffff610f2716565b33600081815260036020526040808220939093559151909183156108fc02918491818181858888f19350505050158015610613573d6000803e3d6000fd5b50604080513381526020810183905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a150565b600061065c6109a4565b15156106c957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60405173ffffffffffffffffffffffffffffffffffffffff8316907f24a12366c02e13fe4a9e03d86a8952e85bb74a456c16e4a18b6d8295700b74bb90600090a25073ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b60025481101561089f578173ffffffffffffffffffffffffffffffffffffffff1660028281548110151561078757fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561089757600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107df57fe5b6000918252602090912001546002805473ffffffffffffffffffffffffffffffffffffffff909216918390811061081257fe5b600091825260209091200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906108919082610fa0565b5061089f565b600101610757565b5050565b6108ab6109a4565b151561091857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff165b90565b60005473ffffffffffffffffffffffffffffffffffffffff16331490565b60606002805480602002602001604051908101604052809291908181526020018280548015610a2757602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116109fc575b5050505050905090565b60016020526000908152604090205460ff1681565b6002805482908110610a5457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b610a836109a4565b1515610af057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e4f545f4f574e45520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81161515610b7457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f494e56414c49445f4f574e455200000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600082820183811015610c7557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4144445f4552524f520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b3360009081526001602052604090205460ff161515610cfc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f53454e4445525f4e4f545f494e5f57484954454c4953545f4552524f52000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902054610d32908263ffffffff610f2716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600360205260408082209390935590841681522054610d74908263ffffffff610c0116565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b3360009081526001602052604090205460ff161515610e5d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f53454e4445525f4e4f545f494e5f57484954454c4953545f4552524f52000000604482015290519081900360640190fd5b7f23b872dd0000000000000000000000000000000000000000000000000000000060005260606024600437602060006064600080885af16001811460018114610ea557610ebe565b600080511160203d141660003d1417600181146100cc57505b5050604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f544f4b454e5f5452414e534645525f46524f4d5f4552524f5200000000000000604482015290519081900360640190fd5b60008083831115610f9957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f5355425f4552524f520000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050900390565b815481835581811115610fc457600083815260209020610fc4918101908301610fc9565b505050565b6109a191905b80821115610fe35760008155600101610fcf565b50905600a165627a7a72305820024f94543de0a4535c4c61d4ff3640ab40030e4a818d024007afe002fe3ae9a70029
Swarm Source
bzzr://024f94543de0a4535c4c61d4ff3640ab40030e4a818d024007afe002fe3ae9a7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,260.63 | 1.0935 | $3,565.66 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.