Blockchain / Global / Address
Contract
0xDBd6eFb2019367c72e3284eE69494Dd49552f557
- Balance
- 0 SOMI
- Transactions sent
- 1
- Type
- Contract · 1,220 bytes of code
GM Verified
- Compiler
- solc 0.8.30+commit.73712a01
- Language
- Solidity
- Optimization
- Yes, 200 runs
- EVM version
- cancun
- License
- —
- Verified
- 2026-10-12
src/GM.sol
Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
contract GM {
address public feeRecipient = 0xE987eC8d38c95A86752e2073eeD1260ECf2e9083;
uint256 public GM_FEE = 0.15 ether;
uint256 public totalGMs;
mapping(address => uint256) public gmCount;
address[] public allUsers;
event GMed(address indexed user, uint256 totalUserGMs);
function gm() external payable {
require(msg.value == GM_FEE, "Incorrect GM fee");
// transfer fee to recipient
(bool success, ) = feeRecipient.call{value: msg.value}("");
require(success, "Fee transfer failed");
// increment GM count
if (gmCount[msg.sender] == 0) {
allUsers.push(msg.sender);
}
gmCount[msg.sender] += 1;
totalGMs += 1;
emit GMed(msg.sender, gmCount[msg.sender]);
}
function getAllUsers() external view returns (address[] memory) {
return allUsers;
}
function getGMsForAddress(address user) external view returns (uint256) {
return gmCount[user];
}
}ABI · 9 entries
json
[
{
"name": "GMed",
"type": "event",
"inputs": [
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "totalUserGMs",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "GM_FEE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "allUsers",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "feeRecipient",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "getAllUsers",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"name": "getGMsForAddress",
"type": "function",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "gm",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "gmCount",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalGMs",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
}
]