Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Say GM | 15695611 | 9 days ago | IN | 0.0000163 ETH | 0 |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
GMCounter
Compiler Version
v0.8.30+commit.73712a01
Contract Source Code (Solidity)
/**
*Submitted for verification at swellchainscan.io on 2025-10-28
*/
// SPDX-License-Identifier: MIT
// File: @openzeppelin/contracts/utils/Context.sol
// 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;
}
}
// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.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);
}
}
// File: contracts/GMCounter.sol
contract GMCounter is Ownable {
address public treasury;
uint256 public fee;
uint256 public referralFees;
uint256 public constant BASIS_POINTS = 10000;
mapping(address => uint256) public lastGM;
uint256 public totalGMs;
event GMSent(address indexed sender, address indexed referral);
error InsufficientETH();
error AlreadySentGM();
error ReferralTransferFailed();
error FeeTransferFailed();
error SelfReferral();
constructor(
address _treasury,
uint256 _fee,
uint256 _referralFees
) Ownable(msg.sender) {
treasury = _treasury;
fee = _fee;
referralFees = _referralFees;
}
function sayGM(address referral) external payable {
if (msg.value < fee) {
revert InsufficientETH();
}
if (referral == msg.sender) {
revert SelfReferral();
}
uint256 today = block.timestamp / 86400;
if (lastGM[msg.sender] == today) {
revert AlreadySentGM();
}
lastGM[msg.sender] = today;
totalGMs += 1;
uint256 referralAmount = 0;
if (referral != address(0)) {
referralAmount = (msg.value * referralFees) / BASIS_POINTS;
(bool refSuccess, ) = referral.call{value: referralAmount}("");
if (!refSuccess) {
revert ReferralTransferFailed();
}
}
uint256 remaining = msg.value - referralAmount;
(bool success, ) = treasury.call{value: remaining}("");
if (!success) {
revert FeeTransferFailed();
}
emit GMSent(msg.sender, referral);
}
function nextGMTimer(address user) external view returns (uint256) {
uint256 today = block.timestamp / 86400;
if (lastGM[user] < today) {
return 0;
}
uint256 nextDay = (today + 1) * 86400;
return nextDay - block.timestamp;
}
function setTreasury(address _treasury) external onlyOwner {
require(_treasury != address(0), "Invalid treasury address");
treasury = _treasury;
}
function setFee(uint256 _fee) external onlyOwner {
require(_fee > 0, "Invalid fee");
fee = _fee;
}
function setReferralFees(uint256 _referralFees) external onlyOwner {
require(_referralFees < BASIS_POINTS, "Invalid referral fees");
referralFees = _referralFees;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"uint256","name":"_referralFees","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadySentGM","type":"error"},{"inputs":[],"name":"FeeTransferFailed","type":"error"},{"inputs":[],"name":"InsufficientETH","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReferralTransferFailed","type":"error"},{"inputs":[],"name":"SelfReferral","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"referral","type":"address"}],"name":"GMSent","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"},{"inputs":[],"name":"BASIS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastGM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"nextGMTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referral","type":"address"}],"name":"sayGM","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_referralFees","type":"uint256"}],"name":"setReferralFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalGMs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561000f575f5ffd5b5060405161090238038061090283398101604081905261002e916100d8565b338061005357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005c81610089565b50600180546001600160a01b0319166001600160a01b039490941693909317909255600255600355610117565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f5f606084860312156100ea575f5ffd5b83516001600160a01b0381168114610100575f5ffd5b602085015160409095015190969495509392505050565b6107de806101245f395ff3fe6080604052600436106100d9575f3560e01c8063cf5be0e01161007c578063e1f1c4a711610057578063e1f1c4a71461021e578063efdf07d514610233578063f0f4426014610248578063f2fde38b14610267575f5ffd5b8063cf5be0e0146101d7578063d371cd50146101f6578063ddca3f4314610209575f5ffd5b806385f080c2116100b757806385f080c21461014e5780638da5cb5b1461018757806392630546146101a3578063a29002ac146101c2575f5ffd5b806361d027b3146100dd57806369fe0e2d14610119578063715018a61461013a575b5f5ffd5b3480156100e8575f5ffd5b506001546100fc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610124575f5ffd5b506101386101333660046106ee565b610286565b005b348015610145575f5ffd5b506101386102d5565b348015610159575f5ffd5b50610179610168366004610705565b60046020525f908152604090205481565b604051908152602001610110565b348015610192575f5ffd5b505f546001600160a01b03166100fc565b3480156101ae575f5ffd5b506101386101bd3660046106ee565b6102e8565b3480156101cd575f5ffd5b5061017960055481565b3480156101e2575f5ffd5b506101796101f1366004610705565b61033e565b610138610204366004610705565b6103a4565b348015610214575f5ffd5b5061017960025481565b348015610229575f5ffd5b5061017961271081565b34801561023e575f5ffd5b5061017960035481565b348015610253575f5ffd5b50610138610262366004610705565b6105b6565b348015610272575f5ffd5b50610138610281366004610705565b610636565b61028e610673565b5f81116102d05760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642066656560a81b60448201526064015b60405180910390fd5b600255565b6102dd610673565b6102e65f61069f565b565b6102f0610673565b61271081106103395760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420726566657272616c206665657360581b60448201526064016102c7565b600355565b5f8061034d6201518042610746565b6001600160a01b0384165f9081526004602052604090205490915081111561037757505f92915050565b5f610383826001610765565b610390906201518061077e565b905061039c4282610795565b949350505050565b6002543410156103c757604051631a84bc4160e21b815260040160405180910390fd5b336001600160a01b038216036103f057604051632af47b8760e11b815260040160405180910390fd5b5f6103fe6201518042610746565b335f908152600460205260409020549091508190036104305760405163b899724f60e01b815260040160405180910390fd5b335f9081526004602052604081208290556005805460019290610454908490610765565b909155505f90506001600160a01b038316156104f9576127106003543461047b919061077e565b6104859190610746565b90505f836001600160a01b0316826040515f6040518083038185875af1925050503d805f81146104d0576040519150601f19603f3d011682016040523d82523d5f602084013e6104d5565b606091505b50509050806104f7576040516387df070960e01b815260040160405180910390fd5b505b5f6105048234610795565b6001546040519192505f916001600160a01b039091169083908381818185875af1925050503d805f8114610553576040519150601f19603f3d011682016040523d82523d5f602084013e610558565b606091505b505090508061057a57604051634033e4e360e01b815260040160405180910390fd5b6040516001600160a01b0386169033907f1dae76dcd764555e67098f3d58983f26d8c514131cf517c44875f3a7a6745c8a905f90a35050505050565b6105be610673565b6001600160a01b0381166106145760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642074726561737572792061646472657373000000000000000060448201526064016102c7565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61063e610673565b6001600160a01b03811661066757604051631e4fbdf760e01b81525f60048201526024016102c7565b6106708161069f565b50565b5f546001600160a01b031633146102e65760405163118cdaa760e01b81523360048201526024016102c7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156106fe575f5ffd5b5035919050565b5f60208284031215610715575f5ffd5b81356001600160a01b038116811461072b575f5ffd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b5f8261076057634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561077857610778610732565b92915050565b808202811582820484141761077857610778610732565b818103818111156107785761077861073256fea26469706673582212201bb1fc9dd71a24fd681b5e7aa6525033e18fc65d199983cce38919dc9d97cf2764736f6c634300081e003300000000000000000000000021ad6ef3979638d8e73747f22b92c4aade145d8200000000000000000000000000000000000000000000000000000ed323b5b80000000000000000000000000000000000000000000000000000000000000009c4
Deployed Bytecode
0x6080604052600436106100d9575f3560e01c8063cf5be0e01161007c578063e1f1c4a711610057578063e1f1c4a71461021e578063efdf07d514610233578063f0f4426014610248578063f2fde38b14610267575f5ffd5b8063cf5be0e0146101d7578063d371cd50146101f6578063ddca3f4314610209575f5ffd5b806385f080c2116100b757806385f080c21461014e5780638da5cb5b1461018757806392630546146101a3578063a29002ac146101c2575f5ffd5b806361d027b3146100dd57806369fe0e2d14610119578063715018a61461013a575b5f5ffd5b3480156100e8575f5ffd5b506001546100fc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610124575f5ffd5b506101386101333660046106ee565b610286565b005b348015610145575f5ffd5b506101386102d5565b348015610159575f5ffd5b50610179610168366004610705565b60046020525f908152604090205481565b604051908152602001610110565b348015610192575f5ffd5b505f546001600160a01b03166100fc565b3480156101ae575f5ffd5b506101386101bd3660046106ee565b6102e8565b3480156101cd575f5ffd5b5061017960055481565b3480156101e2575f5ffd5b506101796101f1366004610705565b61033e565b610138610204366004610705565b6103a4565b348015610214575f5ffd5b5061017960025481565b348015610229575f5ffd5b5061017961271081565b34801561023e575f5ffd5b5061017960035481565b348015610253575f5ffd5b50610138610262366004610705565b6105b6565b348015610272575f5ffd5b50610138610281366004610705565b610636565b61028e610673565b5f81116102d05760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642066656560a81b60448201526064015b60405180910390fd5b600255565b6102dd610673565b6102e65f61069f565b565b6102f0610673565b61271081106103395760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420726566657272616c206665657360581b60448201526064016102c7565b600355565b5f8061034d6201518042610746565b6001600160a01b0384165f9081526004602052604090205490915081111561037757505f92915050565b5f610383826001610765565b610390906201518061077e565b905061039c4282610795565b949350505050565b6002543410156103c757604051631a84bc4160e21b815260040160405180910390fd5b336001600160a01b038216036103f057604051632af47b8760e11b815260040160405180910390fd5b5f6103fe6201518042610746565b335f908152600460205260409020549091508190036104305760405163b899724f60e01b815260040160405180910390fd5b335f9081526004602052604081208290556005805460019290610454908490610765565b909155505f90506001600160a01b038316156104f9576127106003543461047b919061077e565b6104859190610746565b90505f836001600160a01b0316826040515f6040518083038185875af1925050503d805f81146104d0576040519150601f19603f3d011682016040523d82523d5f602084013e6104d5565b606091505b50509050806104f7576040516387df070960e01b815260040160405180910390fd5b505b5f6105048234610795565b6001546040519192505f916001600160a01b039091169083908381818185875af1925050503d805f8114610553576040519150601f19603f3d011682016040523d82523d5f602084013e610558565b606091505b505090508061057a57604051634033e4e360e01b815260040160405180910390fd5b6040516001600160a01b0386169033907f1dae76dcd764555e67098f3d58983f26d8c514131cf517c44875f3a7a6745c8a905f90a35050505050565b6105be610673565b6001600160a01b0381166106145760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642074726561737572792061646472657373000000000000000060448201526064016102c7565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b61063e610673565b6001600160a01b03811661066757604051631e4fbdf760e01b81525f60048201526024016102c7565b6106708161069f565b50565b5f546001600160a01b031633146102e65760405163118cdaa760e01b81523360048201526024016102c7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156106fe575f5ffd5b5035919050565b5f60208284031215610715575f5ffd5b81356001600160a01b038116811461072b575f5ffd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b5f8261076057634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561077857610778610732565b92915050565b808202811582820484141761077857610778610732565b818103818111156107785761077861073256fea26469706673582212201bb1fc9dd71a24fd681b5e7aa6525033e18fc65d199983cce38919dc9d97cf2764736f6c634300081e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000021ad6ef3979638d8e73747f22b92c4aade145d8200000000000000000000000000000000000000000000000000000ed323b5b80000000000000000000000000000000000000000000000000000000000000009c4
-----Decoded View---------------
Arg [0] : _treasury (address): 0x21AD6EF3979638D8E73747F22B92c4AAdE145d82
Arg [1] : _fee (uint256): 16300000000000
Arg [2] : _referralFees (uint256): 2500
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000021ad6ef3979638d8e73747f22b92c4aade145d82
Arg [1] : 00000000000000000000000000000000000000000000000000000ed323b5b800
Arg [2] : 00000000000000000000000000000000000000000000000000000000000009c4
Deployed Bytecode Sourcemap
4240:2574:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4277:23;;;;;;;;;;-1:-1:-1;4277:23:0;;;;-1:-1:-1;;;;;4277:23:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;4277:23:0;;;;;;;;6495:121;;;;;;;;;;-1:-1:-1;6495:121:0;;;;;:::i;:::-;;:::i;:::-;;3366:103;;;;;;;;;;;;;:::i;4421:41::-;;;;;;;;;;-1:-1:-1;4421:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;844:25:1;;;832:2;817:18;4421:41:0;698:177:1;2691:87:0;;;;;;;;;;-1:-1:-1;2737:7:0;2764:6;-1:-1:-1;;;;;2764:6:0;2691:87;;6624:187;;;;;;;;;;-1:-1:-1;6624:187:0;;;;;:::i;:::-;;:::i;4471:23::-;;;;;;;;;;;;;;;;6019:291;;;;;;;;;;-1:-1:-1;6019:291:0;;;;;:::i;:::-;;:::i;4959:1052::-;;;;;;:::i;:::-;;:::i;4307:18::-;;;;;;;;;;;;;;;;4368:44;;;;;;;;;;;;4407:5;4368:44;;4332:27;;;;;;;;;;;;;;;;6318:169;;;;;;;;;;-1:-1:-1;6318:169:0;;;;;:::i;:::-;;:::i;3624:220::-;;;;;;;;;;-1:-1:-1;3624:220:0;;;;;:::i;:::-;;:::i;6495:121::-;2577:13;:11;:13::i;:::-;6570:1:::1;6563:4;:8;6555:32;;;::::0;-1:-1:-1;;;6555:32:0;;1082:2:1;6555:32:0::1;::::0;::::1;1064:21:1::0;1121:2;1101:18;;;1094:30;-1:-1:-1;;;1140:18:1;;;1133:41;1191:18;;6555:32:0::1;;;;;;;;;6598:3;:10:::0;6495:121::o;3366:103::-;2577:13;:11;:13::i;:::-;3431:30:::1;3458:1;3431:18;:30::i;:::-;3366:103::o:0;6624:187::-;2577:13;:11;:13::i;:::-;4407:5:::1;6710:13;:28;6702:62;;;::::0;-1:-1:-1;;;6702:62:0;;1422:2:1;6702:62:0::1;::::0;::::1;1404:21:1::0;1461:2;1441:18;;;1434:30;-1:-1:-1;;;1480:18:1;;;1473:51;1541:18;;6702:62:0::1;1220:345:1::0;6702:62:0::1;6775:12;:28:::0;6624:187::o;6019:291::-;6077:7;;6113:23;6131:5;6113:15;:23;:::i;:::-;-1:-1:-1;;;;;6153:12:0;;;;;;:6;:12;;;;;;6097:39;;-1:-1:-1;6153:20:0;-1:-1:-1;6149:61:0;;;-1:-1:-1;6197:1:0;;6019:291;-1:-1:-1;;6019:291:0:o;6149:61::-;6222:15;6241:9;:5;6249:1;6241:9;:::i;:::-;6240:19;;6254:5;6240:19;:::i;:::-;6222:37;-1:-1:-1;6277:25:0;6287:15;6222:37;6277:25;:::i;:::-;6270:32;6019:291;-1:-1:-1;;;;6019:291:0:o;4959:1052::-;5036:3;;5024:9;:15;5020:72;;;5063:17;;-1:-1:-1;;;5063:17:0;;;;;;;;;;;5020:72;5120:10;-1:-1:-1;;;;;5108:22:0;;;5104:76;;5154:14;;-1:-1:-1;;;5154:14:0;;;;;;;;;;;5104:76;5192:13;5208:23;5226:5;5208:15;:23;:::i;:::-;5255:10;5248:18;;;;:6;:18;;;;;;5192:39;;-1:-1:-1;5248:27:0;;;5244:82;;5299:15;;-1:-1:-1;;;5299:15:0;;;;;;;;;;;5244:82;5345:10;5338:18;;;;:6;:18;;;;;:26;;;5385:8;:13;;5397:1;;5338:18;5385:13;;5397:1;;5385:13;:::i;:::-;;;;-1:-1:-1;5419:22:0;;-1:-1:-1;;;;;;5462:22:0;;;5458:287;;4407:5;5531:12;;5519:9;:24;;;;:::i;:::-;5518:41;;;;:::i;:::-;5501:58;;5575:15;5596:8;-1:-1:-1;;;;;5596:13:0;5617:14;5596:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5574:62;;;5656:10;5651:83;;5694:24;;-1:-1:-1;;;5694:24:0;;;;;;;;;;;5651:83;5486:259;5458:287;5757:17;5777:26;5789:14;5777:9;:26;:::i;:::-;5835:8;;:35;;5757:46;;-1:-1:-1;5817:12:0;;-1:-1:-1;;;;;5835:8:0;;;;5757:46;;5817:12;5835:35;5817:12;5835:35;5757:46;5835:8;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5816:54;;;5888:7;5883:67;;5919:19;;-1:-1:-1;;;5919:19:0;;;;;;;;;;;5883:67;5975:28;;-1:-1:-1;;;;;5975:28:0;;;5982:10;;5975:28;;;;;5009:1002;;;;4959:1052;:::o;6318:169::-;2577:13;:11;:13::i;:::-;-1:-1:-1;;;;;6396:23:0;::::1;6388:60;;;::::0;-1:-1:-1;;;6388:60:0;;2772:2:1;6388:60:0::1;::::0;::::1;2754:21:1::0;2811:2;2791:18;;;2784:30;2850:26;2830:18;;;2823:54;2894:18;;6388:60:0::1;2570:348:1::0;6388:60:0::1;6459:8;:20:::0;;-1:-1:-1;;;;;;6459:20:0::1;-1:-1:-1::0;;;;;6459:20:0;;;::::1;::::0;;;::::1;::::0;;6318:169::o;3624:220::-;2577:13;:11;:13::i;:::-;-1:-1:-1;;;;;3709:22:0;::::1;3705:93;;3755:31;::::0;-1:-1:-1;;;3755:31:0;;3783:1:::1;3755:31;::::0;::::1;160:51:1::0;133:18;;3755:31:0::1;14:203:1::0;3705:93:0::1;3808:28;3827:8;3808:18;:28::i;:::-;3624:220:::0;:::o;2856:166::-;2737:7;2764:6;-1:-1:-1;;;;;2764:6:0;808:10;2916:23;2912:103;;2963:40;;-1:-1:-1;;;2963:40:0;;808:10;2963:40;;;160:51:1;133:18;;2963:40:0;14:203:1;4004:191:0;4078:16;4097:6;;-1:-1:-1;;;;;4114:17:0;;;-1:-1:-1;;;;;;4114:17:0;;;;;;4147:40;;4097:6;;;;;;;4147:40;;4078:16;4147:40;4067:128;4004:191;:::o;222:180:1:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;-1:-1:-1;373:23:1;;222:180;-1:-1:-1;222:180:1:o;407:286::-;466:6;519:2;507:9;498:7;494:23;490:32;487:52;;;535:1;532;525:12;487:52;561:23;;-1:-1:-1;;;;;613:31:1;;603:42;;593:70;;659:1;656;649:12;593:70;682:5;407:286;-1:-1:-1;;;407:286:1:o;1570:127::-;1631:10;1626:3;1622:20;1619:1;1612:31;1662:4;1659:1;1652:15;1686:4;1683:1;1676:15;1702:217;1742:1;1768;1758:132;;1812:10;1807:3;1803:20;1800:1;1793:31;1847:4;1844:1;1837:15;1875:4;1872:1;1865:15;1758:132;-1:-1:-1;1904:9:1;;1702:217::o;1924:125::-;1989:9;;;2010:10;;;2007:36;;;2023:18;;:::i;:::-;1924:125;;;;:::o;2054:168::-;2127:9;;;2158;;2175:15;;;2169:22;;2155:37;2145:71;;2196:18;;:::i;2227:128::-;2294:9;;;2315:11;;;2312:37;;;2329:18;;:::i
Swarm Source
ipfs://1bb1fc9dd71a24fd681b5e7aa6525033e18fc65d199983cce38919dc9d97cf27
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.