728x90 프로그래밍/Solidity6 [Solidity] 컨트랙트에 입금된 이더리움 출금하기 NFT 스마트 컨트랙트를 만들어 판매가 시작되면, 구매자들의 이더리움이 내 스마트 컨트랙트에 저장됩니다. 이 돈은 아직 내 지갑에 들어온 돈이 아니기에, 출금 신청을 해야만 합니다. 따라서 Solidity 코드 안에 출금 기능을 넣어봅시다. 아래 코드처럼 함수를 만들어주면 됩니다. contract MyContract is ERC721URIStorage, Ownable { function withdraw() external payable onlyOwner() { payable(owner()).transfer(address(this).balance); } } 예시에선 두 개의 클래스를 상속받고 있는데요, 이 중 필요한 클래스는 Ownable입니다. 컨트랙트 주인의 계좌에 송금하는 코드이므로 계좌 주인만 사용.. 2022. 2. 20. Hardhat으로 Rinkeby 테스트넷에 스마트 컨트랙트 업로드하기 스마트 컨트랙트 개발이 완료됐다면, 이더리움 메인넷에 업로드하기 전, 먼저 제대로 작동하는지 테스트를 해볼겁니다. 기존처럼 단순히 로컬 hardhat 네트워크에서 테스트하는게 아니라, 실제 내 지갑과 연결하고 스마트 컨트랙트가 작동하는 모습을 확인하고 싶다면, Rinkeby라는 테스트넷을 사용해야 합니다. Rinkeby외에도 여러 테스트넷이 있지만, 개인적으로 가장 편리하다고 생각하는 네트워크기 때문에, 이를 기준으로 설명해보겠습니다. Rinkeby 계정 만들기 이 포스트를 보시는 분들은 모두 Solidity 개발을 해보신 분들일테니, 아마 Metamask 계정은 이미 있으실겁니다. Metamask를 켜면 아래처럼 내 계좌가 뜨는데요, 맨 위에 'Rinkeby 테스트 네트워크'라고 뜨는게 보이시나요? 지.. 2022. 1. 14. Hashlips_art_engine 사용해 NFT metadata 만들기 오늘은 여러 layer로 이뤄진 NFT 컬렉션을 만들어 보겠습니다. 사용할 패키지는 Hashlips_art_engine입니다. 자체 유튜브에서도 자세히 설명이 나와있으니, 영상으로 보고싶으신 분은 링크를 따라 가주세요. 유튜브에선 여러 기능을 소개하다보니 내용이 헤깔리기도 해, 여기선 간단히 내용 정리하는 정도로 진행하겠습니다. 1. Github에서 패키지 받아오기 여긴 Github를 사용할 줄 아는 분이라면 쉬울거에요 터미널로 본인이 원하는 폴더에 들어간 후, 아래 코드를 입력해 패키지를 다운로드해 주세요 git clone https://github.com/HashLips/hashlips_art_engine.git 2. Dependencies 설치 1번이 끝났다면 아래와 같이 폴더가 하나 생겼을텐데요,.. 2022. 1. 5. Hardhat에서 컨트랙트로 이더리움 송금하기 이번엔 Hardhat에서 테스트할 때, 내 월렛에서 컨트랙트로 이더리움을 보내는 방법을 알려드리겠습니다. 보내는 방법은 엄청 간단한데, 바로 코드부터 보시죠 const {ethers} = require("hardhat"); const mc = await ethers.getContractFactory("MyContract"); newContract = await mc.deploy(); const create1 = await newContract.doSomething({value: ethers.utils.parseEther("0.06")}); 먼저 Solidity로 만든 MyContract를 불러와 deploy합니다. 이렇게 만든 컨트랙트를 newContract라 부르도록 하겠습니다. 그 다음, myCont.. 2021. 12. 23. Hardhat에서 테스트용 월렛 정보 받아오기 Hardhat은 Remix처럼 버튼 클릭으로 데이터를 받아오는 방식이 아니기에, 테스트용 월렛 정보를 받아오기 위해선 javascript를 사용해야 합니다. 바로 코드부터 확인하겠습니다. const {ethers, waffle} = require("hardhat") const provider = waffle.provider; const [ad1, ad2, ad3] = await ethers.getSigners(); console.log(ad1.address); console.log(ad2.address); const balance1 = await provider.getBalance(ad1.address); bal1 = ethers.utils.formatEther(balance1); console.log(.. 2021. 12. 23. VSCode에서 Hardhat 사용 시 초기 세팅 npx hardhat compile로 솔리디티 프로젝트 생성 후 VSCode에서 해당 프로젝트를 수정할 경우, File not Found: 라는 에러와 함께 모듈 연결이 제대로 되지 않는 현상이 발생합니다. 이 문제를 해결하는 방법은 다음과 같습니다. VSCode에서 해당 프로젝트 폴더를 살펴보면, 아래처럼 .vscode폴더에 settings.json이란 파일이 있는데, 이 settings.json이 처음엔 빈 내용으로 되어있는 것을 확인할 수 있습니다. 여기를 아래 코드처럼 바꿔주세요 { "solidity.packageDefaultDependenciesContractsDirectory": "", "solidity.packageDefaultDependenciesDirectory": "node_module.. 2021. 11. 21. 이전 1 다음 728x90