# 진입점

프로토콜은 다음과 같은 진입점을 제공합니다:

## AFSUI 게터들

**public fun afsui\_to\_sui\_exchange\_rate()**: 현재 에포크에 대한 AFSUI<->SUI 환율을 반환합니다.

**public fun afsui\_to\_sui()**: 주어진 AFSUI 양에 해당하는 SUI 양을 반환합니다.

**public fun sui\_to\_afsui\_exchange\_rate()**: 현재 에포크에 대한 SUI<->AFSUI 환율을 반환합니다.

**public fun sui\_to\_afsui():** 주어진 SUI 양에 해당하는 AFSUI 양을 반환합니다.

**public fun total\_sui\_amount()**: 프로토콜에 잠긴 총 SUI 양(모든 원금 + 보상)을 반환합니다.

## 총량 게터들

**public fun total\_rewards\_amount()**: 수집된 총 보상 양을 반환합니다.&#x20;

**public fun epoch\_was\_changed()**: 에포크 변경 처리를 시작합니다. 연속해서 여러 번 호출될 수 있습니다.

## 스테이킹

**public fun request\_stake()**: 지정된 검증자에게 SUI 코인을 위임하고 즉시 동등한 양의 AFSUI를 반환합니다. 검증자가 활성 상태여야 합니다.&#x20;

**entry fun request\_stake\_and\_keep()**: 거래 발신자 계정으로 직접 AFSUI를 전송하는 유지 버전입니다.

**public fun request\_stake\_vec()**: SUI 코인의 벡터를 가져와서 합치고, 지정된 검증자에게 스테이크하고 즉시 동등한 양의 AFSUI를 반환합니다. 검증자가 활성 상태여야 합니다.

**entry fun request\_stake\_vec\_and\_keep()**: 거래 발신자 계정으로 직접 AFSUI를 전송하는 유지 버전입니다

**public fun request\_stake\_staked\_sui()**: 제공된 StakedSui 객체를 재스테이크하고, 해당하는 양의 AFSUI를 민트하고 반환합니다.

**public fun request\_stake\_staked\_sui\_and\_keep()**: 거래 발신자 계정으로 직접 AFSUI를 전송하는 유지 버전입니다.

**public fun request\_stake\_staked\_sui\_vec()**: StakedSui 객체의 벡터를 가져와서 재스테이크하고, 해당하는 양의 AFSUI를 민트하고 반환합니다.

**public fun request\_stake\_staked\_sui\_vec\_and\_keep()**: 거래 발신자 계정으로 직접 AFSUI를 전송하는 유지 버전입니다.

## 일반 언스테이킹

**public fun request\_unstake()**: AFSUI를 입력으로 받아, 다음 에포크 시작 시 해당하는 양의 SUI를 민트할 요청을 등록합니다.

**public fun request\_unstake\_vec()**: AFSUI 코인의 벡터를 입력으로 받아, 합치고, 다음 에포크 시작 시 해당하는 양의 SUI를 민트할 요청을 등록합니다.

## 원자 언스테이킹

**public fun request\_unstake\_atomic()**: AFSUI 코인을 입력으로 받고 즉시 해당하는 양의 SUI를 반환합니다&#x20;

**entry fun request\_unstake\_atomic\_and\_keep()**: 거래 발신자 계정으로 직접 SUI를 전송하는 유지 버전입니다.

**public fun request\_unstake\_vec\_atomic()**: AFSUI 코인의 벡터를 입력으로 받아, 하나로 합치고 즉시 해당하는 양의 SUI를 반환합니다

**public fun request\_unstake\_vec\_atomic\_and\_keep()**: 거래 발신자 계정으로 직접 SUI를 전송하는 유지 버전입니다.

## 검증자 수수료

**public fun rotate\_operation\_cap()**: 새로운 작업 능력 객체를 생성하고 등록합니다.

**public fun update\_validator\_fee()**: 해당 검증자 수수료를 변경합니다.
