Fundraising.sol 제작하기
- pragma solidity ^0.8.0;
컴파일러 버전을 잠근다. 더 높은 버전으로 했을 경우 코드가 깨질 경우가 있기 때문임
- contract Fundraising {}
클래스 대신 contract 를 사용함.
이때 가지고 있어야 할 프로퍼티는
소유자, 목표 금액, 프로젝트에 기부한 사람들의 목록, 그들의 기부 금액, 기부금 누적 총액, 데드라인이 필요함.
데드라인이 될 때 까지 기부금의 총액이 목표 금액보다 높을 경우 프로젝트의 소유자에게 자금이 감.
But 기부금의 총액이 목표 금액보다 낮을 경우 기부한 사람들에게 전액 환불이 됨.
목표 금액은 부호 없는 정수, 음수가 아닌 정수가 될것임.
... 제작 과정 ...
스마트 컨트랙트 배포하기
- 작성된 펀딩 스마트 컨트랙트
- Deploy 버튼을 누르고 배포를 진행하면 블록이 생성됨.
- Ropsten Testnet 트랜잭션을 볼 수 있고, 스마트 컨트랙트의 계좌도 볼 수 있음.
- 위 사진이 필자가 배포한 스마트 컨트랙트임.
- 계약 배포의 기록이 남아 있음.
- 스마트 컨트랙트 계좌 주소를 복사 한 후 0.1 Ropsten 을 전송함.
- 필자가 0.1 Ropsten 을 기부한 기록이 남아 있음.
- 스마트 컨트랙트의 계좌 잔고에 0.1 Ether 가 남아있음.
- 리믹스에서 raisedAmount 함수 호출을 해보니 잔고를 확인 할 수 있음.
- 0.3 Ether 를 더 보내봤음.
- 이더스캔에서 확인할 수 있음.
'Incognito Project' 카테고리의 다른 글
[Incognito Project] 솔리디티 문법 04 - 변수(Variable) (0) | 2022.09.25 |
---|---|
[Incognito Project] 개발 환경 셋팅 (0) | 2022.09.24 |
[Incognito Project] 이더리움 2.0 전환 (0) | 2022.09.24 |
[Incognito Project] 솔리디티 문법 03 - mapping 과 msg.sender (0) | 2022.09.24 |
[Incognito Project] 솔리디티 보안 - Keccak256 함수로 난수 생성 (1) | 2022.09.24 |