我有一些脚本用来从地址到地址发送以太网。Im使用奇偶校验和python3.6。它使用的烧瓶看起来像:
from flask import Flask, render_template, json, request
import urllib
import requests
import binascii
from decimal import *
app = Flask(__name__)
def Eth(method,params=[]):
data = {"method":method,"params":params,"id":1,"jsonrpc":"2.0"}
headers = {'Content-type': 'application/json'}
r = requests.post(ethrpc, data=json.dumps(data), headers=headers)
r = r.text
response = json.loads(r)
return(response)
hot = str("XXXXXXX")
@app.route('/')
def index():
ethnumbers = int(10)**int(18)
hot = str("XXXXX")
balance = Eth("eth_getBalance",[hot,'latest'])
balance = balance["result"]
balance = int(balance, 16)
balance = float(balance)
balance = balance / ethnumbers
balance = str(balance)
return render_template('index.html',hot = hot,balance=balance)
@app.route('/send/',methods=['POST','GET'])
def send():
getcontext().prec = 28
ethnumbers = Decimal(10)**Decimal(18)
print(ethnumbers)
if request.method == "POST":
_myaddress = request.form['_myaddress']
_youraddress = request.form['_youraddress']
_amount = request.form['_amount']
_gas = request.form['_gas']
_gas = hex(int(_gas))
passy = str("XXXXXXXXX")
getcontext().prec = 28
_amount = Decimal(_amount)
getcontext().prec = 28
_amount = _amount * ethnumbers
getcontext().prec = 28
_amount = int(_amount)
_amount = hex(_amount)
r = [{'from':_myaddress,"to":_youraddress,"value":_amount,"gas":_gas,},str("XXXXXXXXXX!")]
print(r)
json.dumps(r)
resultio = Eth("personal_sendTransaction",r)
try:
resultio["result"]
return render_template('sent.html',resultio=resultio["result"])
except: KeyError
return render_template('sent.html',resultio=resultio["error"]["message"])
else:
return render_template('index.html')
if __name__ == "__main__":
app.run()
我很确定,我必须使用“data”来完成这个任务,但是我不知道如何通过这个脚本发送ERC20令牌。令牌事务的结构类似于“我的地址->令牌地址->令牌接收方”。在
有什么想法吗?在
web3.py
绝对是一条路。如果您想手工操作,并且只想调用标准的ERC-20transfer
方法,from
地址应该保持不变,to
地址应该是令牌契约,然后data
应该是以下连接在一起的十六进制格式:decimals()
函数来检索。)这也应该被格式化为一个32字节的数字(因此左补零)。在web3.py
会容易得多。:-)类似于:伙计们,这比看上去简单多了。 你只要把:
^{bq}$作为接收器并生成一个长的“数据”字段,它将字符串表示为:
示例事务:https://etherscan.io/tx/0x9c27df8af24e06edb819a8d7a380f548fad637de5edddd6155d15087d1619964
启动
geth
节点并向JSON-RPC接口发送post请求,如:至于令牌契约,您需要找到契约部署的地址,查看ABI,并确定调用令牌部署的
transfer
方法所需的信息。在相关问题 更多 >
编程相关推荐