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

드뎌 자동claim하는 방법을 발견하였습니다. node.js 소스와 차이가 너무 많이 나서 그 간극을 메꾸는데 시간이 많이 걸렸습니다.

어렵게 얻은 정보지만 아낌없이 나눔합니다. 저 같이 파이썬만 알고 node.js를 모르는 분들은 참고하시기 바랍니다.

pancakeswap 중 syrup에 있는 Alice pool에서 채굴 중인 cake을 자동으로 claim하는 코드입니다. 다른 pool의 경우에도 주소만 변경하면 같은 방식으로 claim이 가능합니다.

지금 이 글을 쓰면서도.. 가슴이 벌렁 벌렁하는군요. 정말 어렵게 찾아낸 코드이니, 잘 사용하시기 바랍니다.

우선 alice 채굴 풀의 주소입니다.
'syrup-alice' : '0x4C32048628D0d32d4D6c52662FB4A92747782B56'

이 주소에 접속한 후 contract 부분을 보면 아래와 같은 정보를 확인할 수 있습니다.

  • 현재까지 채굴된 cake 수 : pendingReward(my_addr)
  • 현재까지 채굴된 cake claim : withdraw(0)

pendingReward() 함수는 직관적이라 설명을 생략하고요. 채굴된 cake을 claim하는 함수가 withdraw()입니다. 그런데 deposit한 cake도 뺄 때 사용하는 함수입니다. 따라서 deposit한 cake은 빼지않고, reward만 claim하는 방법은 인자로 0을 넣으면 됩니다.

pancakeswap에서 claim을 해보면 지갑이 뜨고, Confirm을 눌러야 claim이 됩니다. 이런 일을 코드로 전달해주어야 합니다. 그런데 이 부분이 아주 난감했습니다만, 어찌어찌하여 방법을 알아내었습니다.

코드는 아래와 같습니다.

sc_addr = {
    'bnb-busd' : '0x1B96B92314C44b159149f7E0303511fB2Fc4774f',
    'cake-bnb' : '0xA527a61703D82139F8a06Bc30097cC9CAA2df5A6',
    'ust-nflx' : '0xF609ade3846981825776068a8eD7746470029D1f',
    'syrup-alice' : '0x4C32048628D0d32d4D6c52662FB4A92747782B56',
}
sc_abis = {
    'syrup' : '[]'  # abi 코드가 길어서 삭제함.
}

my_addr  = 'my eth address'
my_priv = 'my private key'

w3 = Web3(Web3.HTTPProvider('https://bsc-dataseed.binance.org/'))

print(w3.isConnected())

# alice harvest
if 1 : 
    addr = sc_addr['syrup-alice']
    abi = sc_abis['syrup']
    syrup = w3.eth.contract(address=addr, abi=abi)
    pending = syrup.functions.pendingReward(my_addr).call()
    print(pending)
    tx = syrup.functions.withdraw(0).buildTransaction({   # 채굴한 코인 claim시에는 0
                'gas': 150000,
                'gasPrice': w3.toWei('10', 'gwei'),
                'nonce':  w3.eth.getTransactionCount(my_addr),
            })
    signed_tx = w3.eth.account.signTransaction(tx, private_key=my_priv)
    ret = w3.eth.sendRawTransaction(signed_tx.rawTransaction)

이 코드의 결과를 bscscan에서 확인해보겠습니다.

원하는 결과가 나왔습니다.
앞으로는 주기적으로 자동으로 claim하고, 원하는 곳에 deposit을 할 수 있을 것 같습니다.

이제 거의 다 온 것 같습니다. 주말에 swap하는 것까지 해서.. 마무리한 후 전체 코드를 공개하도록 하겠습니다.

제가 공개하는 코드를 바탕으로 autofarm도 만들 수 있고, yieldwatch도 만들 수 있습니다. 능력있는 스티미언의 새로운 결과를 기대하고 있겠습니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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

WWW.QOO10.COM

@tradingideas transfered 21 KRWP to @krwp.burn. voting percent : 71.56%, voting power : 79.71%, steem power : 1730755.52, STU KRW : 1200.
@tradingideas staking status : 10500 KRWP
@tradingideas limit for KRWP voting service : 21 KRWP (rate : 0.002)
What you sent : 21 KRWP [52139961 - 7e1f55f73d107c9b100850f7275a54a43f2aea68]

멋지심다 트아님 최고 !

wonsama님이 tradingideas님의 이 포스팅에 따봉(10 SCT)을 하였습니다.

와우! 대단하십니다

우아앙..대단한건데...대단해보이는데..이해를 못해요 ㅠ,ㅠ 그래도 성공하신거 축하드려요!!
혹시, 리스팀해도 되나요?

이걸 공유해 주시다니 정말 고마워할 분들이 많겠네요.

와.. 멋지시네요

자동 농장이 곧 완성되겟네요 ㅎㅎ

https://open.kakao.com/o/sEW76y3c
연락부탁드립니다.

Thank You for sharing Your financial insights...