리퍼럴
DeepBook referral system은 사용자가 trader를 플랫폼으로 추천해 수수료를 벌 수 있게 한다. Referrer는 특정 풀에 대한 DeepBookPoolReferral 객체를 민트할 수 있고, trader는 자신의 BalanceManager를 referral과 연결할 수 있다. 연결된 referral을 가진 trader가 거래를 실행하면 그들의 거래 수수료 일부가 referral multiplier에 따라 referrer에게 할당된 다.
referral 작동 방식
- Mint a referral: 누구나 특정 multiplier를 사용해 특정 풀에 대한
DeepBookPoolReferral을 민트할 수 있다. referral은 민트된 풀에 영구적으로 연결되며 그 풀의 거래에서만 수수료를 벌 수 있다. - Set referral: trader는
BalanceManager을 사용하여 자신의TradeCap를 풀별 referral과 연결한다. 각BalanceManager는 여러 풀의 서로 다른 referral과 동시에 연결될 수 있다. - Earn fees: 해당 풀에서 BalanceManager가 taker 주문을 실행하면 multiplier에 따라 리퍼럴 수수료가 자동으로 할당된다. Maker 주문은 리퍼럴 수수료를 생성하지 않는다.
- Claim rewards: referrer는 누적된 base, quote, DEEP 토큰 수수료를 클레임할 수 있다.
API
다음은 DeepBook이 제공하는 referral 관련 함수가다.
referral 민트
특정 multiplier를 사용해 특정 풀 에 대한 새 DeepBookPoolReferral 객체를 민트한다. multiplier는 referrer에게 할당되는 거래 수수료의 비율을 결정한다. multiplier는 0.1의 배수여야 하며(예: 0.1, 0.2, 0.3, ...), 2.0을 초과할 수 없다. 생성된 referral의 ID를 반환한다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.referral multiplier update
기존 풀 referral의 multiplier를 업데이트한다. referral 소유자만 multiplier를 업데이트할 수 있다. 새로운 multiplier는 0.1의 배수여야 하며 2.0을 초과할 수 없다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Claim referral rewards
풀 referral에 대해 누적된 리퍼럴 수수료를 클레임한다. referral 소유자만 rewards를 클레임할 수 있 다. 베이스 자산, 견적 자산, DEEP 토큰의 누적 수수료를 나타내는 세 개의 Coin 객체를 반환한다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Get referral 잔액
클레임하지 않고 풀 referral의 현재 누적 잔액을 조회한다. base, quote, DEEP 토큰 amount를 반환한다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.Get referral multiplier
풀 referral의 현재 multiplier를 가져온다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.BalanceManager referral 함수
이 함수들은 referral을 연결하거나 연결 해제하기 위해 BalanceManager에서 사용할 수 있다.
Set referral
BalanceManager를 풀별 referral과 연결한다. 작업을 승인하려면 TradeCap이 필요하다. 설정되면 이 BalanceManager가 referral의 풀에서 실행하는 모든 거래는 referral의 multiplier에 따라 리퍼럴 수수료를 생성한다. 같은 풀에 대해 이전에 설정된 referral은 교체된다.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.Unset referral
특정 풀에 대해 BalanceManager의 referral 연결을 제거한다. 작업을 승인하려면 TradeCap이 필요하다. 해제 후에는 해당 풀의 거래가 더 이상 리퍼럴 수수료를 생성하지 않는다.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.Get referral ID
특정 풀에 대해 현재 BalanceManager와 연결된 referral ID가 있으면 이를 가져온다. 해당 풀에 referral이 설정되어 있지 않으면 Option<ID>인 none를 반환한다.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.Get referral 소유자
풀 referral 객체의 소유자 주소를 가져온다.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.Get referral 풀 ID
풀 referral 객체와 연결된 풀 ID를 가져온다.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.이벤트
DeepBookReferralCreatedEvent
새 referral이 민트될 때 방출된다.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.DeepBookReferralSetEvent
BalanceManager에 referral이 설정되거나 해제될 때 방출된다.
packages/deepbook/sources/balance_manager.move. You probably need to run `pnpm prebuild` and restart the site.ReferralClaimed
referral 소유자가 누적된 수수료를 클레임할 때 방출된다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.ReferralFeeEvent
거래 실행 중 리퍼럴 수수료가 할당될 때 방출된다.
packages/deepbook/sources/pool.move. You probably need to run `pnpm prebuild` and restart the site.