Hedera Smart Contract

kyuu·2023년 6월 14일

Smart Contract Rent

헤데라 스마트 컨트랙트는 유지 비용을 지불해야, 온체인에 계속 잔재할 수 있음.
rent는 AutoRenewal(월세) + Storage 비용으로 구성됨.

AutoRenewal

처음 배포된 스마트 컨트랙트는, ACTIVE 상태로 존재하며, autorenewPeriod마다 비용 지불이 이루어짐.

만약, 요금 지불이 되지 않으면, EXPIRED 상태로 변화하며, 이 상태에서는 스마트 컨트랙트의 기능이 정지됨.

EXPIRED 상태에서 grace period 기간 내에, Update(요금 지불)이 이루어지지 않으면, 배포된 계약은 온체인에서 자동으로 삭제됨.

autorenewPeriod는 min 2,592,000 초(~30days), max 8,000,001 초(~92days)의 값을 가짐.

Storage

총 네트워크의 key-value pair가 100M 이상이 되면 부과되며 100개 이상의 key-value pair를 가진 컨트랙트에 한해 0.02$ per key-value pair의 요금이 부과됨.

네트워크 혼잡도가 증가하게 되면 이 단가는 올라갈 수 있음.
Storage 요금 지불 시, AutoRenewal 단가도 같이 지불되는거 같음.(지불 기한을 정해 놓고, 아직 지나지 않더라도 자동으로 지불되는듯)

요금 지불 방법

요금 지불은, 아래 두가지에 의해 이루어짐.

  • Self funded : 스마트 컨트랙트 내부 balance에서 자동으로 지불됨.

    만약 autoRenewAccount가 정해지지 않은 경우나 정해진 AccountId에 잔액이 없을 경우, 컨트랙트 내부 balance에서 요금을 지불함.

  • External funded : 설정한 외부 계정에서 비용이 지불됨.

    Hedera SDK의 .setAutoRenewAccountId(id)에 의해 설정됨. .setAutoRenewPeriod(period)에 의해 지불 기간도 정할 수 있음.

모든 헤데라 컨트랙트가 요금을 지불하기 위해서는 컨트랙트 자체가 지불할 HBAR를 수신할 수 있다던가, 지불을 대신할 계정을 지정해 놔야 함.

profile
!..!

0개의 댓글