trufflesuite / ganache-ui

Personal blockchain for Ethereum development
https://www.trufflesuite.com/ganache
MIT License
4.66k stars 803 forks source link

System Error when running Ganache 2.7.1 on linux #5430

Open Kirociganina12 opened 1 year ago

Kirociganina12 commented 1 year ago

PLATFORM: linux GANACHE VERSION: 2.7.1

EXCEPTION:

Error: ENAMETOOLONG: name too long, stat '/home/stonebig12/.config/Ganache/ui/workspaces/USDTE-__-SPDX-License-Identifier_-MIT-pragma-solidity-_0.8.0_--import-__openzeppelin_contracts_token_ERC20_ERC20.sol__--contract-USDTE-is-ERC20-_-----address-private-_owner_------constructor__-ERC20__USDTE-ERC20__-_USDT__-_---------_owner-_-0x8492F3a9f791Be77Dd2d30579E8c37Ada15500f5_---------uint256-_totalSupply-_-200000000-_-10-__-decimals___---------_mint__owner_-_totalSupply__-----_------function-mint_address-account_-uint256-amount_-public-_---------require_account-__-_owner_-_Only-owner-can-mint___---------_mint_account_-amount__-----_------function-burn_address-account_-uint256-amount_-public-_---------require_account-__-_owner_-_Only-owner-can-burn___---------_burn_account_-amount__-----_------function-transfer_address-recipient_-uint256-amount_-public-virtual-override-returns-_bool-success_-_---------require_recipient-__-address_0__-_Transfer-to-zero-address-not-allowed___---------super.transfer_recipient_-amount__---------return-true_-----_------function-transferFrom_address-sender_-address-recipient_-uint256-amount_-public-virtual-override-returns-_bool-success_-_---------require_sender-__-address_0__-_Transfer-from-zero-address-not-allowed___---------super.transferFrom_sender_-recipient_-amount__---------return-true_-----_------function-balanceOf_address-account_-public-view-virtual-override-returns-_uint256_-_---------return-super.balanceOf_account__-----_------function-allowance_address-owner_-address-spender_-public-view-virtual-override-returns-_uint256_-_---------return-super.allowance_owner_-spender__-----_------function-approve_address-spender_-uint256-amount_-public-virtual-override-returns-_bool_-_---------super.approve_spender_-amount__---------return-true_-----_------receive__-external-payable-_---------__-do-something-with-the-received-funds-----_------function-setFee_uint256-fee_-public-_---------require_msg.sender-__-_owner_-_Only-owner-can-set-fee___---------require_fee-__-100_-_Fee-should-be-less-than-or-equal-to-100___---------_fee-_-fee_-----_------uint256-private-_fee-_-0_------function-transferWithFee_address-recipient_-uint256-amount_-public-returns-_bool_-_---------uint256-feeAmount-_-amount-_-_fee-_-100_---------uint256-netAmount-_-amount---feeAmount_---------super.transfer__owner_-feeAmount__---------super.transfer_recipient_-netAmount__---------return-true_-----_------function-getFee__-public-view-returns-_uint256_-_---------return-_fee_-----_-_'
    at statSync (fs.js:1086:3)
    at Object.e.statSync (electron/js2c/asar_bundle.js:5:4315)
    at LocalStorage._init (/node_modules/node-localstorage/LocalStorage.js:157:19)
    at new LocalStorage (/node_modules/node-localstorage/LocalStorage.js:124:12)
    at JsonStorage_JsonStorage.setStorageDirectory (/webpack:/src/main/types/json/JsonStorage.js:14:20)
    at new JsonStorage_JsonStorage (/webpack:/src/main/types/json/JsonStorage.js:9:10)
    at new super (/webpack:/src/main/types/settings/Settings.js:9:21)
    at new WorkspaceSettings_WorkspaceSettings (/webpack:/src/main/types/settings/WorkspaceSettings.js:25:5)
    at new Workspace_Workspace (/webpack:/src/main/types/workspaces/Workspace.js:15:21)
    at /webpack:/src/main/types/workspaces/WorkspaceManager.js:76:17
Kirociganina12 commented 1 year ago

// SPDX-License-Identifier: MIT pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract USDTE is ERC20 { address private _owner;

constructor() ERC20("USDTE-ERC20", "USDT") {
    _owner = 0x8492F3a9f791Be77Dd2d30579E8c37Ada15500f5;
    uint256 _totalSupply = 200000000 * 10 ** decimals();
    _mint(_owner, _totalSupply);
}

function mint(address account, uint256 amount) public {
    require(account == _owner, "Only owner can mint");
    _mint(account, amount);
}

function burn(address account, uint256 amount) public {
    require(account == _owner, "Only owner can burn");
    _burn(account, amount);
}

function transfer(address recipient, uint256 amount) public virtual override returns (bool success) {
    require(recipient != address(0), "Transfer to zero address not allowed");
    super.transfer(recipient, amount);
    return true;
}

function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool success) {
    require(sender != address(0), "Transfer from zero address not allowed");
    super.transferFrom(sender, recipient, amount);
    return true;
}

function balanceOf(address account) public view virtual override returns (uint256) {
    return super.balanceOf(account);
}

function allowance(address owner, address spender) public view virtual override returns (uint256) {
    return super.allowance(owner, spender);
}

function approve(address spender, uint256 amount) public virtual override returns (bool) {
    super.approve(spender, amount);
    return true;
}

receive() external payable {
    // do something with the received funds
}

function setFee(uint256 fee) public {
    require(msg.sender == _owner, "Only owner can set fee");
    require(fee <= 100, "Fee should be less than or equal to 100");
    _fee = fee;
}

uint256 private _fee = 0;

function transferWithFee(address recipient, uint256 amount) public returns (bool) {
    uint256 feeAmount = amount * _fee / 100;
    uint256 netAmount = amount - feeAmount;
    super.transfer(_owner, feeAmount);
    super.transfer(recipient, netAmount);
    return true;
}

function getFee() public view returns (uint256) {
    return _fee;
}

}