[STEP1]
SmartContract 작성
pragma solidity ^0.4.23;
contract RealEstate {
//매입자 정보 구조체
struct Buyer {
address buyerAddress;
bytes32 name;
uint age;
}
//매물의 아이디를 key값으로 하여 매입자의 정보를 불러오는 구조
mapping (uint => Buyer) public buyerInfo;
address public owner;
address[10] public buyers;
constructor() public {
owner = msg.sender;
}
function buyRealEstate(uint _id, bytes32 _name, uint _age)public payable {
//매물 유효성 검사
require(_id >= 0 && _id <=9);
//매개변수로 받은 id를 인덱스값으로 써서 구매자의 주소를 배열에 저장
buyers[_id] = msg.sender;
//매물의 아이디를 key값으로 하여 매입자의 정보를 구조체의 value값으로 저장
buyerInfo[_id] = Buyer(msg.sender, _name, _age);
//eth를 계정과 계정으로 이동할때 transfer함수 사용
//msg.value는 Wei만 허용, owner에게 eth를 전송
owner.transfer(msg.value);
}
}
[STEP2]
1. ganache 네트워크에 수정한 컨트랙트를 재배포 합니다.
2. truffle console에 접속합니다.
3. 전역변수 app에 instance를 저장합니다.
4. 새롭게 정의한 매물구입함수를 실행시켜봅니다.
5. ganache를 열어보면 우리가 사용한 2번째 계정에서 ether가 나가고 첫 번째 계정(owner)으로 ether가 들어온것을 확인 할 수 있습니다.
'Ethereum > 부동산 Dapp' 카테고리의 다른 글
부동산Dapp_(6)읽기 전용 함수 (0) | 2019.09.24 |
---|---|
부동산Dapp_(5)event (0) | 2019.09.24 |
부동산Dapp_(3)부동산 Dapp Contract 소유자 설정 (0) | 2019.09.02 |
부동산Dapp_(2)트러플 & 컨트랙 배포 (0) | 2019.08.30 |
부동산Dapp_(1)Genesis Block 생성 및 Node 초기화 (1) | 2019.08.22 |
댓글