-
컨트랙트 작성
-
Token 컨트랙트 : FRT 토큰에 대한 컨트랙트 작성
-
FruitShop 컨트랙트 : 과일 구매, 판매, 보유과일 체크 등에 대한 컨트랙트 작성
-
-
프론트
-
구매하기 : 다른 사람들이 판매중인 과일을 FRT or ETH 로 구매가능, 내가 가진 과일 판매 가능
-
판매하기 : 다른 사람들이 구매중인 과일을 FRT or ETH 로 판매가능, 내가 필요한 과일 구매 가능
-
상점 : 과일판매, 토큰 교환
-
-
지갑연결
-
지갑연결 버튼을 통해 메타마스크와 지갑연결
-
goerli testnet 네트워크가 아니라면 메타마스크에 요청하여 네트워크 변경 요청
-
-
web3 연결
-
토큰 스왑 : 이더리움 🔁 토큰 스왑
-
과일 구매 : 최대 100개 과일별 구매 가능
-
보유한 과일 확인
-
과일 거래
-
-
배포
-
Docker를 이용하여 AWS EC2에 배포
-
git actions를 이용하여 자동배포화(CD) 구현
-
docker run --rm -d -p 80:80 tetedo/ethfruitshop
- 메인 페이지, 보유 과일 확인, 과일 등록 팝업
- 거래 페이지
- 상점에서 과일 구매 , 토큰 교환 가능
await window.ethereum
.request({
jsonrpc: "2.0",
method: "wallet_switchEthereumChain",
params: [{ chainId: "0x5" }],
})
.catch(() => {
alert("goerli 네트워크에서만 사용가능");
});
지갑 연결 버튼 클릭시 메타마스크에 account 요청
eth로 과일을 구매한다고 과일등록을 할 때 이슈가 발생
거래가 이루어질때 판매자가 트랜잭션을 보낼 때 구매자의 eth를 별도의 트랜잭션 없이 보내는게 불가능
내가 과일을 구매한다고 올릴때 eth를 받아서 해결