• Можно ли после выпуска токенов довыпустить еще определённое кол-во?

    EvgenyMamonov
    @EvgenyMamonov
    Senior software developer, system architect
    Можно, как вариант, использовать что-то типа такого:
    // SPDX-License-Identifier: GPL-3.0
    pragma solidity >=0.7.0 <0.9.0;
    
    import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
    
    contract YourContractName is ERC20{
        address owner;
    
        constructor() ERC20("Your token name", "YourSymbol") {
             // запоминаем кошелёк, который загружал токен, чтобы только он мог допечатывать деньги
            owner = msg.sender;
        }
        
        function printCoins(uint256 amount) public {
            require(msg.sender == owner, "Forbidden");
            _mint(owner, amount); // зачисляем деньги на кошелёк владельца контракта
        }
    }
    Ответ написан
    Комментировать
  • Как создать Dapps (децентрализованное приложение) для определённой группы лиц?

    EvgenyMamonov
    @EvgenyMamonov
    Senior software developer, system architect
    Можно заложить такой функционал в смарт-контракт.
    Например можно сделать пару функций типа grantAccess, revokeAccess, которые будут разрешать какому то кошельку (адресу) доступ к смарт контракту или отзывать разрешенный доступ.
    В этих функциях сделать проверку, чтобы их мог вызывать только владелец кошелька или как вы решите.
    А во всех остальных функциях смарт-контракта делать проверку выдавался ли ранее доступ или нет.
    Примерная реализация:
    // SPDX-License-Identifier: GPL-3.0
    pragma solidity >=0.7.0 <0.9.0;
    
    contract ACL {
        // тут храним кошельки, которые могут выдавать/отзывать полномочия админа.
        mapping (address => bool) public admins;
    
        // тут те, кому разрешен доступ
        mapping (address => bool) public accessGranted;
    
        constructor() {
            // наделяем полномочиями админа того, кто деплоил контракт чтобы он потом мог выдать полномочия кому-то еще.
            admins[msg.sender] = true;
        }
        
        function grantAdmin(address to) public {
            require(admins[msg.sender] == true, "Forbidden");
            admins[to] = true;
        }
    
        function revokeAdmin(address to) public {
            require(admins[msg.sender] == true, "Forbidden");
            delete admins[to];
        }
    
        function grantAccess(address to) public {
            require(admins[msg.sender] == true, "Forbidden");
            accessGranted[to] = true;
        }
    
        function revokeAccess(address to) public {
            require(admins[msg.sender] == true, "Forbidden");
            delete accessGranted[to];
        }
        
        // эта функция доступна всем
        function publicOK() public pure returns (string memory) {
            return "public OK";
        }
    
        // эта доступна только тем, кому был предоставлен доступ
        function protectedOK() public view returns (string memory) {
            require(accessGranted[msg.sender] == true, "Forbidden");
            return "protected OK";
        }
    }
    Ответ написан
    4 комментария
  • Создание DAO на основе Ethereum private network?

    @rPman
    Ее децентрализация будет под вопросом (буква D в DAO), ведь чтобы она была таковой, ее должны майнить больше чем десяток человек (точнее количество человек, чтобы хотя бы половина не смогла бы договориться сотворить гадости) и главное количество денег, вложенных в поддержание (майнинг) сети должно быть сравнимо тем суммам, которые там будут крутиться в ваших контрактах (грубо говоря, если майнинг будет приносить всем вашим майнерам 100$ в сутки, а в контракте хотите блокировать миллионы баксов,.. то ни о какой надежности говорить не придется).

    По той же причине, строить DAO на основе dPOS сетей, в которых два с половиной валидатора, как мининимум ненадежно, точнее это больше пыль в глаза, так как просто использовать этих двоих как мерчанта (и классический сервер поднять, вместо извращений с блокчейном без децентрализованного консенсуса) проще и дешевле.

    т.е. ответ, скорее нет.
    Ответ написан
    4 комментария
  • В игре crowd city графика 2d или 3d?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Это чистое 3D. Просто камера вида установленна под углом сверху.
    5d75422d0bc18980631340.jpeg

    Чтобы добиться такого же эффекта Вам надо прочитать/разобраться про позиционирование и управление камерой вида. Об этом можно почитать в документации к игровому движку выбранному вами. Если игру вы делаете на юнити то вот
    Ответ написан
    Комментировать