Animal Crossing을 시뮬레이트하는 스마트 계약(닌텐도 게임)

스마트 계약 자동 벨 디스펜서

Animal Crossing Nintendo Game의 은행 시스템 시뮬레이션










프로젝트 정보



이 프로젝트는 Animal Crossing 뱅킹 시스템을 시뮬레이션하는 스마트 계약으로 구성됩니다. Animal Crossing은 Nintendo에서 개발하고 게시한 소셜 시뮬레이션 비디오 게임 시리즈로 사용자는 은행 계좌를 가지고 물건을 사고 팔 수 있습니다. 내부에 2개의 토큰에 대한 스마트 계약을 생성했습니다. 게임, Bell & Miles(ERC20 표준) 및 모든 게임의 기능을 시뮬레이션하는 계약 1개. 또한 배포 및 테스트를 위한 스크립트를 추가합니다(분명히).

link Repository , 팔로우를 남겨주세요.

내장



  • Solidity

  • Hardhat

  • 안전모 시작하기




    npx hardhat accounts
    npx hardhat compile
    npx hardhat clean
    npx hardhat test
    npx hardhat node
    node scripts/TomNookATM.js
    npx hardhat help
    


    기능



    Bells & Miles(ERC20 표준)



    Nook Miles는 실생활에서 항공 마일리지 프로그램과 유사하게 작동하는 New Horizons의 통화 유형입니다. 플레이어는 무인도 주변의 여행 및 활동 참여를 통해 Nook Miles를 적립합니다. 또한 플레이어는 NookPhone의 Nook Miles 앱 섹션에서 작업 및 스탬프 카드를 완료하여 Nook Miles를 얻을 수도 있습니다. Nook Stop에서 500 Nook Miles를 3,000 Bells 바우처로 교환할 수 있으므로 1 Nook Miles는 6 Bells와 같습니다.

    종은 Animal Crossing 시리즈에서 사용되는 주요 통화입니다. 상점에서 아이템을 구매하고 플레이어의 모기지를 갚는 데 가장 자주 사용되지만 Bell은 마을 사람들과의 거래 및 기타 서비스를 포함하여 여러 다른 측면에서도 사용될 수 있습니다.







    import "@openzeppelin/contracts/utils/Context.sol";
    import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
    
    //Bell.sol
    
    contract Bell is ERC20 {
        constructor() ERC20("Bell", "BLL") {
            _mint(msg.sender, 1000000 * (10**uint256(decimals())));
        }
    }
    
    //Miles.sol
    
    contract Miles is ERC20 {
        constructor() ERC20("Miles", "MLS") {
            _mint(msg.sender, 100 * (10**uint256(decimals())));
        }
    }
    
    
    



    빚을 갚다



    모기지는 플레이어가 집을 짓고 확장한 대가로 너굴에게 빚진 벨의 수입니다. 갚아야 할 모기지가 여러 개 있습니다.






    
        address payable TomNook;
        mapping(address => uint256) userDebt;
    
        function payDebts(uint256 _amount) external accountExists {
            if (userDebt[msg.sender] == 0) {
                console.log(
                    "extinguished corredebts! Congratulations ! you have finished paying your home loan !  "
                );
            } else {
                //tracking
                claimInterests();
                accounts[msg.sender].balances[address(bell)] -= _amount;
                userDebt[msg.sender] -= _amount;
                bell.transfer(TomNook, _amount);
            }
        }
    
    



    벨 바우처 덱스



    Bell 바우처는 New Horizons에서 사용할 수 있는 새로운 아이템입니다. Resident Services Tent 또는 Building의 Nook Stop에서 교환할 수 있습니다. 비용은 500 Nook Miles이며 3,000 Bells에 판매됩니다. Nook Miles를 Bells로 변환하는 방법 외에는 용도가 없습니다.







        function BellVaucherDex(uint256 _amount) external {
            accounts[msg.sender].balances[address(miles)] -= _amount; 
            bell.transferFrom(TomNook, msg.sender, _amount * 6);
        }
    



    자동 벨 분배기



    이자는 매월 1일 플레이어의 저축에 0.5%(뉴 호라이즌스에서는 0.05%) 입금됩니다. ABD는 City Folk에서 처음 추가되었으며 이후 모든 주요 시리즈 게임에 등장했습니다.








    
        function claimInterests() public {
            uint256 rate = ((block.timestamp -
                accounts[msg.sender].timestampForInterests) * 100) / 1 days;
            uint256 interests = (accounts[msg.sender].balances[address(bell)] *
                rate) / 600_000;   
            bell.transferFrom(TomNook, msg.sender, interests);
        }
    


    기타 기능 추가


  • 계정 만들기
  • 계정 해지
  • 보증금
  • 철수
  • 각 토큰의 잔액 가져오기
  • accountExists, onlyValidTokens, OnlyMilesForVaucher 수정자



  • 기여



    기여는 오픈 소스 커뮤니티를 배우고, 영감을 주고, 창조할 수 있는 놀라운 장소로 만드는 것입니다. 귀하의 기여에 크게 감사드립니다.

    이를 개선하기 위한 제안이 있는 경우 저장소를 포크하고 풀 요청을 작성하십시오. "enhancement"태그를 사용하여 이슈를 열 수도 있습니다.
    프로젝트에 별표를 주는 것을 잊지 마세요! 다시 한번 감사합니다! ❤️
  • 프로젝트 포크
  • 기능 분기 만들기( git checkout -b feature/AmazingFeature )
  • 변경 사항 커밋( git commit -m 'Add some AmazingFeature' )
  • 분기로 푸시( git push origin feature/AmazingFeature )
  • 풀 요청 열기
  • 좋은 웹페이지 즐겨찾기