今天来说说如何使用Python API进行账户相关的操作。和帐户操作相关的方法都封装在了Commit这个类中,大家可以参考这个类的源代码。
进行转账操作
要想进行转账操作,前面提到的POSTING key就不行了,这里需要获取另外一个key,也就是”Active key”,同样,点”Wallet” -> ”Permissions”,就会看到Active key,不是系统默认显示的key,点“LOGIN TO SHOW”,登陆后就可以看到一个以数字5开头的密码了。
有了这个key,就可以进行转账操作了。下面首先来调戏一下booster这个机器人,它和randowhale类似,你转钱给它,它就会Upvote你。下面用前面发过的测试贴来验证一下booster的upvote是不是够给力。
from steem import Steem
user = 'yuxi'
wif = {
"active": "把你的Active key复制到这里"
}
steem = Steem(keys=wif)
steem.transfer('booster', 1 , 'SBD', memo='https://steemit.com/test/@yuxi/python-api-test', account=user)
运行完毕后,查看一下,在我的history里面显示转账成功。
然后耐心的等了两个多小时,看到booser来upvote了我的帖子,因为只有它自己upvote,所以很清楚的看到它这一下upvote还挺给力,我付了1 SBD,这下upvote却带来了$1.62。
下面再来试试在Steem不同账号之间的转账,比如,把1 SBD转到自己的Saving账户中去:
steem.transfer_to_savings(1, 'SBD', 'Python API test', account=user)
自动Redeem收入
我不知道大家怎么看待Steemit的这个功能,每次有收入到账了,还需要自己点下这个按钮才能真正入账。我觉得应该在用户的profile中添加一个选项,类似“Redeem automatically”,让用户自己来设置是想手工claim还是想让系统自动claim。
Anyway,下面来看看如何使用Python API来自动claim那些到账的rewards。
from steem import Steem
from steem.account import Account
user = 'yuxi'
account = Account(user)
wif = {
"posting": "将你的POSTING key复制到这里"
}
try:
steem = Steem(keys=wif)
sbd = account.balances["rewards"]["SBD"]
st = account.balances["rewards"]["STEEM"]
vests = account.balances["rewards"]["VESTS"]
if sbd >0 or st >0 or vests > 0:
print('claiming rewards ... ')
steem.claim_reward_balance(account=user)
else:
print('nothing to claim')
except:
print('oops, something not right.')
接下来就可以添加一个Cron job,比如:每天的凌晨1点让系统自动执行你的这个程序,从而省去了手工claim rewards的麻烦。
通过API进行交易的初步设想
很多人都用过 blocktrades 的服务把SBD交易成比特币,在blocktrades的基本流程中,首先要根据你的交易信息,比如SBD -> BTC以及你的比特币钱包地址来生成一个memo,然后再把交易金额转到 @blocktrades 并把memo字段填上前面获取的memo值。不知道有哪位大神用过 blocktrades.us的API,如何通过调用API来生成 memo?(How to get memo field value via blocktrades API? ) @oflyhigh @myfirst @blocktrades
简单的伪代码如下,里面没有考虑影响是否交易的其他因素,比如:SBD/BTC的汇率是否合适等
THRESHOLD = 100
IF 帐户余额 > THRESHOLD
MEMO = CALL_BLOCKTRADE_API(MY_BTC_ADDRESS, FROM, TO, AMOUNT)
TRANSFER('blocktrades', 帐户余额, 'SBD', MEMO, account)
END
https://steemit.com 首发。非常感谢阅读,欢迎FOLLOW, Resteem和Upvote @yuxi 激励我创作更多更好的内容。