Linkdrop 컨트랙트
우리는 linkdrop 스마트 컨트랙트에 대해 이야기하기 위해, 약간 다른 이야기를 할 것입니다. 먼저 이 컨트랙트와 그 목적을 이해한 다음 이 컨트랙트에서 메서드 호출에 대해 논의하는 것이 가장 좋습니다.
linkdrop 컨트랙트는 테스트넷과 메인넷 네트워크의 최상위 계정으로 각각 알려진 계정 testnet
과 near
에 배포됩니다. (누구나 linkdrop 스타일의 컨트랙트를 다른 곳에서 만들 수 있지만, 여기에 표시된 컨트랙트는 다른 사람들이 패턴화한 주요 컨트랙트입니다.)
테스트넷
테스트넷 계정에는 특별한 것이 없습니다. 테스트넷 계정을 생성할 때 개발자로서 실제 비용은 없으므로 편의에 따라 자유롭게 생성하거나 삭제할 수 있습니다.
사용자가 NEAR Wallet에서 테스트넷 계정에 가입하면 다음과 같이 표시됩니다.
이 테스트넷 계정이 어떻게 생성되는지 논의해 봅시다.
새 계정은 .testnet
로 끝납니다. 이는 (이 튜토리얼의 앞부분에서 배운 것처럼) testnet<code> 계정이 <code>.vacant-name.testnet
이라는 하위 계정(sub-account)을 생성하기 때문입니다.
이 하위 계정을 만드는 방법에는 두 가지가 있습니다.
testnet
계정에 대한 전체 액세스 키를 사용하여CreateAccount
Action으로 트랜잭션에 서명합니다.testnet
계정에 배포된 스마트 컨트랙트에서, Promise를 반환하는 비동기 메서드인CreateAccount
Action을 호출합니다. (CreateAccount
Promise 작성에 대한 추가 정보)
(NEAR CLI를 사용하여 새 계정을 생성하는 아래 예에서는, 메인넷의 최상위 "near" 계정에 배포되는 linkdrop 컨트랙트 내 CreateAccount
를 호출합니다.)
메인넷
메인넷에서 near
계정에는 linkdrop 컨트랙트도 배포되어 있습니다.
NEAR CLI를 사용하면 아래와 같이 linkdrop 컨트랙트를 호출하여 메인넷 계정을 생성할 수 있습니다.
위의 명령은 near
계정에서 create_account
메서드를 호출하고, 사용 가능한 경우 aloha.near
를 생성하여 15 Ⓝ 만큼의 자금을 조달합니다.
동일한 메서드를 호출하는 스마트 컨트랙트를 작성하려고 합니다. 그러나 누군가 이미 aloha.near
를 가져갔을 가능성이 있기 때문에, 이를 처리하는 방법을 배워야 합니다.