false
false

Contract Address Details

0x5c190f7253930C473822AcDED40B2eF1936B4075

Contract Name
ECHeartBeat
Creator
0x0aef73–e763b2 at 0xb5a93b–389aff
Balance
0 Berg
Tokens
Fetching tokens...
Transactions
4,671,878 Transactions
Transfers
0 Transfers
Gas Used
555,189,141,677
Last Balance Update
28360032
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
ECHeartBeat




Optimization enabled
true
Compiler version
v0.8.21+commit.d9974bed




Optimization runs
200
EVM Version
default




Verified at
2023-10-19T06:57:44.931649Z

Contract source code

// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.0;
contract ECHeartBeat {
struct Call {
uint256 timestamp;
string metadata;
}
address private owner;
event OwnerChanged(address indexed previousOwner, address indexed newOwner);
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "Caller is not the owner");
_;
}
mapping(address => Call[]) private callHistory;
mapping(address => mapping(uint256 => bool)) private callExists;
mapping(address => mapping(uint256 => uint256[])) private activeDays;
mapping(address => uint256) private firstCallDay;
address[] private nodeAddresses;
event CallLogged(address indexed caller, uint256 timestamp, string metadata);
function logCall(string calldata metadata) public {
Call memory newCall = Call(block.timestamp, metadata);
callHistory[msg.sender].push(newCall);
if (!callExists[msg.sender][newCall.timestamp / 1 days]) {
callExists[msg.sender][newCall.timestamp / 1 days] = true;
activeDays[msg.sender][newCall.timestamp / 1 days].push(callHistory[msg.sender].length - 1);
if (firstCallDay[msg.sender] == 0) {
firstCallDay[msg.sender] = newCall.timestamp / 1 days;
nodeAddresses.push(msg.sender);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"CallLogged","inputs":[{"type":"address","name":"caller","internalType":"address","indexed":true},{"type":"uint256","name":"timestamp","internalType":"uint256","indexed":false},{"type":"string","name":"metadata","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"OwnerChanged","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"changeOwner","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getActiveDays","inputs":[{"type":"address","name":"caller","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getCallCount","inputs":[{"type":"address","name":"caller","internalType":"address"},{"type":"uint256","name":"day","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getCallHistoryCount","inputs":[{"type":"address","name":"nodeAddress","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"tuple","name":"","internalType":"struct ECHeartBeat.Call","components":[{"type":"uint256","name":"timestamp","internalType":"uint256"},{"type":"string","name":"metadata","internalType":"string"}]}],"name":"getCallHistoryLog","inputs":[{"type":"address","name":"nodeAddress","internalType":"address"},{"type":"uint256","name":"index","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"getCallMetadata","inputs":[{"type":"address","name":"caller","internalType":"address"},{"type":"uint256","name":"index","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256[]","name":"","internalType":"uint256[]"}],"name":"getCallsforday","inputs":[{"type":"address","name":"caller","internalType":"address"},{"type":"uint256","name":"day","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getCurrentDay","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getFirstCallDay","inputs":[{"type":"address","name":"caller","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getNodeAddress","inputs":[{"type":"uint256","name":"index","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getNodesCount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getTotalCalls","inputs":[{"type":"address","name":"caller","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"logCall","inputs":[{"type":"string","name":"metadata","internalType":"string"}]}]
              

Contract Creation Code

0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610d44806100326000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635f1e2c721161008c5780637b712492116100665780637b712492146101da5780638c1cc04e14610136578063a6f9dae1146101ef578063c3ff6d6b1461020257600080fd5b80635f1e2c721461019257806361ea7208146101b25780636c424ec8146101ba57600080fd5b806301c27880146100d457806317a7bc5e146100fa57806326b071041461012357806327c15a12146101365780633e6968b61461015f578063446e847f14610167575b600080fd5b6100e76100e236600461095e565b610222565b6040519081526020015b60405180910390f35b6100e7610108366004610988565b6001600160a01b031660009081526004602052604090205490565b6100e7610131366004610988565b61024d565b6100e7610144366004610988565b6001600160a01b031660009081526001602052604090205490565b6100e76102cf565b61017a6101753660046109aa565b6102e3565b6040516001600160a01b0390911681526020016100f1565b6101a56101a036600461095e565b610313565b6040516100f19190610a09565b6005546100e7565b6101cd6101c836600461095e565b61040f565b6040516100f19190610a36565b6101ed6101e8366004610a49565b61053a565b005b6101ed6101fd366004610988565b6107d1565b61021561021036600461095e565b6108ce565b6040516100f19190610abb565b6001600160a01b03821660009081526003602090815260408083208484529091529020545b92915050565b6001600160a01b03811660009081526004602052604081205481905b6102766201518042610b15565b81116102c8576001600160a01b038416600090815260026020908152604080832084845290915290205460ff16156102b657816102b281610b37565b9250505b806102c081610b37565b915050610269565b5092915050565b60006102de6201518042610b15565b905090565b6000600582815481106102f8576102f8610b50565b6000918252602090912001546001600160a01b031692915050565b6040805180820190915260008152606060208201526001600160a01b038316600090815260016020526040902080548390811061035257610352610b50565b90600052602060002090600202016040518060400160405290816000820154815260200160018201805461038590610b66565b80601f01602080910402602001604051908101604052809291908181526020018280546103b190610b66565b80156103fe5780601f106103d3576101008083540402835291602001916103fe565b820191906000526020600020905b8154815290600101906020018083116103e157829003601f168201915b505050505081525050905092915050565b6001600160a01b038216600090815260016020526040902054606090821061046e5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b60448201526064015b60405180910390fd5b6001600160a01b038316600090815260016020526040902080548390811061049857610498610b50565b906000526020600020906002020160010180546104b490610b66565b80601f01602080910402602001604051908101604052809291908181526020018280546104e090610b66565b801561052d5780601f106105025761010080835404028352916020019161052d565b820191906000526020600020905b81548152906001019060200180831161051057829003601f168201915b5050505050905092915050565b6000604051806040016040528042815260200184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505033815260016020818152604083208054808401825590845292819020855160029094020192835584015193945084939192508201906105c49082610c05565b505033600090815260026020526040812083519092506105e8906201518090610b15565b815260208101919091526040016000205460ff1661072757336000908152600260205260408120825160019290610623906201518090610b15565b815260208082019290925260409081016000908120805460ff191694151594909417909355338352600390915281208251909190610665906201518090610b15565b81526020808201929092526040908101600090812033825260019384905291902054909161069291610cc5565b8154600181018355600092835260208084209091019190915533825260049052604081205490036107225780516106cd906201518090610b15565b336000818152600460205260408120929092556005805460018101825592527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090910180546001600160a01b03191690911790555b61078d565b3360009081526003602052604081208251909190610749906201518090610b15565b81526020808201929092526040908101600090812033825260019384905291902054909161077691610cc5565b815460018101835560009283526020909220909101555b805160405133917f7c7673cbcea84bd307d18815393ee76593a1e3c9e133d9301a6636b37c9fb170916107c4919087908790610cd8565b60405180910390a2505050565b6000546001600160a01b0316331461082b5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610465565b6001600160a01b0381166108735760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610465565b600080546040516001600160a01b03808516939216917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216600090815260036020908152604080832084845282529182902080548351818402810184019094528084526060939283018282801561052d57602002820191906000526020600020905b815481526020019060010190808311610922575050505050905092915050565b80356001600160a01b038116811461095957600080fd5b919050565b6000806040838503121561097157600080fd5b61097a83610942565b946020939093013593505050565b60006020828403121561099a57600080fd5b6109a382610942565b9392505050565b6000602082840312156109bc57600080fd5b5035919050565b6000815180845260005b818110156109e9576020818501810151868301820152016109cd565b506000602082860101526020601f19601f83011685010191505092915050565b602081528151602082015260006020830151604080840152610a2e60608401826109c3565b949350505050565b6020815260006109a360208301846109c3565b60008060208385031215610a5c57600080fd5b823567ffffffffffffffff80821115610a7457600080fd5b818501915085601f830112610a8857600080fd5b813581811115610a9757600080fd5b866020828501011115610aa957600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b81811015610af357835183529284019291840191600101610ad7565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b600082610b3257634e487b7160e01b600052601260045260246000fd5b500490565b600060018201610b4957610b49610aff565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610b7a57607f821691505b602082108103610b9a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f821115610c0057600081815260208120601f850160051c81016020861015610bdd5750805b601f850160051c820191505b81811015610bfc57828155600101610be9565b5050505b505050565b815167ffffffffffffffff811115610c1f57610c1f610ba0565b610c3381610c2d8454610b66565b84610bb6565b602080601f831160018114610c685760008415610c505750858301515b600019600386901b1c1916600185901b178555610bfc565b600085815260208120601f198616915b82811015610c9757888601518255948401946001909101908401610c78565b5085821015610cb55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561024757610247610aff565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea264697066735822122046514a25f17a7dd20d01e2ff961e6f0f6fe39116e5b1329396ff07262a9fc5ed64736f6c63430008130033

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635f1e2c721161008c5780637b712492116100665780637b712492146101da5780638c1cc04e14610136578063a6f9dae1146101ef578063c3ff6d6b1461020257600080fd5b80635f1e2c721461019257806361ea7208146101b25780636c424ec8146101ba57600080fd5b806301c27880146100d457806317a7bc5e146100fa57806326b071041461012357806327c15a12146101365780633e6968b61461015f578063446e847f14610167575b600080fd5b6100e76100e236600461095e565b610222565b6040519081526020015b60405180910390f35b6100e7610108366004610988565b6001600160a01b031660009081526004602052604090205490565b6100e7610131366004610988565b61024d565b6100e7610144366004610988565b6001600160a01b031660009081526001602052604090205490565b6100e76102cf565b61017a6101753660046109aa565b6102e3565b6040516001600160a01b0390911681526020016100f1565b6101a56101a036600461095e565b610313565b6040516100f19190610a09565b6005546100e7565b6101cd6101c836600461095e565b61040f565b6040516100f19190610a36565b6101ed6101e8366004610a49565b61053a565b005b6101ed6101fd366004610988565b6107d1565b61021561021036600461095e565b6108ce565b6040516100f19190610abb565b6001600160a01b03821660009081526003602090815260408083208484529091529020545b92915050565b6001600160a01b03811660009081526004602052604081205481905b6102766201518042610b15565b81116102c8576001600160a01b038416600090815260026020908152604080832084845290915290205460ff16156102b657816102b281610b37565b9250505b806102c081610b37565b915050610269565b5092915050565b60006102de6201518042610b15565b905090565b6000600582815481106102f8576102f8610b50565b6000918252602090912001546001600160a01b031692915050565b6040805180820190915260008152606060208201526001600160a01b038316600090815260016020526040902080548390811061035257610352610b50565b90600052602060002090600202016040518060400160405290816000820154815260200160018201805461038590610b66565b80601f01602080910402602001604051908101604052809291908181526020018280546103b190610b66565b80156103fe5780601f106103d3576101008083540402835291602001916103fe565b820191906000526020600020905b8154815290600101906020018083116103e157829003601f168201915b505050505081525050905092915050565b6001600160a01b038216600090815260016020526040902054606090821061046e5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b60448201526064015b60405180910390fd5b6001600160a01b038316600090815260016020526040902080548390811061049857610498610b50565b906000526020600020906002020160010180546104b490610b66565b80601f01602080910402602001604051908101604052809291908181526020018280546104e090610b66565b801561052d5780601f106105025761010080835404028352916020019161052d565b820191906000526020600020905b81548152906001019060200180831161051057829003601f168201915b5050505050905092915050565b6000604051806040016040528042815260200184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505033815260016020818152604083208054808401825590845292819020855160029094020192835584015193945084939192508201906105c49082610c05565b505033600090815260026020526040812083519092506105e8906201518090610b15565b815260208101919091526040016000205460ff1661072757336000908152600260205260408120825160019290610623906201518090610b15565b815260208082019290925260409081016000908120805460ff191694151594909417909355338352600390915281208251909190610665906201518090610b15565b81526020808201929092526040908101600090812033825260019384905291902054909161069291610cc5565b8154600181018355600092835260208084209091019190915533825260049052604081205490036107225780516106cd906201518090610b15565b336000818152600460205260408120929092556005805460018101825592527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090910180546001600160a01b03191690911790555b61078d565b3360009081526003602052604081208251909190610749906201518090610b15565b81526020808201929092526040908101600090812033825260019384905291902054909161077691610cc5565b815460018101835560009283526020909220909101555b805160405133917f7c7673cbcea84bd307d18815393ee76593a1e3c9e133d9301a6636b37c9fb170916107c4919087908790610cd8565b60405180910390a2505050565b6000546001600160a01b0316331461082b5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610465565b6001600160a01b0381166108735760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610465565b600080546040516001600160a01b03808516939216917fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216600090815260036020908152604080832084845282529182902080548351818402810184019094528084526060939283018282801561052d57602002820191906000526020600020905b815481526020019060010190808311610922575050505050905092915050565b80356001600160a01b038116811461095957600080fd5b919050565b6000806040838503121561097157600080fd5b61097a83610942565b946020939093013593505050565b60006020828403121561099a57600080fd5b6109a382610942565b9392505050565b6000602082840312156109bc57600080fd5b5035919050565b6000815180845260005b818110156109e9576020818501810151868301820152016109cd565b506000602082860101526020601f19601f83011685010191505092915050565b602081528151602082015260006020830151604080840152610a2e60608401826109c3565b949350505050565b6020815260006109a360208301846109c3565b60008060208385031215610a5c57600080fd5b823567ffffffffffffffff80821115610a7457600080fd5b818501915085601f830112610a8857600080fd5b813581811115610a9757600080fd5b866020828501011115610aa957600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b81811015610af357835183529284019291840191600101610ad7565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b600082610b3257634e487b7160e01b600052601260045260246000fd5b500490565b600060018201610b4957610b49610aff565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610b7a57607f821691505b602082108103610b9a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f821115610c0057600081815260208120601f850160051c81016020861015610bdd5750805b601f850160051c820191505b81811015610bfc57828155600101610be9565b5050505b505050565b815167ffffffffffffffff811115610c1f57610c1f610ba0565b610c3381610c2d8454610b66565b84610bb6565b602080601f831160018114610c685760008415610c505750858301515b600019600386901b1c1916600185901b178555610bfc565b600085815260208120601f198616915b82811015610c9757888601518255948401946001909101908401610c78565b5085821015610cb55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561024757610247610aff565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea264697066735822122046514a25f17a7dd20d01e2ff961e6f0f6fe39116e5b1329396ff07262a9fc5ed64736f6c63430008130033