// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
import {Context} from "./utils/Context.sol";
import {IERC20} from "./interfaces/IERC20.sol";
import {IERC20Metadata} from "./interfaces/IERC20Metadata.sol";
contract Rosa is Context, IERC20, IERC20Metadata {
mapping(address account => uint256) private _balances;
mapping(address account => mapping(address spender => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name = "Rosa";
string private _symbol = "ROSA";
uint8 private _decimals = 18;
address private _rosaWallet;
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
error ERC20InvalidApprover(address approver);
error ERC20InvalidSpender(address spender);
constructor() {
_mint(_msgSender(), 1_000_000_000 * 10 ** _decimals);
_rosaWallet = _msgSender();
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return _decimals;
}
function rosaWallet() public view returns (address) {
return _rosaWallet;
}
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
function allowance(address owner, address spender) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
function _update(address from, address to, uint256 value) internal virtual {
if (from == address(0)) {
// Overflow check required: The rest of the code assumes that totalSupply never overflows
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
// Overflow not possible: value <= fromBalance <= totalSupply.
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
// Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
_totalSupply -= value;
}
} else {
unchecked {
// Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
_balances[to] += value;
}
}
emit Transfer(from, to, value);
}
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance < type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}[
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"name": "ERC20InsufficientAllowance",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "allowance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InsufficientBalance",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSpender",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "rosaWallet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
}
]0x60806040526040518060400160405280600481526020017f526f73610000000000000000000000000000000000000000000000000000000081525060039081610048919061062d565b506040518060400160405280600481526020017f524f5341000000000000000000000000000000000000000000000000000000008152506004908161008d919061062d565b50601260055f6101000a81548160ff021916908360ff1602179055503480156100b4575f80fd5b506100fb6100c661014e60201b60201c565b60055f9054906101000a900460ff16600a6100e19190610864565b633b9aca006100f091906108ae565b61015560201b60201c565b61010961014e60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109d7565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101c5575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016101bc919061092e565b60405180910390fd5b6101d65f83836101da60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361022a578060025f82825461021e9190610947565b925050819055506102f8565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156102b3578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102aa93929190610989565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361033f578060025f8282540392505081905550610389565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103e691906109be565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061046e57607f821691505b6020821081036104815761048061042a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a8565b6104ed86836104a8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61053161052c61052784610505565b61050e565b610505565b9050919050565b5f819050919050565b61054a83610517565b61055e61055682610538565b8484546104b4565b825550505050565b5f90565b610572610566565b61057d818484610541565b505050565b5b818110156105a0576105955f8261056a565b600181019050610583565b5050565b601f8211156105e5576105b681610487565b6105bf84610499565b810160208510156105ce578190505b6105e26105da85610499565b830182610582565b50505b505050565b5f82821c905092915050565b5f6106055f19846008026105ea565b1980831691505092915050565b5f61061d83836105f6565b9150826002028217905092915050565b610636826103f3565b67ffffffffffffffff81111561064f5761064e6103fd565b5b6106598254610457565b6106648282856105a4565b5f60209050601f831160018114610695575f8415610683578287015190505b61068d8582610612565b8655506106f4565b601f1984166106a386610487565b5f5b828110156106ca578489015182556001820191506020850194506020810190506106a5565b868310156106e757848901516106e3601f8916826105f6565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561077e5780860481111561075a576107596106fc565b5b60018516156107695780820291505b808102905061077785610729565b945061073e565b94509492505050565b5f826107965760019050610851565b816107a3575f9050610851565b81600181146107b957600281146107c3576107f2565b6001915050610851565b60ff8411156107d5576107d46106fc565b5b8360020a9150848211156107ec576107eb6106fc565b5b50610851565b5060208310610133831016604e8410600b84101617156108275782820a905083811115610822576108216106fc565b5b610851565b6108348484846001610735565b9250905081840481111561084b5761084a6106fc565b5b81810290505b9392505050565b5f60ff82169050919050565b5f61086e82610505565b915061087983610858565b92506108a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610787565b905092915050565b5f6108b882610505565b91506108c383610505565b92508282026108d181610505565b915082820484148315176108e8576108e76106fc565b5b5092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610918826108ef565b9050919050565b6109288161090e565b82525050565b5f6020820190506109415f83018461091f565b92915050565b5f61095182610505565b915061095c83610505565b9250828201905080821115610974576109736106fc565b5b92915050565b61098381610505565b82525050565b5f60608201905061099c5f83018661091f565b6109a9602083018561097a565b6109b6604083018461097a565b949350505050565b5f6020820190506109d15f83018461097a565b92915050565b610e41806109e45f395ff3fe608060405234801561000f575f80fd5b506004361061009c575f3560e01c8063554614e411610064578063554614e41461015a57806370a082311461017857806395d89b41146101a8578063a9059cbb146101c6578063dd62ed3e146101f65761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f80fd5b6100a8610226565b6040516100b59190610aba565b60405180910390f35b6100d860048036038101906100d39190610b6b565b6102b6565b6040516100e59190610bc3565b60405180910390f35b6100f66102d8565b6040516101039190610beb565b60405180910390f35b61012660048036038101906101219190610c04565b6102e1565b6040516101339190610bc3565b60405180910390f35b61014461030f565b6040516101519190610c6f565b60405180910390f35b610162610324565b60405161016f9190610c97565b60405180910390f35b610192600480360381019061018d9190610cb0565b61034d565b60405161019f9190610beb565b60405180910390f35b6101b0610392565b6040516101bd9190610aba565b60405180910390f35b6101e060048036038101906101db9190610b6b565b610422565b6040516101ed9190610bc3565b60405180910390f35b610210600480360381019061020b9190610cdb565b610444565b60405161021d9190610beb565b60405180910390f35b60606003805461023590610d46565b80601f016020809104026020016040519081016040528092919081815260200182805461026190610d46565b80156102ac5780601f10610283576101008083540402835291602001916102ac565b820191905f5260205f20905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b5f806102c06104c6565b90506102cd8185856104cd565b600191505092915050565b5f600254905090565b5f806102eb6104c6565b90506102f88582856104df565b610303858585610572565b60019150509392505050565b5f60055f9054906101000a900460ff16905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103a190610d46565b80601f01602080910402602001604051908101604052809291908181526020018280546103cd90610d46565b80156104185780601f106103ef57610100808354040283529160200191610418565b820191905f5260205f20905b8154815290600101906020018083116103fb57829003601f168201915b5050505050905090565b5f8061042c6104c6565b9050610439818585610572565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104da8383836001610662565b505050565b5f6104ea8484610444565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561056c578181101561055d578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161055493929190610d76565b60405180910390fd5b61056b84848484035f610662565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105e2575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105d99190610c97565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610652575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106499190610c97565b60405180910390fd5b61065d838383610831565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036106d2575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016106c99190610c97565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610742575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107399190610c97565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561082b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108229190610beb565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610881578060025f8282546108759190610dd8565b9250508190555061094f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561090a578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161090193929190610d76565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610996578060025f82825403925050819055506109e0565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a3d9190610beb565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610a8c82610a4a565b610a968185610a54565b9350610aa6818560208601610a64565b610aaf81610a72565b840191505092915050565b5f6020820190508181035f830152610ad28184610a82565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b0782610ade565b9050919050565b610b1781610afd565b8114610b21575f80fd5b50565b5f81359050610b3281610b0e565b92915050565b5f819050919050565b610b4a81610b38565b8114610b54575f80fd5b50565b5f81359050610b6581610b41565b92915050565b5f8060408385031215610b8157610b80610ada565b5b5f610b8e85828601610b24565b9250506020610b9f85828601610b57565b9150509250929050565b5f8115159050919050565b610bbd81610ba9565b82525050565b5f602082019050610bd65f830184610bb4565b92915050565b610be581610b38565b82525050565b5f602082019050610bfe5f830184610bdc565b92915050565b5f805f60608486031215610c1b57610c1a610ada565b5b5f610c2886828701610b24565b9350506020610c3986828701610b24565b9250506040610c4a86828701610b57565b9150509250925092565b5f60ff82169050919050565b610c6981610c54565b82525050565b5f602082019050610c825f830184610c60565b92915050565b610c9181610afd565b82525050565b5f602082019050610caa5f830184610c88565b92915050565b5f60208284031215610cc557610cc4610ada565b5b5f610cd284828501610b24565b91505092915050565b5f8060408385031215610cf157610cf0610ada565b5b5f610cfe85828601610b24565b9250506020610d0f85828601610b24565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5d57607f821691505b602082108103610d7057610d6f610d19565b5b50919050565b5f606082019050610d895f830186610c88565b610d966020830185610bdc565b610da36040830184610bdc565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610de282610b38565b9150610ded83610b38565b9250828201905080821115610e0557610e04610dab565b5b9291505056fea26469706673582212201c7ee54e3d4b810cf8d1bc05bc45152ab13bfdec2c19222db500330cd1283f6e64736f6c634300081a0033
0x608060405234801561000f575f80fd5b506004361061009c575f3560e01c8063554614e411610064578063554614e41461015a57806370a082311461017857806395d89b41146101a8578063a9059cbb146101c6578063dd62ed3e146101f65761009c565b806306fdde03146100a0578063095ea7b3146100be57806318160ddd146100ee57806323b872dd1461010c578063313ce5671461013c575b5f80fd5b6100a8610226565b6040516100b59190610aba565b60405180910390f35b6100d860048036038101906100d39190610b6b565b6102b6565b6040516100e59190610bc3565b60405180910390f35b6100f66102d8565b6040516101039190610beb565b60405180910390f35b61012660048036038101906101219190610c04565b6102e1565b6040516101339190610bc3565b60405180910390f35b61014461030f565b6040516101519190610c6f565b60405180910390f35b610162610324565b60405161016f9190610c97565b60405180910390f35b610192600480360381019061018d9190610cb0565b61034d565b60405161019f9190610beb565b60405180910390f35b6101b0610392565b6040516101bd9190610aba565b60405180910390f35b6101e060048036038101906101db9190610b6b565b610422565b6040516101ed9190610bc3565b60405180910390f35b610210600480360381019061020b9190610cdb565b610444565b60405161021d9190610beb565b60405180910390f35b60606003805461023590610d46565b80601f016020809104026020016040519081016040528092919081815260200182805461026190610d46565b80156102ac5780601f10610283576101008083540402835291602001916102ac565b820191905f5260205f20905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b5f806102c06104c6565b90506102cd8185856104cd565b600191505092915050565b5f600254905090565b5f806102eb6104c6565b90506102f88582856104df565b610303858585610572565b60019150509392505050565b5f60055f9054906101000a900460ff16905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103a190610d46565b80601f01602080910402602001604051908101604052809291908181526020018280546103cd90610d46565b80156104185780601f106103ef57610100808354040283529160200191610418565b820191905f5260205f20905b8154815290600101906020018083116103fb57829003601f168201915b5050505050905090565b5f8061042c6104c6565b9050610439818585610572565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104da8383836001610662565b505050565b5f6104ea8484610444565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561056c578181101561055d578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161055493929190610d76565b60405180910390fd5b61056b84848484035f610662565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105e2575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105d99190610c97565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610652575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106499190610c97565b60405180910390fd5b61065d838383610831565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036106d2575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016106c99190610c97565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610742575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107399190610c97565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561082b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108229190610beb565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610881578060025f8282546108759190610dd8565b9250508190555061094f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561090a578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161090193929190610d76565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610996578060025f82825403925050819055506109e0565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a3d9190610beb565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610a8c82610a4a565b610a968185610a54565b9350610aa6818560208601610a64565b610aaf81610a72565b840191505092915050565b5f6020820190508181035f830152610ad28184610a82565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b0782610ade565b9050919050565b610b1781610afd565b8114610b21575f80fd5b50565b5f81359050610b3281610b0e565b92915050565b5f819050919050565b610b4a81610b38565b8114610b54575f80fd5b50565b5f81359050610b6581610b41565b92915050565b5f8060408385031215610b8157610b80610ada565b5b5f610b8e85828601610b24565b9250506020610b9f85828601610b57565b9150509250929050565b5f8115159050919050565b610bbd81610ba9565b82525050565b5f602082019050610bd65f830184610bb4565b92915050565b610be581610b38565b82525050565b5f602082019050610bfe5f830184610bdc565b92915050565b5f805f60608486031215610c1b57610c1a610ada565b5b5f610c2886828701610b24565b9350506020610c3986828701610b24565b9250506040610c4a86828701610b57565b9150509250925092565b5f60ff82169050919050565b610c6981610c54565b82525050565b5f602082019050610c825f830184610c60565b92915050565b610c9181610afd565b82525050565b5f602082019050610caa5f830184610c88565b92915050565b5f60208284031215610cc557610cc4610ada565b5b5f610cd284828501610b24565b91505092915050565b5f8060408385031215610cf157610cf0610ada565b5b5f610cfe85828601610b24565b9250506020610d0f85828601610b24565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d5d57607f821691505b602082108103610d7057610d6f610d19565b5b50919050565b5f606082019050610d895f830186610c88565b610d966020830185610bdc565b610da36040830184610bdc565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610de282610b38565b9150610ded83610b38565b9250828201905080821115610e0557610e04610dab565b5b9291505056fea26469706673582212201c7ee54e3d4b810cf8d1bc05bc45152ab13bfdec2c19222db500330cd1283f6e64736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x0efbbc3b…3d36a3 | Transfer | 18,426,652 | 24 days agoFri, 24 Jul 2026 20:12:23 UTC | 0xcaf7…5d11 | IN | 0xe4f8…ffdf | $0.001 DIH |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x92ad17…7857b8 | 30 days agoSat, 18 Jul 2026 15:06:20 UTC | Approval | [0] 0x000000000000…30a15c5a [1] 0x000000000000…3ac78ba3 data: 0x000000000000000000…8c1ee8c8 |
| 0x0898b9…34cd60 | 30 days agoSat, 18 Jul 2026 15:03:02 UTC | Transfer | [0] 0x000000000000…638de0d3 [1] 0x000000000000…c067bed8 data: 0x000000000000000000…d47aeae1 |
| 0x0898b9…34cd60 | 30 days agoSat, 18 Jul 2026 15:03:02 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…638de0d3 data: 0x000000000000000000…d47aeae1 |
| 0xd95762…e92f01 | 30 days agoSat, 18 Jul 2026 15:01:19 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…30a15c5a data: 0x000000000000000000…8c1ee8c8 |
| 0x9c8c7c…867877 | 30 days agoSat, 18 Jul 2026 14:55:34 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…c067bed8 data: 0x000000000000000000…61a21408 |
| 0x8342f3…fc687d | 30 days agoSat, 18 Jul 2026 14:54:42 UTC | Transfer | [0] 0x000000000000…e82b4fb7 [1] 0x000000000000…f2a2b240 data: 0x000000000000000000…695877b8 |
| 0x6f9974…584358 | 30 days agoSat, 18 Jul 2026 14:54:16 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…c067bed8 data: 0x000000000000000000…b49b5d2d |
| 0x0352ad…5b3862 | 30 days agoSat, 18 Jul 2026 14:53:33 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…c067bed8 data: 0x000000000000000000…a88c940c |
| 0xdc4ac1…bc71a2 | 30 days agoSat, 18 Jul 2026 14:52:29 UTC | Transfer | [0] 0x000000000000…c61a6479 [1] 0x000000000000…f2a2b240 data: 0x000000000000000000…c7f5061e |
| 0x0bb5a2…eb790f | 30 days agoSat, 18 Jul 2026 14:50:02 UTC | Transfer | [0] 0x000000000000…1ab53752 [1] 0x000000000000…f2a2b240 data: 0x000000000000000000…a43e0b30 |
| 0x9831f8…8a8e3b | 30 days agoSat, 18 Jul 2026 14:44:23 UTC | Transfer | [0] 0x000000000000…6f11e4e3 [1] 0x000000000000…f2a2b240 data: 0x000000000000000000…6defe5c8 |
| 0x0e85c5…91c0bc | 30 days agoSat, 18 Jul 2026 14:39:17 UTC | Transfer | [0] 0x000000000000…fc6a9afd [1] 0x000000000000…f2a2b240 data: 0x000000000000000000…84cdb102 |
| 0x24abb3…001fcc | 30 days agoSat, 18 Jul 2026 14:39:00 UTC | Transfer | [0] 0x000000000000…47919fe7 [1] 0x000000000000…f2a2b240 data: 0x000000000000000000…0d71aaff |
| 0xa46d4c…d5b18c | 30 days agoSat, 18 Jul 2026 14:37:41 UTC | Approval | [0] 0x000000000000…3154e3d3 [1] 0x000000000000…959e5cb2 data: 0xffffffffffffffffff…ffffffff |
| 0x1d5324…9bccd5 | 30 days agoSat, 18 Jul 2026 14:37:41 UTC | Approval | [0] 0x000000000000…e82b4fb7 [1] 0x000000000000…959e5cb2 data: 0xffffffffffffffffff…ffffffff |
| 0x3c9a11…e48b2b | 30 days agoSat, 18 Jul 2026 14:37:37 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…e82b4fb7 data: 0x000000000000000000…695877b8 |
| 0x2eda00…1fc5cb | 30 days agoSat, 18 Jul 2026 14:37:36 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…6f11e4e3 data: 0x000000000000000000…5172fb14 |
| 0x6ea00a…39d323 | 30 days agoSat, 18 Jul 2026 14:37:36 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…3154e3d3 data: 0x000000000000000000…30beaf60 |
| 0xc64095…1912df | 30 days agoSat, 18 Jul 2026 14:37:33 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…1ab53752 data: 0x000000000000000000…e690c4c3 |
| 0x678d1c…42c230 | 30 days agoSat, 18 Jul 2026 14:37:30 UTC | Approval | [0] 0x000000000000…79c6e6fb [1] 0x000000000000…a27c0835 data: 0xffffffffffffffffff…ffffffff |
| 0xfc908f…04f875 | 30 days agoSat, 18 Jul 2026 14:37:30 UTC | Transfer | [0] 0x000000000000…f2a2b240 [1] 0x000000000000…79c6e6fb data: 0x000000000000000000…7e9fd2b9 |
| 0xc0b060…a40497 | 30 days agoSat, 18 Jul 2026 14:37:29 UTC | Approval | [0] 0x000000000000…47919fe7 [1] 0x000000000000…959e5cb2 data: 0xffffffffffffffffff…ffffffff |
| 0x4d2c53…a20f75 | 30 days agoSat, 18 Jul 2026 14:37:28 UTC | Approval | [0] 0x000000000000…c61a6479 [1] 0x000000000000…959e5cb2 data: 0xffffffffffffffffff…ffffffff |
| 0x36a912…26d668 | 30 days agoSat, 18 Jul 2026 14:37:28 UTC | Approval | [0] 0x000000000000…1ab53752 [1] 0x000000000000…959e5cb2 data: 0xffffffffffffffffff…ffffffff |
| 0x71880f…4c9a2e | 30 days agoSat, 18 Jul 2026 14:37:28 UTC | Approval | [0] 0x000000000000…6f11e4e3 [1] 0x000000000000…959e5cb2 data: 0xffffffffffffffffff…ffffffff |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x92ad17…7857b8 | Approve | 13,074,638 | 30 days agoSat, 18 Jul 2026 15:06:20 UTC | 0x1f0b…5c5a | IN | Rosa | $0.000 ETH | 0.00000309 | |
| 0xa46d4c…d5b18c | Approve | 13,057,494 | 30 days agoSat, 18 Jul 2026 14:37:41 UTC | 0x9df6…e3d3 | IN | Rosa | $0.000 ETH | 0.00000309 | |
| 0x1d5324…9bccd5 | Approve | 13,057,493 | 30 days agoSat, 18 Jul 2026 14:37:41 UTC | 0xa799…4fb7 | IN | Rosa | $0.000 ETH | 0.00000309 | |
| 0x678d1c…42c230 | Approve | 13,057,383 | 30 days agoSat, 18 Jul 2026 14:37:30 UTC | 0xf6e5…e6fb | IN | Rosa | $0.000 ETH | 0.00000309 | |
| 0xc0b060…a40497 | Approve | 13,057,369 | 30 days agoSat, 18 Jul 2026 14:37:29 UTC | 0x5471…9fe7 | IN | Rosa | $0.000 ETH | 0.00000309 | |
| 0x4d2c53…a20f75 | Approve | 13,057,363 | 30 days agoSat, 18 Jul 2026 14:37:28 UTC | 0xbff4…6479 | IN | Rosa | $0.000 ETH | 0.00000309 | |
| 0x36a912…26d668 | Approve | 13,057,361 | 30 days agoSat, 18 Jul 2026 14:37:28 UTC | 0x96d9…3752 | IN | Rosa | $0.000 ETH | 0.00000309 | |
| 0x71880f…4c9a2e | Approve | 13,057,360 | 30 days agoSat, 18 Jul 2026 14:37:28 UTC | 0xba0a…e4e3 | IN | Rosa | $0.000 ETH | 0.00000309 | |
| 0xe9157c…4a6353 | Approve | 13,057,249 | 30 days agoSat, 18 Jul 2026 14:37:17 UTC | 0x7c21…9afd | IN | Rosa | $0.000 ETH | 0.00000311 | |
| 0x4baa33…25386d | Approve | 13,025,592 | 30 days agoSat, 18 Jul 2026 13:44:19 UTC | 0x217e…bed8 | IN | Rosa | $0.000 ETH | 0.00000311 |