Source Code
Latest 25 from a total of 699 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Update Sub Index | 44601265 | 5 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44601265 | 5 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44601264 | 5 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44601264 | 5 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44601264 | 5 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44590435 | 11 hrs ago | IN | 0 ETH | 0.00000035 | ||||
| Update Sub Index | 44590435 | 11 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44590434 | 11 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44590434 | 11 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44590434 | 11 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44579613 | 17 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44579613 | 17 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44579612 | 17 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44579612 | 17 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44579612 | 17 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44568794 | 23 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44568793 | 23 hrs ago | IN | 0 ETH | 0.00000035 | ||||
| Update Sub Index | 44568793 | 23 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44568792 | 23 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44568792 | 23 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44557970 | 29 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44557970 | 29 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44557970 | 29 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44557969 | 29 hrs ago | IN | 0 ETH | 0.00000037 | ||||
| Update Sub Index | 44557969 | 29 hrs ago | IN | 0 ETH | 0.00000037 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SentimentOracle
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@openzeppelin/contracts/access/Ownable.sol";
/**
* @title SentimentOracle
* @notice Manages the LOVE Index — a composite score of world sentiment subindices.
* The index ranges from 0 to 1000 (basis points of maximum positivity).
*
* Subindices:
* 0 - Global Peace (20%) — armed conflicts, treaties, diplomacy signals
* 1 - Charitable Giving (15%) — global donation volumes
* 2 - Social Sentiment (20%) — NLP analysis of public discourse
* 3 - Environmental Care (15%) — emissions, reforestation, conservation
* 4 - Community Wellness (15%) — health, education, civic participation
* 5 - Good Spend (15%) — on-chain: LefCoin spent at verified good destinations
*
* The first five subindices are fed by authorized oracle reporters (off-chain data).
* The Good Spend subindex is updated on-chain by the LefCoin contract itself.
*/
contract SentimentOracle is Ownable {
uint256 public constant NUM_SUBINDICES = 6;
uint256 public constant MAX_SCORE = 1000;
// Subindex identifiers
uint256 public constant GLOBAL_PEACE = 0;
uint256 public constant CHARITABLE_GIVING = 1;
uint256 public constant SOCIAL_SENTIMENT = 2;
uint256 public constant ENVIRONMENTAL_CARE = 3;
uint256 public constant COMMUNITY_WELLNESS = 4;
uint256 public constant GOOD_SPEND = 5;
struct SubIndex {
string name;
uint256 weight; // basis points (sum must be 10000)
uint256 score; // 0–1000
uint256 updatedAt;
}
SubIndex[6] public subIndices;
mapping(address => bool) public oracleReporters;
address public lefCoinContract;
event SubIndexUpdated(uint256 indexed id, uint256 newScore, address reporter);
event ReporterAuthorized(address indexed reporter);
event ReporterRevoked(address indexed reporter);
event LoveIndexUpdated(uint256 compositeScore);
event LefCoinContractUpdated(address newLefCoin);
modifier onlyReporter() {
require(oracleReporters[msg.sender], "Not an authorized reporter");
_;
}
modifier onlyLefCoin() {
require(msg.sender == lefCoinContract, "Only LefCoin contract");
_;
}
constructor() Ownable(msg.sender) {
// Initialize subindices with names and weights (basis points, total = 10000)
subIndices[GLOBAL_PEACE] = SubIndex("Global Peace", 2000, 500, block.timestamp);
subIndices[CHARITABLE_GIVING] = SubIndex("Charitable Giving", 1500, 500, block.timestamp);
subIndices[SOCIAL_SENTIMENT] = SubIndex("Social Sentiment", 2000, 500, block.timestamp);
subIndices[ENVIRONMENTAL_CARE] = SubIndex("Environmental Care", 1500, 500, block.timestamp);
subIndices[COMMUNITY_WELLNESS] = SubIndex("Community Wellness", 1500, 500, block.timestamp);
subIndices[GOOD_SPEND] = SubIndex("Good Spend", 1500, 500, block.timestamp);
}
// ─── Oracle Reporting ────────────────────────────────────────────
function authorizeReporter(address reporter) external onlyOwner {
oracleReporters[reporter] = true;
emit ReporterAuthorized(reporter);
}
function revokeReporter(address reporter) external onlyOwner {
oracleReporters[reporter] = false;
emit ReporterRevoked(reporter);
}
function setLefCoinContract(address _lefCoin) external onlyOwner {
lefCoinContract = _lefCoin;
emit LefCoinContractUpdated(_lefCoin);
}
/**
* @notice Oracle reporters update off-chain subindices (0–4).
*/
function updateSubIndex(uint256 id, uint256 score) external onlyReporter {
require(id < GOOD_SPEND, "Use updateGoodSpend for index 5");
require(score <= MAX_SCORE, "Score exceeds maximum");
subIndices[id].score = score;
subIndices[id].updatedAt = block.timestamp;
emit SubIndexUpdated(id, score, msg.sender);
emit LoveIndexUpdated(getLoveIndex());
}
/**
* @notice Called by the LefCoin contract to update the Good Spend subindex.
*/
function updateGoodSpend(uint256 score) external onlyLefCoin {
require(score <= MAX_SCORE, "Score exceeds maximum");
subIndices[GOOD_SPEND].score = score;
subIndices[GOOD_SPEND].updatedAt = block.timestamp;
emit SubIndexUpdated(GOOD_SPEND, score, msg.sender);
emit LoveIndexUpdated(getLoveIndex());
}
// ─── Index Queries ───────────────────────────────────────────────
/**
* @notice Returns the composite LOVE Index (0–1000), a weighted average of all subindices.
*/
function getLoveIndex() public view returns (uint256) {
uint256 composite = 0;
for (uint256 i = 0; i < NUM_SUBINDICES; i++) {
composite += subIndices[i].score * subIndices[i].weight;
}
return composite / 10000; // weights sum to 10000
}
/**
* @notice Returns score and metadata for a single subindex.
*/
function getSubIndex(uint256 id) external view returns (
string memory name,
uint256 weight,
uint256 score,
uint256 updatedAt
) {
require(id < NUM_SUBINDICES, "Invalid subindex");
SubIndex storage s = subIndices[id];
return (s.name, s.weight, s.score, s.updatedAt);
}
/**
* @notice Returns all subindex scores as an array.
*/
function getAllScores() external view returns (uint256[6] memory scores) {
for (uint256 i = 0; i < NUM_SUBINDICES; i++) {
scores[i] = subIndices[i].score;
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "../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.
*
* The initial owner is set to the address provided by the deployer. 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;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(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 {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @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 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) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLefCoin","type":"address"}],"name":"LefCoinContractUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"compositeScore","type":"uint256"}],"name":"LoveIndexUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"reporter","type":"address"}],"name":"ReporterAuthorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"reporter","type":"address"}],"name":"ReporterRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newScore","type":"uint256"},{"indexed":false,"internalType":"address","name":"reporter","type":"address"}],"name":"SubIndexUpdated","type":"event"},{"inputs":[],"name":"CHARITABLE_GIVING","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMMUNITY_WELLNESS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ENVIRONMENTAL_CARE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GLOBAL_PEACE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOOD_SPEND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SCORE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NUM_SUBINDICES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOCIAL_SENTIMENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"reporter","type":"address"}],"name":"authorizeReporter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllScores","outputs":[{"internalType":"uint256[6]","name":"scores","type":"uint256[6]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLoveIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getSubIndex","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lefCoinContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"oracleReporters","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":"reporter","type":"address"}],"name":"revokeReporter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lefCoin","type":"address"}],"name":"setLefCoinContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"subIndices","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"score","type":"uint256"}],"name":"updateGoodSpend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"score","type":"uint256"}],"name":"updateSubIndex","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b5033806200003957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200004481620003e4565b506040805160c081018252600c608082019081526b476c6f62616c20506561636560a01b60a08301528082526107d060208301526101f4928201929092524260608201529060019081906200009a9082620004f1565b5060208201518160010155604082015181600201556060820151816003015590505060405180608001604052806040518060400160405280601181526020017043686172697461626c6520476976696e6760781b81525081526020016105dc81526020016101f48152602001428152506001806006811062000120576200012062000434565b6004020160008201518160000190816200013b9190620004f1565b5060208201518160010155604082015181600201556060820151816003015590505060405180608001604052806040518060400160405280601081526020016f14dbd8da585b0814d95b9d1a5b595b9d60821b81525081526020016107d081526020016101f48152602001428152506001600260068110620001c157620001c162000434565b600402016000820151816000019081620001dc9190620004f1565b50602082015181600101556040820151816002015560608201518160030155905050604051806080016040528060405180604001604052806012815260200171456e7669726f6e6d656e74616c204361726560701b81525081526020016105dc81526020016101f4815260200142815250600160036006811062000264576200026462000434565b6004020160008201518160000190816200027f9190620004f1565b50602082015181600101556040820151816002015560608201518160030155905050604051806080016040528060405180604001604052806012815260200171436f6d6d756e6974792057656c6c6e65737360701b81525081526020016105dc81526020016101f4815260200142815250600160046006811062000307576200030762000434565b600402016000820151816000019081620003229190620004f1565b5060208201518160010155604082015181600201556060820151816003015590505060405180608001604052806040518060400160405280600a81526020016911dbdbd90814dc195b9960b21b81525081526020016105dc81526020016101f48152602001428152506001600560068110620003a257620003a262000434565b600402016000820151816000019081620003bd9190620004f1565b506020820151600182015560408201516002820155606090910151600390910155620005bd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200047557607f821691505b6020821081036200049657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004ec576000816000526020600020601f850160051c81016020861015620004c75750805b601f850160051c820191505b81811015620004e857828155600101620004d3565b5050505b505050565b81516001600160401b038111156200050d576200050d6200044a565b62000525816200051e845462000460565b846200049c565b602080601f8311600181146200055d5760008415620005445750858301515b600019600386901b1c1916600185901b178555620004e8565b600085815260208120601f198616915b828110156200058e578886015182559484019460019091019084016200056d565b5085821015620005ad5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c1080620005cd6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806387d06196116100b8578063ae469e541161007c578063ae469e5414610293578063b5db77551461029b578063bc35c9af146102a3578063e282dad4146102ab578063eacaf72a146102b3578063f2fde38b146102c657600080fd5b806387d06196146102145780638cdcc955146102295780638da5cb5b1461023c5780638f3602821461024d5780639b5b6ddc1461028057600080fd5b8063627d6bdb1161010a578063627d6bdb146101ce5780636d4473cb146101e1578063715018a6146101e95780637b89cb07146101f1578063839f99c4146101f9578063871eafc41461020c57600080fd5b80630161e4931461014757806327ff622314610162578063319ed7dc1461016b5780633781b3a51461018e57806342115a39146101a3575b600080fd5b61014f6102d9565b6040519081526020015b60405180910390f35b61014f6103e881565b61017e610179366004610a23565b61034e565b6040516101599493929190610a3c565b6101a161019c366004610a9f565b610467565b005b601a546101b6906001600160a01b031681565b6040516001600160a01b039091168152602001610159565b61017e6101dc366004610a23565b6104c4565b61014f600281565b6101a161057d565b61014f600181565b6101a1610207366004610a23565b610591565b61014f600381565b61021c6106a7565b6040516101599190610acf565b6101a1610237366004610a9f565b6106f9565b6000546001600160a01b03166101b6565b61027061025b366004610a9f565b60196020526000908152604090205460ff1681565b6040519015158152602001610159565b6101a161028e366004610a9f565b61074a565b61014f600681565b61014f600081565b61014f600581565b61014f600481565b6101a16102c1366004610b00565b61079e565b6101a16102d4366004610a9f565b61094a565b600080805b600681101561033b57600181600681106102fa576102fa610b22565b60040201600101546001826006811061031557610315610b22565b60040201600201546103279190610b4e565b6103319083610b6b565b91506001016102de565b5061034861271082610b7e565b91505090565b606060008060006006851061039d5760405162461bcd60e51b815260206004820152601060248201526f092dcecc2d8d2c840e6eac4d2dcc8caf60831b60448201526064015b60405180910390fd5b6000600186600681106103b2576103b2610b22565b600402019050806000018160010154826002015483600301548380546103d790610ba0565b80601f016020809104026020016040519081016040528092919081815260200182805461040390610ba0565b80156104505780601f1061042557610100808354040283529160200191610450565b820191906000526020600020905b81548152906001019060200180831161043357829003601f168201915b505050505093509450945094509450509193509193565b61046f610988565b601a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2cd5758ca00f4ac31bbdf987e78242c178136887900a93f5c7f93e9c257153bf906020015b60405180910390a150565b600181600681106104d457600080fd5b60040201805490915081906104e890610ba0565b80601f016020809104026020016040519081016040528092919081815260200182805461051490610ba0565b80156105615780601f1061053657610100808354040283529160200191610561565b820191906000526020600020905b81548152906001019060200180831161054457829003601f168201915b5050505050908060010154908060020154908060030154905084565b610585610988565b61058f60006109b5565b565b601a546001600160a01b031633146105e35760405162461bcd60e51b815260206004820152601560248201527413db9b1e4813195990dbda5b8818dbdb9d1c9858dd605a1b6044820152606401610394565b6103e881111561062d5760405162461bcd60e51b815260206004820152601560248201527453636f72652065786365656473206d6178696d756d60581b6044820152606401610394565b6017819055426018556040805182815233602082015281516005927f247c700fa0f3204e7f3449507920f779df9145f4d71efe163021e5f6d9b8b110928290030190a27f7d1ade12e340cf3c58822b7e26f4381b417b81f8fbf9d6673dbe0e0611c9b6526106996102d9565b6040519081526020016104b9565b6106af610a05565b60005b60068110156106f557600181600681106106ce576106ce610b22565b60040201600201548282600681106106e8576106e8610b22565b60200201526001016106b2565b5090565b610701610988565b6001600160a01b038116600081815260196020526040808220805460ff19169055517f0c235024c0c7c9d272caaf380c642d240b96f1cbc26acecca0ba9146e90927519190a250565b610752610988565b6001600160a01b038116600081815260196020526040808220805460ff19166001179055517fd576729e54c1a0846f1efbfdf9ec547dea55be936f85a664fa0e40801e17caf99190a250565b3360009081526019602052604090205460ff166107fd5760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420616e20617574686f72697a6564207265706f727465720000000000006044820152606401610394565b6005821061084d5760405162461bcd60e51b815260206004820152601f60248201527f55736520757064617465476f6f645370656e6420666f7220696e6465782035006044820152606401610394565b6103e88111156108975760405162461bcd60e51b815260206004820152601560248201527453636f72652065786365656473206d6178696d756d60581b6044820152606401610394565b80600183600681106108ab576108ab610b22565b600402016002018190555042600183600681106108ca576108ca610b22565b60040201600301556040805182815233602082015283917f247c700fa0f3204e7f3449507920f779df9145f4d71efe163021e5f6d9b8b110910160405180910390a27f7d1ade12e340cf3c58822b7e26f4381b417b81f8fbf9d6673dbe0e0611c9b6526109356102d9565b60405190815260200160405180910390a15050565b610952610988565b6001600160a01b03811661097c57604051631e4fbdf760e01b815260006004820152602401610394565b610985816109b5565b50565b6000546001600160a01b0316331461058f5760405163118cdaa760e01b8152336004820152602401610394565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040518060c001604052806006906020820280368337509192915050565b600060208284031215610a3557600080fd5b5035919050565b608081526000855180608084015260005b81811015610a6a57602081890181015160a0868401015201610a4d565b50600060a0828501015260a0601f19601f83011684010191505084602083015283604083015282606083015295945050505050565b600060208284031215610ab157600080fd5b81356001600160a01b0381168114610ac857600080fd5b9392505050565b60c08101818360005b6006811015610af7578151835260209283019290910190600101610ad8565b50505092915050565b60008060408385031215610b1357600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b6557610b65610b38565b92915050565b80820180821115610b6557610b65610b38565b600082610b9b57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680610bb457607f821691505b602082108103610bd457634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122013967bc82cb583573ccc26a0aff6d238d0c47059eb7a4a97895e803413d3a67264736f6c63430008180033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c806387d06196116100b8578063ae469e541161007c578063ae469e5414610293578063b5db77551461029b578063bc35c9af146102a3578063e282dad4146102ab578063eacaf72a146102b3578063f2fde38b146102c657600080fd5b806387d06196146102145780638cdcc955146102295780638da5cb5b1461023c5780638f3602821461024d5780639b5b6ddc1461028057600080fd5b8063627d6bdb1161010a578063627d6bdb146101ce5780636d4473cb146101e1578063715018a6146101e95780637b89cb07146101f1578063839f99c4146101f9578063871eafc41461020c57600080fd5b80630161e4931461014757806327ff622314610162578063319ed7dc1461016b5780633781b3a51461018e57806342115a39146101a3575b600080fd5b61014f6102d9565b6040519081526020015b60405180910390f35b61014f6103e881565b61017e610179366004610a23565b61034e565b6040516101599493929190610a3c565b6101a161019c366004610a9f565b610467565b005b601a546101b6906001600160a01b031681565b6040516001600160a01b039091168152602001610159565b61017e6101dc366004610a23565b6104c4565b61014f600281565b6101a161057d565b61014f600181565b6101a1610207366004610a23565b610591565b61014f600381565b61021c6106a7565b6040516101599190610acf565b6101a1610237366004610a9f565b6106f9565b6000546001600160a01b03166101b6565b61027061025b366004610a9f565b60196020526000908152604090205460ff1681565b6040519015158152602001610159565b6101a161028e366004610a9f565b61074a565b61014f600681565b61014f600081565b61014f600581565b61014f600481565b6101a16102c1366004610b00565b61079e565b6101a16102d4366004610a9f565b61094a565b600080805b600681101561033b57600181600681106102fa576102fa610b22565b60040201600101546001826006811061031557610315610b22565b60040201600201546103279190610b4e565b6103319083610b6b565b91506001016102de565b5061034861271082610b7e565b91505090565b606060008060006006851061039d5760405162461bcd60e51b815260206004820152601060248201526f092dcecc2d8d2c840e6eac4d2dcc8caf60831b60448201526064015b60405180910390fd5b6000600186600681106103b2576103b2610b22565b600402019050806000018160010154826002015483600301548380546103d790610ba0565b80601f016020809104026020016040519081016040528092919081815260200182805461040390610ba0565b80156104505780601f1061042557610100808354040283529160200191610450565b820191906000526020600020905b81548152906001019060200180831161043357829003601f168201915b505050505093509450945094509450509193509193565b61046f610988565b601a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2cd5758ca00f4ac31bbdf987e78242c178136887900a93f5c7f93e9c257153bf906020015b60405180910390a150565b600181600681106104d457600080fd5b60040201805490915081906104e890610ba0565b80601f016020809104026020016040519081016040528092919081815260200182805461051490610ba0565b80156105615780601f1061053657610100808354040283529160200191610561565b820191906000526020600020905b81548152906001019060200180831161054457829003601f168201915b5050505050908060010154908060020154908060030154905084565b610585610988565b61058f60006109b5565b565b601a546001600160a01b031633146105e35760405162461bcd60e51b815260206004820152601560248201527413db9b1e4813195990dbda5b8818dbdb9d1c9858dd605a1b6044820152606401610394565b6103e881111561062d5760405162461bcd60e51b815260206004820152601560248201527453636f72652065786365656473206d6178696d756d60581b6044820152606401610394565b6017819055426018556040805182815233602082015281516005927f247c700fa0f3204e7f3449507920f779df9145f4d71efe163021e5f6d9b8b110928290030190a27f7d1ade12e340cf3c58822b7e26f4381b417b81f8fbf9d6673dbe0e0611c9b6526106996102d9565b6040519081526020016104b9565b6106af610a05565b60005b60068110156106f557600181600681106106ce576106ce610b22565b60040201600201548282600681106106e8576106e8610b22565b60200201526001016106b2565b5090565b610701610988565b6001600160a01b038116600081815260196020526040808220805460ff19169055517f0c235024c0c7c9d272caaf380c642d240b96f1cbc26acecca0ba9146e90927519190a250565b610752610988565b6001600160a01b038116600081815260196020526040808220805460ff19166001179055517fd576729e54c1a0846f1efbfdf9ec547dea55be936f85a664fa0e40801e17caf99190a250565b3360009081526019602052604090205460ff166107fd5760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420616e20617574686f72697a6564207265706f727465720000000000006044820152606401610394565b6005821061084d5760405162461bcd60e51b815260206004820152601f60248201527f55736520757064617465476f6f645370656e6420666f7220696e6465782035006044820152606401610394565b6103e88111156108975760405162461bcd60e51b815260206004820152601560248201527453636f72652065786365656473206d6178696d756d60581b6044820152606401610394565b80600183600681106108ab576108ab610b22565b600402016002018190555042600183600681106108ca576108ca610b22565b60040201600301556040805182815233602082015283917f247c700fa0f3204e7f3449507920f779df9145f4d71efe163021e5f6d9b8b110910160405180910390a27f7d1ade12e340cf3c58822b7e26f4381b417b81f8fbf9d6673dbe0e0611c9b6526109356102d9565b60405190815260200160405180910390a15050565b610952610988565b6001600160a01b03811661097c57604051631e4fbdf760e01b815260006004820152602401610394565b610985816109b5565b50565b6000546001600160a01b0316331461058f5760405163118cdaa760e01b8152336004820152602401610394565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040518060c001604052806006906020820280368337509192915050565b600060208284031215610a3557600080fd5b5035919050565b608081526000855180608084015260005b81811015610a6a57602081890181015160a0868401015201610a4d565b50600060a0828501015260a0601f19601f83011684010191505084602083015283604083015282606083015295945050505050565b600060208284031215610ab157600080fd5b81356001600160a01b0381168114610ac857600080fd5b9392505050565b60c08101818360005b6006811015610af7578151835260209283019290910190600101610ad8565b50505092915050565b60008060408385031215610b1357600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b6557610b65610b38565b92915050565b80820180821115610b6557610b65610b38565b600082610b9b57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680610bb457607f821691505b602082108103610bd457634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122013967bc82cb583573ccc26a0aff6d238d0c47059eb7a4a97895e803413d3a67264736f6c63430008180033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 32 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.