본문 바로가기
솔리디티

인터페이스 (interface)

by 멸치김밥 2022. 2. 12.

인터페이스는 다른 컨트랙트에 있는 함수를 불러올 수 있는 길을 터주는 역할을 한다.

JS의 module.exports , require 와 비슷한 개념이다

인터페이스에 들어갈 함수는 { } 의 내용이 빠진채로 끝내주면 된다.

contract 인터페이슥 {
	function 함수다(매개변수) public returns (uint a, uint b);
}

이렇게 인터페이스가 정의 되면 다른 컨트랙트에서 가져다가 사용할 수 있다.

contract 멸치컨트랙트 {
	인터페이슥 인터컨트랙트;
	인터컨트랙트.함수다(매개매개);
}

 

크립토좀비에서 사용하고있는 형태에 의하면

나를 가리키고 있는 주소값을 다른 주소값으로 변경할 수도 있나보다.

contract 멸치컨트랙트 {
	address 남의주소 = 0xabc...
	인터페이슥 인터컨트랙트 = 인터페이슥(남의주소);
}

이렇게 하면 '인터컨트랙트'는 '내'가 아닌 '0xabc...'가 기준이 되게끔 초기화된다고 한다

그래서 msg.sender가 0xabc...를 가리키게 된다

 

그리고 반환하는 값이 두개 이상인 경우 반환받고 싶은 것만 골라서 받을 수 있다.

contract 멸치컨트랙트 {
	address 남의주소 = 0xabc...
	인터페이슥 인터컨트랙트 = 인터페이슥(남의주소);
	uint 골라담을변수;
	(,골라담을변수) = 인터컨트랙트.함수다(매개매개);
}

이렇게 하면 '함수다' 함수는 반환하는 값이 a와 b 두개이지만

b만 '골라담을변수'에 받을 수 있다.

 

'솔리디티' 카테고리의 다른 글

오버플로우, 언더플로우  (0) 2022.02.16
리믹스 이더리움으로 SimpleCoin 트랜잭션 만들어보기  (0) 2022.02.11
storage, memory  (0) 2022.02.11
구조체 (struct)  (0) 2022.02.10
컨트랙트 contract  (0) 2022.02.10

댓글