글
[암호화폐-Defi] 파이썬을 이용하여 BSC(Binance Smart Contract) Smart Contract Claim하기(3)
node.js를 이용한 방법은 많이 나와있지만 파이썬을 이용한 방법을 찾지 못하여 어렵게 방법을 찾았습니다.
어디에도 없는 파이썬을 이용한 BSC Smart Contract에서 claim하는 방법에 대하여 정리합니다.
pancakeswap 중 syrup에 있는 Alice pool에서 채굴 중인 cake을 자동으로 claim하는 코드입니다. 다른 pool의 경우에도 주소만 변경하면 같은 방식으로 claim이 가능합니다.
우선 alice 채굴 풀의 주소입니다.
'syrup-alice' : '0x4C32048628D0d32d4D6c52662FB4A92747782B56'
이 주소에 접속한 후 contract 부분을 보면 아래와 같은 정보를 확인할 수 있습니다.
- 현재까지 채굴된 cake 수 : pendingReward(my_addr)
- 현재까지 채굴된 cake claim : withdraw(0)
alice 채굴풀의 Smart Contract에서 채굴한 수량을 검색한 후 일정 수량이상 쌓여있다면 withdraw()를 하면 됩니다.
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을 할 수 있을 것 같습니다.
그동안 소개한 Smart Contract를 다루는 방법을 모아서 pancakeswap에서 채굴 중인 cake을 claim한 후 syrup pool에 deposit하는 작업을 마무리한 후 코드 공개하도록 하겠습니다.
'암호화폐' 카테고리의 다른 글
[암호화폐-Defi] 파이썬을 이용하여 BSC(Binance Smart Contract) Smart Contract Claim하고 Deposit하기(4) (4) | 2021.03.21 |
---|---|
[암호화폐-Defi] 안정적으로 연20-25% 수익이 나는 DeFi (0) | 2021.03.21 |
[암호화폐-Defi] BSC(Binance Smart Contract) 검색하기(2) (4) | 2021.03.03 |
[암호화폐-Defi] BSC(Binance Smart Contract) 검색하기(1) (0) | 2021.03.03 |
[암호화폐-Defi] Mirror (2) | 2021.02.10 |