EuroDigital

Description:

Smart contract deployed on Ethereum with Factory features.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "EuroDigital.sol": {
      "content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.18;\r
\r
/// @title Euro Digital Token (BEP-20) con prezzo virtuale fisso 1 € per token\r
contract EuroDigital {\r
    string public name = "Euro Digital";\r
    string public symbol = "EURC";\r
    uint8 public decimals = 18;\r
    uint256 public totalSupply;\r
    address public owner;\r
\r
    // Prezzo virtuale 1 € per token (scaled 1e18)\r
    uint256 public virtualPriceEUR = 1e18;\r
\r
    mapping(address => uint256) private _balances;\r
    mapping(address => mapping(address => uint256)) public allowance;\r
\r
    event Transfer(address indexed from, address indexed to, uint256 value);\r
    event Approval(address indexed ownerAddr, address indexed spender, uint256 value);\r
    event VirtualPriceUpdated(uint256 oldPrice, uint256 newPrice);\r
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r
\r
    modifier onlyOwner() {\r
        require(msg.sender == owner, "Only owner");\r
        _;\r
    }\r
\r
    constructor() {\r
        owner = msg.sender;\r
        totalSupply = 1_000_000_000_000 * 10**decimals; // trilioni con 18 decimali\r
        _balances[msg.sender] = totalSupply;\r
        emit Transfer(address(0), msg.sender, totalSupply);\r
    }\r
\r
    // --- ERC20-like ---\r
    function balanceOf(address account) public view returns (uint256) {\r
        return _balances[account];\r
    }\r
\r
    function transfer(address to, uint256 value) public returns (bool) {\r
        require(_balances[msg.sender] >= value, "balance too low");\r
        _balances[msg.sender] -= value;\r
        _balances[to] += value;\r
        emit Transfer(msg.sender, to, value);\r
        return true;\r
    }\r
\r
    function approve(address spender, uint256 value) public returns (bool) {\r
        allowance[msg.sender][spender] = value;\r
        emit Approval(msg.sender, spender, value);\r
        return true;\r
    }\r
\r
    function transferFrom(address from, address to, uint256 value) public returns (bool) {\r
        require(_balances[from] >= value, "balance too low");\r
        require(allowance[from][msg.sender] >= value, "allowance too low");\r
        allowance[from][msg.sender] -= value;\r
        _balances[from] -= value;\r
        _balances[to] += value;\r
        emit Transfer(from, to, value);\r
        return true;\r
    }\r
\r
    // --- Owner functions ---\r
    function mint(address to, uint256 amount) external onlyOwner {\r
        _balances[to] += amount;\r
        totalSupply += amount;\r
        emit Transfer(address(0), to, amount);\r
    }\r
\r
    function burn(address from, uint256 amount) external onlyOwner {\r
        require(_balances[from] >= amount, "insufficient");\r
        _balances[from] -= amount;\r
        totalSupply -= amount;\r
        emit Transfer(from, address(0), amount);\r
    }\r
\r
    function setVirtualPriceEUR(uint256 newPriceScaled) external onlyOwner {\r
        emit VirtualPriceUpdated(virtualPriceEUR, newPriceScaled);\r
        virtualPriceEUR = newPriceScaled;\r
    }\r
\r
    function transferOwnership(address newOwner) external onlyOwner {\r
        require(newOwner != address(0), "zero addr");\r
        emit OwnershipTransferred(owner, newOwner);\r
        owner = newOwner;\r
    }\r
\r
    // --- Helper view: calcola valore in € di un saldo ---\r
    function valueInEURScaled(uint256 tokenAmountBaseUnits) public view returns (uint256) {\r
        return (tokenAmountBaseUnits * virtualPriceEUR) / (10**uint256(decimals));\r
    }\r
}\r
"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": false,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
Factory|addr:0x7d9528e32e4fa9b0222f13ff248d63a3312590f6|verified:true|block:23677165|tx:0xe15320c59e4ab034c3b98fed31f3b1e847170e856653569285cfbaa1779022cc|first_check:1761673233

Submitted on: 2025-10-28 18:40:35

Comments

Log in to comment.

No comments yet.