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

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

드뎌 자동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도 만들 수 있습니다. 능력있는 스티미언의 새로운 결과를 기대하고 있겠습니다.

Sort:  

[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)을 하였습니다.

와우! 대단하십니다

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

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

와.. 멋지시네요

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

Thank You for sharing Your financial insights...

Coin Marketplace

STEEM 0.05
TRX 0.32
JST 0.079
BTC 66571.33
ETH 1821.97
USDT 1.00
SBD 0.42