Truffle Suite Pet Shop

오젼·2022년 7월 6일
0

Truffle Suite Pet Shop

Truffile Suite Pet Shop 예제를 보고 기본적인 디앱을 구현해본다!
https://trufflesuite.com/guides/pet-shop/

Truffle box

Truffle Commands

Statically-typed language

  • 솔리디티는 statically-typed language이다. 미리 자료형을 정해야 한다.

Address 자료형

  • 20바이트. address는 Wallet의 public key를 담는다.

msg 전역 변수, msg.sender

 // Adopting a pet
 function adopt(uint petId) public returns (uint) {
   require(petId >= 0 && petId <= 15);
   adopters[petId] = msg.sender;
   return petId;
}

Storage vs Memory

// Retrieving the adopters
function getAdopters() public view returns (address[16] memory) {
  return adopters;
}
  • https://merrily-code.tistory.com/102
  • 솔리디티에는 변수를 저장할 수 있는 Storage와 Memory 라는 공간이 존재.
  • Storage는 블록체인 상에 영구적으로 저장되며, Memory는 임시적으로 저장되는 변수로 함수의 외부 호출이 일어날 때마다 초기화 된다.

view keyword

  • 함수 안에서 contract의 상태를 변경할 수 없도록 한다. (cpp의 함수 const 제한과 비슷한 느낌인듯)

truffle migrate

  • truffle migrate 명령어를 수행하면 migrations 디렉토리에 있는 스크립트를 차례대로 수행합니다. 스크립트 파일 이름에 붙어 있는 숫자 prefix는 truffle에서 인식하는 숫자입니다. migrate 명령 수행시 이전에 수행한 스크립트가 있으면 그 숫자 이후의 마이그레이션만 수행합니다. 만약 컨트랙 코드를 바꾸어 다시 배포해야 한다면 truffle migrate --reset과 같이 --reset 플래그를 주어 첫번째 스크립트부터 다시 실행하도록 할 수 있습니다.
    출처: https://joojis.tistory.com/entry/Truffle로-구성하는-빠른-Solidity-개발-시작-가이드 [블록체인 개발 블로그:티스토리]

  • truffle migrate를 위해선 1_initial_migration.js 가 필요함. truffle init으로 자동으로 생성할 수 있음
    https://trufflesuite.com/docs/truffle/getting-started/running-migrations/

window.ethereum

What is address(0) in Solidity

0개의 댓글