LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 用python从零开始写一个区块链钱包(2)

用python从零开始写一个区块链钱包(2)

2020-08-19 BU联盟 来源:区块链网络


文:卖鱼的

环境搭建完毕,我们正式开始写代码。

首先我们新建一个PY文件,就随便命名为hello1.py吧。

我们首先来学习学习streamlit这个库。

我们首先输入两行:

import streamlit as st st.title("一个钱包")

第一行是加载库,第二行就是显示一个标题的意思。

我们来尝试运行看看,我们打开一个命令行窗口,然后进去文件夹所在目录后输入:

streamlit run hello1.py

一般会自动打开一个网页,或者我们去浏览器手动输入:http://localhost:8501/

一个只有一个标题的web app就做好了,是不是很简单呢:)

接下来我们构想是写一个钱包的基础转账功能,需要的栏目大概有这些:


1.账户
2.密码
3.转账给谁?
4.转账币种
5.金额
6.memo(备忘)

好,我们开始写

player=st.text_input("请输入账号") password=st.text_input("请输入密码",type="password") toplayer = st.text_input('转到to') Token=st.text_input('转账币种Token') Token=Token.upper() number=st.text_input('数量Number') memo = st.text_input('备忘memo') button_trans=st.button('提交')

写好保存刷新一下就有了。

写了一堆代码,解释一下:


st.text_input("请输入账号"),这个是显示一个文本输入框的意思


st.text_input("请输入密码",type="password"),加上type="password",意思就是星号输入,输入密码的模式

Token=st.text_input('转账币种Token')
Token=Token.upper(),这里.upper()的意思就是输入的字母全部转为大写,统一格式以免出错。

st.button('提交'),这意思是新建一个按钮。

更多的用法,可以参考说明文档:http://blog.hubwiz.com/2019/11/07/streamlit-manual/

我们测试一下,发现无论输入啥都没反应,那当然,我们啥都没写嘛,下面我们来写一个函数。

我们先看看steem是怎么转账的,以beem库为例:

from beem.steem import Steem from beem.account import Account #节点地址,这是我的节点 nodes = 'https://cn.steems.top' #加载密码和节点 s = Steem(keys=[password],node=nodes) #加载账户 account = Account(player,steem_instance=s) # 转账 tx=account.transfer(toplayer,money_number, token,memo)

知道怎么转账了,我们来写一个函数方便调用:

def trans(nodes,password,player,toplayer,money_number,token,memo): #加载密码和节点 s = Steem(keys=[password],node=nodes) #加载账户 account = Account(player,steem_instance=s) # 转账 tx=account.transfer(toplayer,money_number, token,memo) return tx

这样一个函数就写好了,我们来试试调用看看。


我们就设定为当按下“提交”按钮,就调用这个函数进行转账。首先你要注册一个steem账号,然后要有一点儿钱进行测试转账。steem注册在这里可以免费注册:https://signup.steem.buzz/

钱的话,可以去交易所买点,火币的转出的手续费是0.001STEEM,非常便宜,可以买几个玩玩。


也可以喊我转一点儿给你测试玩玩。

言归正传,我们来调用函数看看。

if button_trans: tx = trans(nodes,password,player,toplayer,number,Token,memo) st.write(tx)

这代码很简单,if button_trans就是当按下去按钮的时候发生了啥事。
然后把上面几个文本输入框输入的内容传参到刚才写的函数里面,
最后把返回信息显示出来。

streamlit 的显示方式就是st.write(tx)

我们来测试一下。

成功显示出信息,有没成功我们查看区块浏览器看看。
https://steemd.com/tx/2af579023c318d22f6c41d3761f4d05c517f8d8b

很好的转出去了,完美。

至此,一个只有转账功能的简单区块链钱包就写好了,撒花。

才一节课就写完了?后面怎么开课收学费走向人生巅峰迎娶白富美?这是个问题而且我还没考虑好。

下节课,我们来把这个简单的钱包部署在网上,方便提供给用户使用。

本节全部源代码可以从我的github获得:跳转github

—-

编译者/作者:BU联盟

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...