Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 57 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 7503233 | 2298 days ago | IN | 0 ETH | 0.00030516 | ||||
Define Authority | 7503226 | 2298 days ago | IN | 0 ETH | 0.0003212 | ||||
Define ETHCHF Ra... | 6884721 | 2409 days ago | IN | 0 ETH | 0.00011711 | ||||
Define ETHCHF Ra... | 6878641 | 2410 days ago | IN | 0 ETH | 0.00014639 | ||||
Define ETHCHF Ra... | 6872545 | 2411 days ago | IN | 0 ETH | 0.00010247 | ||||
Define ETHCHF Ra... | 6866595 | 2412 days ago | IN | 0 ETH | 0.00014639 | ||||
Define ETHCHF Ra... | 6860496 | 2413 days ago | IN | 0 ETH | 0.00014639 | ||||
Define ETHCHF Ra... | 6855130 | 2414 days ago | IN | 0 ETH | 0.00007905 | ||||
Define ETHCHF Ra... | 6848523 | 2415 days ago | IN | 0 ETH | 0.00011711 | ||||
Define ETHCHF Ra... | 6842225 | 2416 days ago | IN | 0 ETH | 0.00016102 | ||||
Define ETHCHF Ra... | 6836405 | 2417 days ago | IN | 0 ETH | 0.00014639 | ||||
Define ETHCHF Ra... | 6830388 | 2418 days ago | IN | 0 ETH | 0.0001903 | ||||
Define ETHCHF Ra... | 6824226 | 2419 days ago | IN | 0 ETH | 0.0002108 | ||||
Define ETHCHF Ra... | 6818116 | 2420 days ago | IN | 0 ETH | 0.00019616 | ||||
Define ETHCHF Ra... | 6812701 | 2421 days ago | IN | 0 ETH | 0.00020494 | ||||
Define ETHCHF Ra... | 6806630 | 2422 days ago | IN | 0 ETH | 0.00020494 | ||||
Define ETHCHF Ra... | 6800237 | 2423 days ago | IN | 0 ETH | 0.00087834 | ||||
Define ETHCHF Ra... | 6793960 | 2424 days ago | IN | 0 ETH | 0.00040989 | ||||
Define ETHCHF Ra... | 6793926 | 2424 days ago | IN | 0 ETH | 0.00026293 | ||||
Define ETHCHF Ra... | 6793896 | 2424 days ago | IN | 0 ETH | 0.00026292 | ||||
Define ETHCHF Ra... | 6787833 | 2425 days ago | IN | 0 ETH | 0.00015224 | ||||
Define ETHCHF Ra... | 6782155 | 2426 days ago | IN | 0 ETH | 0.00009368 | ||||
Define ETHCHF Ra... | 6775806 | 2427 days ago | IN | 0 ETH | 0.00008783 | ||||
Define ETHCHF Ra... | 6769693 | 2428 days ago | IN | 0 ETH | 0.00010247 | ||||
Define ETHCHF Ra... | 6763528 | 2429 days ago | IN | 0 ETH | 0.00014639 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
RatesProvider
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-11-18 */ /** * RatesProvider.sol * Provides rates, conversion methods and tools for ETH and CHF currencies. * The unflattened code is available through this github tag: * https://github.com/MtPelerin/MtPelerin-protocol/tree/etherscan-verify-batch-1 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved * @notice All matters regarding the intellectual property of this code * @notice or software are subject to Swiss Law without reference to its * @notice conflicts of law rules. * @notice License for each contract is available in the respective file * @notice or in the LICENSE.md file. * @notice https://github.com/MtPelerin/ * @notice Code by OpenZeppelin is copyrighted and licensed on their repository: * @notice https://github.com/OpenZeppelin/openzeppelin-solidity */ pragma solidity ^0.4.24; // File: contracts/zeppelin/math/SafeMath.sol /** * @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) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 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; } } // File: contracts/interface/IRatesProvider.sol /** * @title IRatesProvider * @dev IRatesProvider interface * * @author Cyril Lapinte - <[email protected]> * * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved * @notice Please refer to the top of this file for the license. */ contract IRatesProvider { function rateWEIPerCHFCent() public view returns (uint256); function convertWEIToCHFCent(uint256 _amountWEI) public view returns (uint256); function convertCHFCentToWEI(uint256 _amountCHFCent) public view returns (uint256); } // File: contracts/zeppelin/ownership/Ownable.sol /** * @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 OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() 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 relinquish control of the contract. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); 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 { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } // File: contracts/Authority.sol /** * @title Authority * @dev The Authority contract has an authority address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". * Authority means to represent a legal entity that is entitled to specific rights * * @author Cyril Lapinte - <[email protected]> * * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved * @notice Please refer to the top of this file for the license. * * Error messages * AU01: Message sender must be an authority */ contract Authority is Ownable { address authority; /** * @dev Throws if called by any account other than the authority. */ modifier onlyAuthority { require(msg.sender == authority, "AU01"); _; } /** * @dev return the address associated to the authority */ function authorityAddress() public view returns (address) { return authority; } /** * @dev rdefines an authority * @param _name the authority name * @param _address the authority address. */ function defineAuthority(string _name, address _address) public onlyOwner { emit AuthorityDefined(_name, _address); authority = _address; } event AuthorityDefined( string name, address _address ); } // File: contracts/RatesProvider.sol /** * @title RatesProvider * @dev RatesProvider interface * * @author Cyril Lapinte - <[email protected]> * * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved * @notice Please refer to the top of this file for the license. * * Error messages */ contract RatesProvider is IRatesProvider, Authority { using SafeMath for uint256; // WEICHF rate is in ETH_wei/CHF_cents with no fractional parts uint256 public rateWEIPerCHFCent; /** * @dev constructor */ constructor() public { } /** * @dev convert rate from ETHCHF to WEICents */ function convertRateFromETHCHF( uint256 _rateETHCHF, uint256 _rateETHCHFDecimal) public pure returns (uint256) { if (_rateETHCHF == 0) { return 0; } return uint256( 10**(_rateETHCHFDecimal.add(18 - 2)) ).div(_rateETHCHF); } /** * @dev convert rate from WEICents to ETHCHF */ function convertRateToETHCHF( uint256 _rateWEIPerCHFCent, uint256 _rateETHCHFDecimal) public pure returns (uint256) { if (_rateWEIPerCHFCent == 0) { return 0; } return uint256( 10**(_rateETHCHFDecimal.add(18 - 2)) ).div(_rateWEIPerCHFCent); } /** * @dev convert CHF to ETH */ function convertCHFCentToWEI(uint256 _amountCHFCent) public view returns (uint256) { return _amountCHFCent.mul(rateWEIPerCHFCent); } /** * @dev convert ETH to CHF */ function convertWEIToCHFCent(uint256 _amountETH) public view returns (uint256) { if (rateWEIPerCHFCent == 0) { return 0; } return _amountETH.div(rateWEIPerCHFCent); } /* Current ETHCHF rates */ function rateWEIPerCHFCent() public view returns (uint256) { return rateWEIPerCHFCent; } /** * @dev rate ETHCHF */ function rateETHCHF(uint256 _rateETHCHFDecimal) public view returns (uint256) { return convertRateToETHCHF(rateWEIPerCHFCent, _rateETHCHFDecimal); } /** * @dev define rate */ function defineRate(uint256 _rateWEIPerCHFCent) public onlyAuthority { rateWEIPerCHFCent = _rateWEIPerCHFCent; emit Rate(currentTime(), _rateWEIPerCHFCent); } /** * @dev define rate with decimals */ function defineETHCHFRate(uint256 _rateETHCHF, uint256 _rateETHCHFDecimal) public onlyAuthority { // The rate is inverted to maximize the decimals stored defineRate(convertRateFromETHCHF(_rateETHCHF, _rateETHCHFDecimal)); } /** * @dev current time */ function currentTime() private view returns (uint256) { // solium-disable-next-line security/no-block-members return now; } event Rate(uint256 at, uint256 rateWEIPerCHFCent); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"rateWEIPerCHFCent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rateETHCHF","type":"uint256"},{"name":"_rateETHCHFDecimal","type":"uint256"}],"name":"defineETHCHFRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authorityAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_rateETHCHF","type":"uint256"},{"name":"_rateETHCHFDecimal","type":"uint256"}],"name":"convertRateFromETHCHF","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_amountETH","type":"uint256"}],"name":"convertWEIToCHFCent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_rateWEIPerCHFCent","type":"uint256"},{"name":"_rateETHCHFDecimal","type":"uint256"}],"name":"convertRateToETHCHF","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_rateETHCHFDecimal","type":"uint256"}],"name":"rateETHCHF","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rateWEIPerCHFCent","type":"uint256"}],"name":"defineRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_amountCHFCent","type":"uint256"}],"name":"convertCHFCentToWEI","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_address","type":"address"}],"name":"defineAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"at","type":"uint256"},{"indexed":false,"name":"rateWEIPerCHFCent","type":"uint256"}],"name":"Rate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"_address","type":"address"}],"name":"AuthorityDefined","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bec806100606000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630ac37bd6146100ca5780631752b686146100f55780633c695d4e1461012c578063715018a6146101835780638b3f92de1461019a5780638da5cb5b146101e5578063a3b1f60f1461023c578063b1fce1d41461027d578063c709b4e7146102c8578063d75c4abf14610309578063dc7b0ae614610336578063f2fde38b14610377578063fc21e167146103ba575b600080fd5b3480156100d657600080fd5b506100df610443565b6040518082815260200191505060405180910390f35b34801561010157600080fd5b5061012a600480360381019080803590602001909291908035906020019092919050505061044d565b005b34801561013857600080fd5b50610141610528565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018f57600080fd5b50610198610552565b005b3480156101a657600080fd5b506101cf6004803603810190808035906020019092919080359060200190929190505050610654565b6040518082815260200191505060405180910390f35b3480156101f157600080fd5b506101fa610699565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024857600080fd5b50610267600480360381019080803590602001909291905050506106be565b6040518082815260200191505060405180910390f35b34801561028957600080fd5b506102b260048036038101908080359060200190929190803590602001909291905050506106f0565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b506102f360048036038101908080359060200190929190505050610735565b6040518082815260200191505060405180910390f35b34801561031557600080fd5b506103346004803603810190808035906020019092919050505061074a565b005b34801561034257600080fd5b506103616004803603810190808035906020019092919050505061085f565b6040518082815260200191505060405180910390f35b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061087d565b005b3480156103c657600080fd5b50610441600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e4565b005b6000600254905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610512576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61052461051f8383610654565b61074a565b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ad57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000808314156106675760009050610693565b6106908361067f601085610a5490919063ffffffff16565b600a0a610a7090919063ffffffff16565b90505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060025414156106d357600090506106eb565b6106e860025483610a7090919063ffffffff16565b90505b919050565b600080831415610703576000905061072f565b61072c8361071b601085610a5490919063ffffffff16565b600a0a610a7090919063ffffffff16565b90505b92915050565b6000610743600254836106f0565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561080f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806002819055507f9de614b5c45179d41912c87ca7f7af67525f50c10b6b9cea79dc2c12b8d693a361083f610a86565b82604051808381526020018281526020019250505060405180910390a150565b600061087660025483610a8e90919063ffffffff16565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108d857600080fd5b6108e181610ac6565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093f57600080fd5b7fc8c81ac5a1b95ead7b5f71eafa51c9a1436e443c27ba33460885b9debe345abf828260405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156109d45780820151818401526020810190506109b9565b50505050905090810190601f168015610a015780820380516001836020036101000a031916815260200191505b50935050505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008183019050828110151515610a6757fe5b80905092915050565b60008183811515610a7d57fe5b04905092915050565b600042905090565b600080831415610aa15760009050610ac0565b8183029050818382811515610ab257fe5b04141515610abc57fe5b8090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b0257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058202c645df1f05a0e18423a145179b6a6b805195f867047265b38560ae6083d228a0029
Deployed Bytecode
0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630ac37bd6146100ca5780631752b686146100f55780633c695d4e1461012c578063715018a6146101835780638b3f92de1461019a5780638da5cb5b146101e5578063a3b1f60f1461023c578063b1fce1d41461027d578063c709b4e7146102c8578063d75c4abf14610309578063dc7b0ae614610336578063f2fde38b14610377578063fc21e167146103ba575b600080fd5b3480156100d657600080fd5b506100df610443565b6040518082815260200191505060405180910390f35b34801561010157600080fd5b5061012a600480360381019080803590602001909291908035906020019092919050505061044d565b005b34801561013857600080fd5b50610141610528565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018f57600080fd5b50610198610552565b005b3480156101a657600080fd5b506101cf6004803603810190808035906020019092919080359060200190929190505050610654565b6040518082815260200191505060405180910390f35b3480156101f157600080fd5b506101fa610699565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024857600080fd5b50610267600480360381019080803590602001909291905050506106be565b6040518082815260200191505060405180910390f35b34801561028957600080fd5b506102b260048036038101908080359060200190929190803590602001909291905050506106f0565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b506102f360048036038101908080359060200190929190505050610735565b6040518082815260200191505060405180910390f35b34801561031557600080fd5b506103346004803603810190808035906020019092919050505061074a565b005b34801561034257600080fd5b506103616004803603810190808035906020019092919050505061085f565b6040518082815260200191505060405180910390f35b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061087d565b005b3480156103c657600080fd5b50610441600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e4565b005b6000600254905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610512576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61052461051f8383610654565b61074a565b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ad57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000808314156106675760009050610693565b6106908361067f601085610a5490919063ffffffff16565b600a0a610a7090919063ffffffff16565b90505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060025414156106d357600090506106eb565b6106e860025483610a7090919063ffffffff16565b90505b919050565b600080831415610703576000905061072f565b61072c8361071b601085610a5490919063ffffffff16565b600a0a610a7090919063ffffffff16565b90505b92915050565b6000610743600254836106f0565b9050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561080f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806002819055507f9de614b5c45179d41912c87ca7f7af67525f50c10b6b9cea79dc2c12b8d693a361083f610a86565b82604051808381526020018281526020019250505060405180910390a150565b600061087660025483610a8e90919063ffffffff16565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108d857600080fd5b6108e181610ac6565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093f57600080fd5b7fc8c81ac5a1b95ead7b5f71eafa51c9a1436e443c27ba33460885b9debe345abf828260405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156109d45780820151818401526020810190506109b9565b50505050905090810190601f168015610a015780820380516001836020036101000a031916815260200191505b50935050505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008183019050828110151515610a6757fe5b80905092915050565b60008183811515610a7d57fe5b04905092915050565b600042905090565b600080831415610aa15760009050610ac0565b8183029050818382811515610ab257fe5b04141515610abc57fe5b8090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b0257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058202c645df1f05a0e18423a145179b6a6b805195f867047265b38560ae6083d228a0029
Swarm Source
bzzr://2c645df1f05a0e18423a145179b6a6b805195f867047265b38560ae6083d228a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.