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);
}
기타 기능 추가
기여
기여는 오픈 소스 커뮤니티를 배우고, 영감을 주고, 창조할 수 있는 놀라운 장소로 만드는 것입니다. 귀하의 기여에 크게 감사드립니다.
이를 개선하기 위한 제안이 있는 경우 저장소를 포크하고 풀 요청을 작성하십시오. "enhancement"태그를 사용하여 이슈를 열 수도 있습니다.
프로젝트에 별표를 주는 것을 잊지 마세요! 다시 한번 감사합니다! ❤️
git checkout -b feature/AmazingFeature
) git commit -m 'Add some AmazingFeature'
) git push origin feature/AmazingFeature
) Reference
이 문제에 관하여(Animal Crossing을 시뮬레이트하는 스마트 계약(닌텐도 게임)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/matteol/smart-contract-that-simulate-animal-crossing-nintendo-game-3bh3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)