我有一些脚本用于从地址向地址发送以太币。我使用 Parity 和 Python 3.6。它使用 Flask 看起来像:
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 = …Run Code Online (Sandbox Code Playgroud) 当我尝试将整数添加到 Postgresql 数据库时遇到问题。Varchars 工作正常,但是当我使用代码时:
var parameter = cmd.CreateParameter();
parameter.Value = Int32.Parse(x.Value.ToString());
Console.WriteLine(parameter.Value);
parameter.ParameterName = x.Key.ToString();
cmd.Parameters.Add(new NpgsqlParameter("confirmations",NpgsqlTypes.NpgsqlDbType.Integer));
for (int search=0; search != cmd.Parameters.Count; search++)
Run Code Online (Sandbox Code Playgroud)
执行时出错,我使用:
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
听上去像:
数据库问题:System.InvalidCastException:无法使用处理程序类型 Int32Handler\ 写入 CLR 类型 System.String
在 lambda_method( 闭包 、 NpgsqlTypeHandler 、 对象 、 NpgsqlLengthCache& 、 NpgsqlParameter )
在 C:\projects\npgsql\src\Npgsql\NpgsqlParameter.cs 中的 Npgsql.NpgsqlParameter.ValidateAndGetLength() 处:第 553 行
在 C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs 中的 Npgsql.NpgsqlCommand.ValidateParameters() 处:第 793 行
在 C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs 中的 Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior 行为、布尔异步、CancellationToken CancellationToken):第 1141 行
在 C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs 中的 Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken CancellationToken):第 1042 行
在 C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs 中的 Npgsql.NpgsqlCommand.ExecuteNonQuery() …
其实我有:
CREATE TABLE public.user(
id BIGSERIAL NOT NULL,
nick VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
born DATE,
joined DATE,
tags text[]
);
Run Code Online (Sandbox Code Playgroud)
我想选择最佳选项来节省注册时间和出生数据。我搜索了互联网,但没有找到任何好的结果。也许使用python中的时间更好,然后将其插入到postgres中?
我的async方法如下:
public async Task<List<object>> handleSummaryOfWallets()
{
string token = giveMeToken("URL AND CREDS");
Channel channel = new Channel("NANANANA GIROUD", ChannelCredentials.Insecure);
OMGadminAPI.OMGadminAPIClient client = new OMGadminAPI.OMGadminAPIClient(channel);
var summaryBalancesParams = new OMGadminAPIGetCurrenciesSummariesParams();
summaryBalancesParams.AdminAuthTokenSecret = token;
List<object> summariesCurrenciesOMGadmin = new List<object>();
using (var call = client.GetCurrenciesSummaries(summaryBalancesParams))
{
while (await call.ResponseStream.MoveNext())
{
OMGadminAPICurrencySummary currencySummary = call.ResponseStream.Current;
summariesCurrenciesOMGadmin.Add(currencySummary);
Console.WriteLine(summariesCurrenciesOMGadmin);
}
return summariesCurrenciesOMGadmin;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,上述async方法返回对象列表。我调用这个方法如下:
var listOfBalances = balances.handleSummaryOfWallets().Wait();
Run Code Online (Sandbox Code Playgroud)
它给了我错误:
错误 CS0815:无法将 void 分配给隐式类型的变量
从错误中,我明白这不是调用async方法的正确方法。但是我需要从async获取的数据中读取准备好的对象列表。它的请求-响应,没有真正的稳定流。所以我每个请求只需要生成一次这个列表。我正在使用gRPC框架进行 RPC …
c# ×2
postgresql ×2
python ×2
async-await ×1
asynchronous ×1
ethereum ×1
grpc ×1
npgsql ×1
parity-io ×1
python-3.x ×1
sql ×1