[암호화폐] 파이썬을 이용하여 BSC에서 DeFi 자동 Claim 후 재투자

in SCT.암호화폐.Crypto3 years ago (edited)

DeFi 자동 클레임 후 재투자하는 부분까지 마무리하였습니다. 이제는 파이썬 프로그램에 규칙을 등록해놓으면 알아서 harvest하고 deposit할 수 있습니다.

소스는 아래 guthub에 있습니다.

github.com/multizone-quant/DeFi/blob/main/DeFi_harvest_deposit

사용법은 간단합니다.

아래 부분에 원하는 값을 입력하시면 됩니다. my_addr는 본인이 사용하는 eth주소, my_priv는 해당 주소의 private key입니다. claim, deposit을 하기 위해서는 private key가 필요합니다.

POOL_NAME는 수정할 필요가 없고, MIN_HARVEST_NUM 값은 claim할 최소 갯수입니다. 이렇게 claim한 cake은 DEPOSIT_POOL에 지정된 pool에 deposit합니다.

현재 test한 syrup풀은 alice이며 본인이 사용하는 syrup pool의 smart contract를 찾아서 추가하면 됩니다.

# 수정할 부분
my_addr = 'my eth address'
my_priv = "my_addr's priavate key"

POOL_NAME = 'pancake-masterchef'
MIN_HARVEST_NUM = 2.3  # harvest할 최소 수량
DEPOSIT_POOL = 'syrup-alice'  # harvest한 cake을 저장할 pool

# 수정할 부분 끝

새로운 syrup 풀을 추가하는 방법은 bscscan.com에서 pool의 주소를 확인한 후 sc_addr에 추가하면 됩니다.

sc_addr = {
    'bnb-busd' : '0x1B96B92314C44b159149f7E0303511fB2Fc4774f',
    'cake-bnb' : '0xA527a61703D82139F8a06Bc30097cC9CAA2df5A6',
    'ust-nflx' : '0xF609ade3846981825776068a8eD7746470029D1f',
    'syrup-alice' : '0x4C32048628D0d32d4D6c52662FB4A92747782B56',
}

contract 별로 abi가 별도로 존재하는데, 이것을 자동으로 가져오는 함수도 발견하였습니다. 관련 함수는 fetch_abi() 입니다. 한번 사용한 contract는 컴퓨터 내부에 저장하고 있으므로, 이후에는 빠른 처리가 가능합니다.

pancakeswap masterchef에 있는 pool 중 BRY-BNB에 있는 BRY smart contract가 조금 이상합니다. name() 항목이 abi가 존재하지 않아 오류가 발생하더군요. 그래서 cake-bnb abi를 이용하여 모든 pool에 대하여 사용하는 방식으로 오류를 회피하였습니다.

코드는 간단하므로, 자세한 설명은 생략합니다.

실행한 결과입니다. 2.3개이상 채굴한 두 pool이 claim되었습니다.

그 결과를 bscscan에서 확인해보겠습니다. 풀 2개에서 cake이 claim되었고, alice pool에 deposit되었습니다. 그동안 alice pool에서 채굴 중이던 alice도 claim되었군요. 이건 자동으로 이루어지는 것입니다.

막상 자동으로 harvest하는 프로그램을 완성하고 나니 얼마나 자주 harvest를 하는 것이 좋은가에 대하여 고민하게 되었습니다. harvest하는 토큰의 가격 그리고 deposit할 pool의 채굴 수익률과 채굴 수수료 변수를 가지고 표를 만들어 보았습니다.

이 표를 보면 2개 풀에서 누적 30개를 모았을 때 harvest한 후 새로운 pool에 넣었을 때 20시간은 지나야 수수료가 빠진다는 의미입니다. bnb 가격이 올라가면서 채굴 수수료가 비싸졌기 때문에 소량을 자주 claim하고 deposit하는 것은 효율적이지 않습니다. 따라서 적당한 수량이 모일 때 까기 기다렸다가 harvest를 하는 것이 효과적입니다.

다음에는 cake 가격이 특정 가격 이상이면 시럽에 deposit하지않고 busd로 swap하는 코드까지 소개하도록 하겠습니다.

Sort:  

[US$49.00](▼14%)[Nespresso]스타벅스 네스프레소 호환 캡슐 7종 / 120 캡슐 골라담기 / 20개씩 총 6종류 교차 선택 가능 / 중복 선택 가능 / 재고 확보 / 무료배송 / 개당 약 486원 최저가★

WWW.QOO10.COM

@tradingideas transfered 21 KRWP to @krwp.burn. voting percent : 61.95%, voting power : 80.04%, steem power : 1732176.16, STU KRW : 1200.
@tradingideas staking status : 10500 KRWP
@tradingideas limit for KRWP voting service : 31.5 KRWP (rate : 0.003)
What you sent : 21 KRWP [52196163 - fba8d772a753b4612213542589e81b0bddd60e04]

정말 훌륭하십니다.