https://cryptozombies.io/ko/course
위 사이트의 내용을 요약하였습니다.
: key-value 저장소이다.
: 특정 계정을 가르키는 고유 식별자이다.
: 모든 함수에서 이용할 수 잇는 특정 전역 변수가 있는데, 함수를 호출한 사람의 주소를 가리키는 msg.sender가 있다.
: 누군가 다른 사람의 데이터를 변경하려면 해당 이더리움 주소와 관련된 개인키를 훔치는 것만 가능해지게 된다.
: 함수가 실행되기 전에, 참인 조건을 확인하는데 유용하다.
: contract A is B 로 선언했을 경우, A 컨트랙트가 A와 B의 컨트랙트에 모두 접근이 가능하다.
import "./filename.sol";
: Storage는 블록체인 상에 영구적으로 저장되는 변수를 Memory는 임시적으로 저장되는 변수를 의미한다. Memory는 컨트랙트 함수에 대한 외부 호출들이 일어나는 사이에 지워지게 된다.
: 함수 외부의 변수는 주로 storage 함수 내부는 주로 memory이다.
: 구조체와 배열을 처리할 때는 이것을 명시해줘야할 때가 있다.
: internal은 함수가 정의된 컨트랙트를 상속하는 컨트랙트에서도 접근이 가능하다 점을 제외하면 private과 동일
: external은 함수가 컨트랙트 바깥에서만 호출될 수 있고 컨트랙트 내의 다른 함수에 의해 호출될 수 없다는 점을 제외하면 public과 동일
: 블록체인 상에 있으면서 우리가 소유하지 않은 컨트랙트와 우리 컨트랙트가 상호작용을 하려면 우선 인터페이스를 정의해야 하네.
function multipleReturns() internal returns(uint a, uint b, uint c) {
return (1, 2, 3);
}
function processMultipleReturns() external {
uint a;
uint b;
uint c;
// 다음과 같이 다수 값을 할당한다:
(a, b, c) = multipleReturns();
}
// 혹은 단 하나의 값에만 관심이 있을 경우:
function getLastReturnValue() external {
uint c;
// 다른 필드는 빈칸으로 놓기만 하면 된다:
(,,c) = multipleReturns();
}
: keccak256을 확인해서 동일 여부 확인