제퍼넷 로고

스마트 계약은 무엇을 위해 사용됩니까?

시간

토큰은 스마트 계약에 정의되어 있습니다. 일단 배포되면 토큰 스마트 계약은 토큰을 소유한 모든 주소와 그 수를 추적합니다. 또한 주소가 자신에게 귀속된 토큰을 다른 주소로 전송할 수 있도록 하는 기능도 제공합니다.

각 개인이 소유한 토큰의 양은 스마트 계약에 보관되며, 지원 ETH와 달리 기본 블록체인 자체. 따라서 주소에 얼마나 많은 토큰이 있는지 확인하려면 스마트 계약에 쿼리해야 합니다. 이것은 우리가 인식해야 할 구별이다.

주소에 얼마나 많은 ETH가 있는지 쿼리할 때 블록체인에 쿼리합니다.

주소에 얼마나 많은 토큰이 있는지 질의할 때 해당 토큰의 스마트 계약을 질의합니다.

따라서 지갑에 얼마나 많은 ETH와 토큰이 있는지 알려면 토큰 스마트 계약이 블록체인에 배포되는 모든 주소를 알아야 합니다.

샘플 토큰 코드

토큰을 배포하고 이름, 기호를 지정하고 소수점 이하 자릿수와 총 공급량을 결정한다고 가정해 보겠습니다. 우리는 보유자가 자신의 토큰을 다른 주소로 전송할 수 있기를 원하므로 전송 기능이 필요합니다. 우리는 또한 모든 주소에 얼마나 많은 토큰이 있는지 쿼리할 수 있기를 원합니다.

이것이 그 계약의 모습입니다.

  • 12행의 생성자는 매개변수를 가져와 동전을 설정합니다.
  • 구성하는 동안 17행은 모든 토큰을 계약 배포자에게 보냅니다(msg.sender 생성자).
  • 사용 balanceOf() 20행에서는 주어진 주소가 보유하고 있는 토큰 수를 반환합니다.
  •   transfer() 함수는 먼저 두 주소가 모두 유효한지 확인한 다음 함수 호출자가 전송할 토큰이 충분한지 확인합니다. 그런 다음 송신자가 소유한 금액을 줄이고 수신자의 소유 금액을 늘려 29행과 30행에서 전송을 수행합니다.

지갑 코드

이전 글에서는 ETH를 보유하고, 받고, 전송할 수 있는 스마트 계약을 작성했습니다. 토큰을 전송할 수 없습니다., 앞서 언급했듯이 이를 위해서는 Token Smart Contract의 주소를 알아야 하기 때문입니다.

다음 코드는 실물 MyWallet 이전 기사의 계약.

마이월렛.sol

새 토큰을 전송할 수 있는 기능을 추가해 보겠습니다.

MyWallet.sol 버전 ​​2
  • 8행에는 다음과 같은 새로운 상태 변수가 표시됩니다. tokenAddress, 지갑을 생성할 때 생성자에서 설정합니다.
  • 우리는 또한 MyToken 3호선 계약.
  • 24행에는 다음과 같은 새로운 함수가 표시됩니다. sendToken() 수입품을 사용하는 것 MyToken 로드 사양 tokenAddress 그리고 전화 transfer() 기능.

이제 우리 지갑은 ETH와 토큰을 보관하고, 받고, 보낼 수 있습니다!

출처: https://medium.com/better-programming/what-are-smart-contracts-used-for-2583af2c62bc?source=rss——-8—————–암호화폐

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?