Source Code
Overview
ETH Balance
ETH Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Initialize | 2844151 | 684 days ago | IN | 0 ETH | 0.00017521 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 7559829 | 542 days ago | 0 ETH | ||||
| 7559817 | 542 days ago | 0 ETH | ||||
| 7559811 | 542 days ago | 0 ETH | ||||
| 7559801 | 542 days ago | 0 ETH | ||||
| 7559767 | 542 days ago | 0 ETH | ||||
| 7559759 | 542 days ago | 0 ETH | ||||
| 7559744 | 542 days ago | 0 ETH | ||||
| 7559704 | 542 days ago | 0 ETH | ||||
| 7559686 | 542 days ago | 0 ETH | ||||
| 7559679 | 542 days ago | 0 ETH | ||||
| 7559660 | 542 days ago | 0 ETH | ||||
| 7559660 | 542 days ago | 0 ETH | ||||
| 7559648 | 542 days ago | 0 ETH | ||||
| 7559648 | 542 days ago | 0 ETH | ||||
| 7559632 | 542 days ago | 0 ETH | ||||
| 7559632 | 542 days ago | 0 ETH | ||||
| 7559624 | 542 days ago | 0 ETH | ||||
| 7559570 | 542 days ago | 0 ETH | ||||
| 7559570 | 542 days ago | 0 ETH | ||||
| 7559563 | 542 days ago | 0 ETH | ||||
| 7559457 | 542 days ago | 0 ETH | ||||
| 7559187 | 542 days ago | 0 ETH | ||||
| 7559061 | 542 days ago | 0 ETH | ||||
| 7559058 | 542 days ago | 0 ETH | ||||
| 7559057 | 542 days ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
RateModelSlope
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.12;
import "@openzeppelin/contracts/math/Math.sol";
import "@openzeppelin/contracts/math/SafeMath.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "../../interfaces/IRateModel.sol";
/// @dev https://bscscan.com/address/0x9535c1f26df97451671913f7aeda646c0f1eda85#readProxyContract
contract RateModelSlope is IRateModel, Ownable {
using SafeMath for uint256;
uint256 private baseRatePerYear;
uint256 private slopePerYearFirst;
uint256 private slopePerYearSecond;
uint256 private optimal;
// initializer
bool public initialized;
constructor() public {}
/// @notice Contract 초기화 변수 설정
/// @param _baseRatePerYear 기본 이자율
/// @param _slopePerYearFirst optimal 이전 이자 계수
/// @param _slopePerYearSecond optimal 초과 이자 계수
/// @param _optimal double-slope optimal
function initialize(
uint256 _baseRatePerYear,
uint256 _slopePerYearFirst,
uint256 _slopePerYearSecond,
uint256 _optimal
) external onlyOwner {
require(initialized == false, "already initialized");
baseRatePerYear = _baseRatePerYear;
slopePerYearFirst = _slopePerYearFirst;
slopePerYearSecond = _slopePerYearSecond;
optimal = _optimal;
initialized = true;
}
function utilizationRate(uint256 cash, uint256 borrows, uint256 reserves) public pure returns (uint256) {
if (reserves >= cash.add(borrows)) return 1e18;
return Math.min(borrows.mul(1e18).div(cash.add(borrows).sub(reserves)), 1e18);
}
function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) public view override returns (uint256) {
uint256 utilization = utilizationRate(cash, borrows, reserves);
if (utilization < optimal) {
return baseRatePerYear.add(utilization.mul(slopePerYearFirst).div(optimal)).div(365 days);
} else {
uint256 ratio = utilization.sub(optimal).mul(1e18).div(uint256(1e18).sub(optimal));
return baseRatePerYear.add(slopePerYearFirst).add(ratio.mul(slopePerYearSecond).div(1e18)).div(365 days);
}
}
function getSupplyRate(
uint256 cash,
uint256 borrows,
uint256 reserves,
uint256 reserveFactor
) public view override returns (uint256) {
uint256 oneMinusReserveFactor = uint256(1e18).sub(reserveFactor);
uint256 borrowRate = getBorrowRate(cash, borrows, reserves);
uint256 rateToPool = borrowRate.mul(oneMinusReserveFactor).div(1e18);
return utilizationRate(cash, borrows, reserves).mul(rateToPool).div(1e18);
}
}// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.12;
interface IRateModel {
function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view returns (uint256);
function getSupplyRate(
uint256 cash,
uint256 borrows,
uint256 reserves,
uint256 reserveFactor
) external view returns (uint256);
}// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/**
* @dev Standard math utilities missing in the Solidity language.
*/
library Math {
/**
* @dev Returns the largest of two numbers.
*/
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a >= b ? a : b;
}
/**
* @dev Returns the smallest of two numbers.
*/
function min(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? a : b;
}
/**
* @dev Returns the average of two numbers. The result is rounded towards
* zero.
*/
function average(uint256 a, uint256 b) internal pure returns (uint256) {
// (a + b) / 2 can overflow, so we distribute
return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
}
}// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b > a) return (false, 0);
return (true, a - b);
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a / b);
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a % b);
}
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath: subtraction overflow");
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) return 0;
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: division by zero");
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: modulo by zero");
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
return a - b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryDiv}.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
return a % b;
}
}// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"}],"name":"getBorrowRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"},{"internalType":"uint256","name":"reserveFactor","type":"uint256"}],"name":"getSupplyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_baseRatePerYear","type":"uint256"},{"internalType":"uint256","name":"_slopePerYearFirst","type":"uint256"},{"internalType":"uint256","name":"_slopePerYearSecond","type":"uint256"},{"internalType":"uint256","name":"_optimal","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"}],"name":"utilizationRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b61085b8061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a61461013e5780638da5cb5b14610146578063b81688161461016a578063f2fde38b1461019957610088565b8063158ef93e1461008d57806315f24053146100a957806360a2da44146100e45780636e71e2d814610115575b600080fd5b6100956101bf565b604080519115158252519081900360200190f35b6100d2600480360360608110156100bf57600080fd5b50803590602081013590604001356101c8565b60408051918252519081900360200190f35b610113600480360360808110156100fa57600080fd5b50803590602081013590604081013590606001356102b7565b005b6100d26004803603606081101561012b57600080fd5b5080359060208101359060400135610399565b6101136103fc565b61014e6104ba565b604080516001600160a01b039092168252519081900360200190f35b6100d26004803603608081101561018057600080fd5b50803590602081013590604081013590606001356104c9565b610113600480360360208110156101af57600080fd5b50356001600160a01b0316610530565b60055460ff1681565b6000806101d6858585610399565b905060045481101561021f576102176301e1338061020861020e6004546102086002548761064490919063ffffffff16565b906106a6565b6001549061070d565b9150506102b0565b6000610268610241600454670de0b6b3a764000061076790919063ffffffff16565b610208670de0b6b3a76400006102626004548761076790919063ffffffff16565b90610644565b90506102ab6301e13380610208610296670de0b6b3a76400006102086003548761064490919063ffffffff16565b6002546001546102a59161070d565b9061070d565b925050505b9392505050565b6102bf6107c4565b6001600160a01b03166102d06104ba565b6001600160a01b03161461032b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60055460ff1615610379576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60019384556002929092556003556004556005805460ff19169091179055565b60006103a5848461070d565b82106103ba5750670de0b6b3a76400006102b0565b6103f46103e66103d4846103ce888861070d565b90610767565b61020886670de0b6b3a7640000610644565b670de0b6b3a76400006107c8565b949350505050565b6104046107c4565b6001600160a01b03166104156104ba565b6001600160a01b031614610470576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000806104de670de0b6b3a764000084610767565b905060006104ed8787876101c8565b90506000610507670de0b6b3a76400006102088486610644565b9050610524670de0b6b3a7640000610208836102628c8c8c610399565b98975050505050505050565b6105386107c4565b6001600160a01b03166105496104ba565b6001600160a01b0316146105a4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166105e95760405162461bcd60e51b81526004018080602001828103825260268152602001806107df6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610653575060006106a0565b8282028284828161066057fe5b041461069d5760405162461bcd60e51b81526004018080602001828103825260218152602001806108056021913960400191505060405180910390fd5b90505b92915050565b60008082116106fc576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161070557fe5b049392505050565b60008282018381101561069d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000828211156107be576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3390565b60008183106107d7578161069d565b509091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122017e3ff231fa87cfe2b6c5a89c3d179a264ee85188a402be64879ddc53bb45ab364736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a61461013e5780638da5cb5b14610146578063b81688161461016a578063f2fde38b1461019957610088565b8063158ef93e1461008d57806315f24053146100a957806360a2da44146100e45780636e71e2d814610115575b600080fd5b6100956101bf565b604080519115158252519081900360200190f35b6100d2600480360360608110156100bf57600080fd5b50803590602081013590604001356101c8565b60408051918252519081900360200190f35b610113600480360360808110156100fa57600080fd5b50803590602081013590604081013590606001356102b7565b005b6100d26004803603606081101561012b57600080fd5b5080359060208101359060400135610399565b6101136103fc565b61014e6104ba565b604080516001600160a01b039092168252519081900360200190f35b6100d26004803603608081101561018057600080fd5b50803590602081013590604081013590606001356104c9565b610113600480360360208110156101af57600080fd5b50356001600160a01b0316610530565b60055460ff1681565b6000806101d6858585610399565b905060045481101561021f576102176301e1338061020861020e6004546102086002548761064490919063ffffffff16565b906106a6565b6001549061070d565b9150506102b0565b6000610268610241600454670de0b6b3a764000061076790919063ffffffff16565b610208670de0b6b3a76400006102626004548761076790919063ffffffff16565b90610644565b90506102ab6301e13380610208610296670de0b6b3a76400006102086003548761064490919063ffffffff16565b6002546001546102a59161070d565b9061070d565b925050505b9392505050565b6102bf6107c4565b6001600160a01b03166102d06104ba565b6001600160a01b03161461032b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60055460ff1615610379576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60019384556002929092556003556004556005805460ff19169091179055565b60006103a5848461070d565b82106103ba5750670de0b6b3a76400006102b0565b6103f46103e66103d4846103ce888861070d565b90610767565b61020886670de0b6b3a7640000610644565b670de0b6b3a76400006107c8565b949350505050565b6104046107c4565b6001600160a01b03166104156104ba565b6001600160a01b031614610470576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000806104de670de0b6b3a764000084610767565b905060006104ed8787876101c8565b90506000610507670de0b6b3a76400006102088486610644565b9050610524670de0b6b3a7640000610208836102628c8c8c610399565b98975050505050505050565b6105386107c4565b6001600160a01b03166105496104ba565b6001600160a01b0316146105a4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166105e95760405162461bcd60e51b81526004018080602001828103825260268152602001806107df6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610653575060006106a0565b8282028284828161066057fe5b041461069d5760405162461bcd60e51b81526004018080602001828103825260218152602001806108056021913960400191505060405180910390fd5b90505b92915050565b60008082116106fc576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161070557fe5b049392505050565b60008282018381101561069d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000828211156107be576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3390565b60008183106107d7578161069d565b509091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122017e3ff231fa87cfe2b6c5a89c3d179a264ee85188a402be64879ddc53bb45ab364736f6c634300060c0033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.