Skip to main content

완성된 코드

완성된 코드를 확인하세요.

영상 가이드

이 튜토리얼의 영상 가이드를 확인해 보세요!

스마트 컨트랙트 작성하기

이제 개별 단계를 모두 살펴봤으니, 직접 스마트 컨트랙트를 작성하고 배포 및 검증해 봅시다.

IPA 등록, 라이선스 약관 등록, IPA에 첨부하기

이번 첫 번째 섹션에서는 몇 가지 튜토리얼을 하나로 결합합니다. 새로운 IP Asset을 민팅 및 등록하고, 새로운 라이선스 약관을 등록한 뒤, 그 약관을 IP Asset에 첨부하는 mintAndRegisterAndCreateTermsAndAttach라는 함수를 만들 것입니다. 또한 새로 만든 IP Asset의 소유자가 될 receiver 필드도 받습니다.

사전 준비

컨트랙트 작성

./src/Example.sol 경로에 새 파일을 만들고 다음 내용을 붙여넣으세요:
컨트랙트 주소생성자에 전달할 컨트랙트 주소는 배포된 스마트 컨트랙트에서 확인할 수 있습니다.
src/Example.sol

라이선스 토큰 민팅 및 파생물로 등록하기

다음 섹션에서는 이후 튜토리얼 몇 가지를 하나로 결합합니다. 잠재적으로 다른 사용자가 자신의 “자식”(파생) IP Asset을 등록하고, “부모”(루트) IP Asset으로부터 라이선스 토큰을 민팅하며, 자식 IPA를 부모 IPA의 파생물로 등록할 수 있도록 하는 mintLicenseTokenAndRegisterDerivative라는 함수를 만들 것입니다. 다음과 같은 몇 가지 매개변수를 받습니다:
  1. parentIpId: 부모 IPA의 ipId
  2. licenseTermsId: 라이선스 토큰을 민팅하려는 라이선스 약관의 ID
  3. receiver: 자식 IPA의 소유자

사전 준비

컨트랙트 작성

Example.sol 컨트랙트의 맨 아래에 다음 함수를 추가하세요:
src/Example.sol

컨트랙트 테스트하기

test/Example.t.sol 경로에 또 다른 새 파일을 만들고 다음 내용을 붙여넣으세요:
test/Example.t.sol
forge build를 실행하세요. 모든 것이 정상이라면 명령이 성공적으로 컴파일되어야 합니다. 테스트하려면 다음 명령을 실행하세요:

Example 컨트랙트 배포 및 검증

--constructor-args배포된 스마트 컨트랙트에서 가져옵니다.
모든 것이 정상적으로 동작했다면, 콘솔에 Deployed to: 0xfb0923D531C1ca54AB9ee10CB8364b23d0C7F47d 같은 메시지가 보일 것입니다. 해당 주소를 익스플로러에 붙여넣어 검증된 컨트랙트를 확인하세요!

훌륭합니다! :)

완성된 코드

완성된 코드를 확인하세요.

영상 가이드

이 튜토리얼의 영상 가이드를 확인해 보세요!