QVE staking (with Server)

설명

거래소 봇지갑에서 계속 봇이 돌아가고 있다고 하겠습니다. 봇에서 예를 들어서 7일 단위로 수익을 정산한다고 해보겠습니다.

그림을 먼저 보겠습니다. (그림이 조악해서 죄송합니다)

그림이 조악해서 다시 죄송합니다. 그림을 예시로 들겠습니다.

100 이더를 사용자가 예치했습니다. 그 다음날 수익이 10%발생했습니다. 그래서 10이더리움의 하루 수익이 발생했습니다. 여기서의 정산 주기가 1일이라고 하고, 플랫폼 수익 비중을 50%라고 가정해보겠습니다(말도 안되긴하지만).

그럼 그날 자정 수익을 계산한다음, 그날 하루수익의 50%에 해당하는 5이더리움을 Protocol fee contract에 전송합니다. (손실이 나면 전송하지 않습니다, 물론 이것에 대한 로직이 추후에 필요합니다)

그러면 보상 주기가 7일이라고 가정하면 7일동안 쌓인 금액이 7일이 지난 어느시점에 큐브 스테이킹에 예치한 큐브의 비중만큼 분배되게 됩니다.

1. Summarize

QVEstaking 컨트랙트는 QVE 토큰의 스테이킹 기능을 제공합니다. 사용자는 이 컨트랙트를 통해 QVE 토큰을 스테이킹하거나 언스테이킹할 수 있습니다. 또한, 스테이킹된 토큰의 총량 및 개인별 스테이킹 정보를 조회할 수 있습니다.

2. Document Detail

2-1. 함수들

함수명
입력
출력
설명
접근성

getTotalStaked

-

uint256

총 스테이킹된 토큰의 양을 반환합니다.

external

getTotalStakeNum

-

uint256

총 스테이킹 횟수를 반환합니다.

external

getPersonalStakeInfo

address sender

StakeInfo

주어진 주소의 스테이킹 정보를 반환합니다.

external

stake

address staker, uint256 stakeAmount

bool

주어진 양의 QVE 토큰을 스테이킹합니다.

external

unStake

address staker, uint256 unstakeAmount

bool

주어진 양의 QVE 토큰을 언스테이킹합니다.

external

receiveSettledEth

uint256 receivedAmount

bool

지정된 양의 이더를 받아 스테이킹에 사용합니다.

external

2-2. 변수, 이벤트, 매핑 등

이름
구분
설명
파라미터

StakeEvent

이벤트

QVE 토큰이 스테이킹될 때 발생하는 이벤트입니다.

address, uint256

UnStakeEvent

이벤트

QVE 토큰이 언스테이킹될 때 발생하는 이벤트입니다.

address, uint256

qveToken

변수

QVE 토큰의 주소를 저장하는 변수입니다.

-

totalStaked

변수

총 스테이킹된 토큰의 양을 저장하는 변수입니다.

-

StakeDetail

구조체

스테이킹의 세부 정보를 저장하는 구조체입니다.

uint256, uint256, uint256

StakeInfo

구조체

주소별 스테이킹 정보를 저장하는 구조체입니다.

uint256, uint256[]

stakeInfo

매핑

주소별로 스테이킹 정보를 저장하는 매핑입니다.

address => StakeInfo

stakeCount

매핑

주소별로 스테이킹 횟수를 저장하는 매핑입니다.

address => uint256

SettlementLog

매핑

블록 타임스탬프별로 정산된 이더의 양을 저장하는 매핑입니다.

uint256 => uint256

3. 기타 주의사항

  • 컨트랙트에는 여러 경고 문자열 상수들이 있으며, 이들은 특정 조건을 만족하지 않을 때 발생하는 오류 메시지로 사용됩니다.

  • 스테이킹 및 언스테이킹 시, 이벤트가 발생하여 해당 정보를 로깅합니다.

  • 스테이킹된 토큰의 총량 및 개인별 스테이킹 정보는 조회 가능합니다.

Last updated