Send payment using Blockchain.info API - Runtime Error: ERROR: For input string: ".001"
Send payment using Blockchain.info API - Runtime Error: ERROR: For input string: ".001"
我正在尝试使用 Blockchain.Info 的付款 API 发送付款。我正在使用在 GitHub 上找到的 Python 库:https://github.com/gowness/pyblockchain/blob/master/pyblockchain.py
当 运行 下面的代码出现以下错误时:RuntimeError: ERROR: For input string: ".001" 有人知道这里发生了什么吗?我是运行Python2.7。一旦我开始发送一笔交易,我想看看发送多笔交易。
from __future__ import print_function
from itertools import islice, imap
import csv, requests, json, math
from collections import defaultdict
import requests
import urllib
import json
from os.path import expanduser
import configparser
class Wallet:
guid = 'g'
isAccount = 0
isKey = 0
password1 = 'x'
password2 = 'z'
url = ''
def __init__(self, guid = 'g', password1 = 'x', password2 = 'z'):
if guid.count('-') > 0:
self.isAccount = 1
if password1 == '': # wallet guid's contain -
raise ValueError('No password with guid.')
else:
self.isKey = 1
self.guid = guid
self.url = 'https://blockchain.info/merchant/' + guid + '/'
self.password1 = password1
self.password2 = password2
def Call(self, method, data = {}):
if self.password1 != '':
data['password'] = self.password1
if self.password2 != '':
data['second_password'] = self.password2
response = requests.post(self.url + method,params=data)
json = response.json()
if 'error' in json:
raise RuntimeError('ERROR: ' + json['error'])
return json
def SendPayment(self, toaddr='TA', amount='0.001', fromaddr = 'FA', shared = 0, fee = 0.0001, note = 'test'):
data = {}
data['address'] = toaddr
data['amount'] = amount
data['fee'] = fee
if fromaddr != '':
data['from'] = fromaddr
if shared == 1:
data['shared'] = 'true'
if note != '':
data['note'] = note
response = self.Call('payment',data)
return
def SendManyPayment(self, txs = {} , fromaddr = 'FA', shared = 0, fee = 0.0001, note = 'test'):
responses = {}
for tx in txs:
SendPayment(self, tx[0], tx[1] , fromaddr , shared , fee , note )
return
print(Wallet().SendPayment())
我修复了它,付款金额需要以 Satoshi 而非 BTC 为单位。应该先多看看 API 文档 ;)
我正在尝试使用 Blockchain.Info 的付款 API 发送付款。我正在使用在 GitHub 上找到的 Python 库:https://github.com/gowness/pyblockchain/blob/master/pyblockchain.py
当 运行 下面的代码出现以下错误时:RuntimeError: ERROR: For input string: ".001" 有人知道这里发生了什么吗?我是运行Python2.7。一旦我开始发送一笔交易,我想看看发送多笔交易。
from __future__ import print_function
from itertools import islice, imap
import csv, requests, json, math
from collections import defaultdict
import requests
import urllib
import json
from os.path import expanduser
import configparser
class Wallet:
guid = 'g'
isAccount = 0
isKey = 0
password1 = 'x'
password2 = 'z'
url = ''
def __init__(self, guid = 'g', password1 = 'x', password2 = 'z'):
if guid.count('-') > 0:
self.isAccount = 1
if password1 == '': # wallet guid's contain -
raise ValueError('No password with guid.')
else:
self.isKey = 1
self.guid = guid
self.url = 'https://blockchain.info/merchant/' + guid + '/'
self.password1 = password1
self.password2 = password2
def Call(self, method, data = {}):
if self.password1 != '':
data['password'] = self.password1
if self.password2 != '':
data['second_password'] = self.password2
response = requests.post(self.url + method,params=data)
json = response.json()
if 'error' in json:
raise RuntimeError('ERROR: ' + json['error'])
return json
def SendPayment(self, toaddr='TA', amount='0.001', fromaddr = 'FA', shared = 0, fee = 0.0001, note = 'test'):
data = {}
data['address'] = toaddr
data['amount'] = amount
data['fee'] = fee
if fromaddr != '':
data['from'] = fromaddr
if shared == 1:
data['shared'] = 'true'
if note != '':
data['note'] = note
response = self.Call('payment',data)
return
def SendManyPayment(self, txs = {} , fromaddr = 'FA', shared = 0, fee = 0.0001, note = 'test'):
responses = {}
for tx in txs:
SendPayment(self, tx[0], tx[1] , fromaddr , shared , fee , note )
return
print(Wallet().SendPayment())
我修复了它,付款金额需要以 Satoshi 而非 BTC 为单位。应该先多看看 API 文档 ;)