solidity

22.08.29 락업이란?

슈팅스타제제 2022. 8. 29. 21:46

락업 기능이 추가된 ERC20 컨트랙트를 개발 예정이다. 

내가 어렴풋이 알고 있었던 락업 개념과 락업 과정의 자세한 프로세스를 정리해보았다.

 

락업(Lockup)이란? 

토큰을 발행한 뒤 시장에 유통되지 않도록 

토큰의 owner account에 대해 토큰에 대한 transfer를 막는 것이다. 

 

컨트랙트를 어떻게 짜느냐에 따라

sendTransaction 을 날리지 못하게 막거나

트랜잭션을 날려도 취소되게끔 할 수 있다. 

 

 

락업 기능의 특징!

어떻게 설계하냐에 따라 다를 것 같긴 한데 일단 핵심 특징은 세 가지이다. 

 

1. 어떤 토큰을 락업 걸 것인지 IERC20

2. 누구에게 락업을 걸 것인지 account (주소는 보통 함수 호출 파라미터로 들어가기 때문에 생략 가능)

3. 얼마만큼의 시간동안 락업을 걸 것인지 timestamp 

 

 

In Solidity

표준인 ERC20 기준으로 락업 기능에 대한 function, event 만 적어보자면 

 

event 

event Lock(address indexed _of, uint256 indexed _reason, uint256 _amount, uint256 _validity)
event Unlock(address indexed _of, uint256 indexed _reason, uint256 _amount)

 

function 

function lock(bytes32 _reason, uint256 _amount, uint256 _time) public return (bool)

락업 기간 설정

function extendLock(bytes32 _reason, uint256 _time) public returns (bool)

락업 물량 설정

function increaseLockAmount(bytes32 _reason, uint256 _amount) public returns (bool)

언락 

function unlock(address _of) public returns (uint256 unlockableTokens)

 

참고문서 링크 

https://github.com/ethereum/EIPs/issues/1132

 

Extending ERC20 with token locking capability · Issue #1132 · ethereum/EIPs

EIP: 1132 Title: Extending ERC20 with token locking capability Author: nitika-goel <nitika@govblocks.io> Type: Standards Track Category: ERC Status: Draft Created: 2018-06-03 Simple Summary A...

github.com

 

'solidity' 카테고리의 다른 글

22.09.05 npx hardhat test  (0) 2022.09.05
21.07.28 diamond problem  (0) 2021.07.28
21.07.27 ERC-20 Token Contract  (0) 2021.07.28
21.07.23 Token Role  (0) 2021.07.26
21.07.22 Mint & Burn Token  (2) 2021.07.24