연결 가이드 (front)

먼저 모든 과정을 실행하기 전에 투자봇을 세팅해야합니다.

setStrategy함수를 실행해야 합니다. 이 함수는 처음에 컨트랙트를 배포한 특정 주소만 호출할 수 있습니다.

이 과정은, 유저페이지에서 진행하지 않고 직접 트랜잭션을 날리거나, 관리자 페이지에서 실행합니다.

투자액 입금

투자액은 receiveAsset 함수를 투자액(msg.value)과 함께 호출하면 됩니다. lockupfalse로 설정해주세요.

항목
내용

함수 이름

receiveAsset

입력

lockup: bool (자산이 잠겨있는지 여부)

sendAmount: uint256 (함수 호출과 함께 보내질 이더의 양)

strategyId: uint256 (투자 전략의 ID)

출력

bool (함수가 성공적으로 실행되면 true 반환)

설명

1. 전송된 금액과 sendAmount가 일치하는지 확인합니다.

2. 전략의 초기 및 현재 잔액을 업데이트합니다.

3. 개별 투자 기록을 업데이트합니다.

4. sendToBotAddress_ 함수를 사용하여 전략 주소로 ETH를 전송합니다.

5. 주어진 strategyId에 대한 총 투자된 금액을 업데이트합니다.

6. NFT 또는 디지털 자산에 메타데이터를 할당합니다.

7. investmentEth 함수를 호출하여 투자 과정의 일부를 처리합니다.

그러면 NFT가 생성되어, 사용자의 지갑으로 전송될 것입니다.

스테이킹

먼저 스테이킹을 위해서 다음과 같은 작업을 먼저 해야합니다.

  1. qveNFT 컨트랙트의 approve 함수를 통해서 qveCore 컨트랙트가 해당 NFT에 접근할 수 있도록 해주어야 합니다.

  2. 승인을 해주게 되면, 이후에 그 NFT는 전송 및 소각이 가능한 상태가 되는데, 여기서 우리는 2가지 행동을 취할 수 있습니다.

    1. nft를 컨트랙트에 반납하고, 전략을 회수 (말이 회수지, 전략에서 내가 투자한 금액을 매도하는 과정입니다)

    2. nft를 소각하고 투자금만큼 qve토큰을 받은 후에, 스테이킹에 넣는 것

      1. 스테이킹에 넣을 수도 있지만 스왑을 할수도 있습니다.

  3. 스테이킹은 2-2번에 해당하는 액션입니다.

  4. 이어서 서술해보겠습니다.

  5. nft 소각은 다음과 같이 합니다. burnInvestmentGuarantee 함수를 통해서 소각해주시면 됩니다. 그러면 QVE 토큰이 자동으로 민팅되어 msg.sender 지갑으로 넣어주게 됩니다.

    1. msg.sender는 그러니까 투자자 본인의 주소가 되어야 합니다.

  6. 이후는 스테이킹입니다.

  7. qveCore 컨트랙트의 doQVEStake 함수를 실행해주시면 스테이킹이 완료되게 됩니다.

  8. Unstake함수는 qveStaking 컨트랙트에 구현되어있으나 qveCore의 함수에서 새로 만들어놓겠습니다.

    ( 이후 컨트랙트 전체 재배포가 있을 예정입니다 )

전략 환매

다음은 전략 환매입니다.

위에서 설명드린 2-1번에 해당하는 액션입니다.

먼저 nft를 컨트랙트에 반납해야합니다.

환매를 위해서도 다음의 과정이 필요합니다.

  1. 먼저 스테이킹과 마찬가지로 qveNFT 컨트랙트의 approve 함수를 통해서 qveCore 컨트랙트가 해당 NFT에 접근할 수 있도록 해주어야 합니다.

  2. 다음으로는 NFT를 컨트랙트로 보내겠습니다. 보내고 난 뒤에는 회수가 불가능합니다. sendIntoContract 함수를 사용해주세요.

  3. 이제 돈을 돌려받을 차례입니다.

  4. 돈을 돌려받으려면 사용자가 얼마를 전송받아야하는지 알아야 합니다.

  5. 그래서 그 값을 알고나서 서버의 api를 호출해서 해당 금액을 입금받는 형태입니다.

  6. getAmountHavetobePayed_ 함수를 사용하면 해당 금액에 대해서

    1. 누가 투자했는지

    2. 투자한 원금

    3. 전략에 대한 이익 ( 일정 주기로 이건 서버가 업데이트해주고, 이후의 계산을 컨트랙트에서 실행합니다 )

    4. 전략 번호

    를 리턴해주게 됩니다. 그러면 서버에 요청할 금액은 6-2 + 6-3 번에 해당하는 금액이 될 것입니다.

스왑

지금 스왑의 비율은 임의적으로 설정된 상태입니다.

swapETHtoQVE_ 와 swapQVEtoETH_를 사용하시면 됩니다.

Last updated