좋은 포스팅을 보고 열심히 따라 하려는데.. 생각처럼 쉽지는 않네요.
님의 32번 포스팅에 부계정으로 특정 토큰을 스테이킹을 자동적으로 실행하도록 하는 내용에 있어서, 님의 코드를 실행해 봤는데.. 이게 맞는 건지 잘 몰라서 여쭙니다.
저의 가족 계정인 @julialee66 에 들어가서 LIFESTYLE 토큰이 0보다 클 경우 @roknavy에 스테이킹을 하려한다면...
def get_wallet(username, tokenname) :
wallet = Wallet(username)
data = wallet.get_token(tokenname)
return data
def run():
while True:
username = "julialee66" ------ 이곳에 아내 계정을 넣고
tokenname = "LIFESTYLE" --------이곳에 원하는 토큰명을 넣고..
data = get_wallet(username, tokenname)
print(data['balance'])
time.sleep(120)
if float(data['balance']) > 0 :
stake_token(username, tokenname)
def stake_token(username, tokenname, balance) :
nodes = NodeList()
nodes.update_nodes()
stm = Steem(nodes.get_nodes())
pwd = "액티브 키"
---- -----여기 한글로 씌여 있는 곳에는 실제 julialee66의 액티브 키를 넣고(코드에 포함시켜서)
try:
stm.unlock(pwd)
except:
stm = Steem(node=nodes.get_nodes(), keys=[pwd])
json_data = []
contract_payload = {"symbol":tokenname.upper(),"quantity":str(balance), "to":username}
json_data.append({"contractName":"tokens","contractAction":"stake",
"contractPayload":contract_payload})
tx = stm.custom_json("ssc-mainnet1", json_data, required_auths=[username])
print(tx)
그 다음에는 roknavy에 스테이킹을 하려면, 어디에 roknavy 계정명을 넣어야 하는지... 이제 강의 듣고 님의 포스팅을 따라가기 시작한지 몇일 안되어서.. 초보작가 하는게 쉽지는 않네요.. ㅎㅎ 가능하시면 부탁드립니다.
아..
@julialee66 계정에 있는 토큰을 @roknavy 계정에 스테이킹 하신다는거죠??
저 글을 쓰는 당시에는 A계정에 있는 토큰을 B계정으로 전송한 후 B계정에서 토큰을 스테이킹 하는 방법을 사용했었는데요.
다른 사람에게 토큰을 바로 스테이킹이 가능하더군요.
contract_payload = {"symbol":tokenname.upper(),"quantity":str(balance), "to":username} json_data.append({"contractName":"tokens","contractAction":"stake", "contractPayload":contract_payload}) tx = stm.custom_json("ssc-mainnet1", json_data, required_auths=[username])
이 코드에서 첫 줄에
"to":username
이라고 되어 있는 이 부분에 스테이킹이 될 계정명이 들어가면 되겠네요.예 감사합니다. 늦으막이 공부하려니 재미있기도 하고 어렵기도 하네요. 알려주신대로 해볼께요. 감사합니다. 즐거운 하루되세요.
Posted using Partiko Android
스테이킹은 아직이지만 님의 클레임은 계정명을 입력하라해서 입력하고 키를 입력하라해서 포스팅키를 입력했더니 클레임이 되었습니다. 여기 까지 따라한것도 신기하네요.
다름이 아니라 이렇게 매번 입력이 아니고 계정명도 자동 키도 자동입력 하려면 우찌해야.. ㅎㅎ
님 코드 중에
try
stm.unlock(pwd)
가 있던데 이것이 키값 입력과 관계된 것인가요? 어찌 쓰는 건지.. 번거롭게 자꾸 물어봐서 죄송합니다
Posted using Partiko Android
beem api에서 스팀엔진 지갑 wallet을 이용하는 코드가 그렇게 만들어져 있더라구요.
https://www.palnet.io/scot/@holger80/how-to-claim-all-pending-token-rewards-at-once-improved-claim-command
nodes = NodeList() nodes.update_nodes() stm = Steem(nodes.get_nodes()) try: stm.unlock(pwd) except: stm = Steem(node=nodes.get_nodes(), keys=[pwd])
beem 객체인 stm 을 만들고,
try 문에서 pwd로 stm을 언락할때 예외가 발생하면,
예외처리 except문에서 Steem(node=nodes.get_nodes(), keys=[pwd]) 이런식으로 beem 객체를 생성하게끔 돌아가고 있네요.