我编写了一个简单的应用程序,以生成一个64字符的十六进制数,转换为专用地址,然后通过Etherscan检查余额。它没有问题。该API还允许检查以20为一组的地址,并以逗号分隔。我知道我需要将accAddress 20x的输出写到列表中,我只是不知道如何。非常感谢任何指导。
import os
from ethereum import utils
import time
import urllib.request
import json
import secrets
hex_number = secrets.token_hex(32)
rawAddress = utils.privtoaddr(hex_number)
accAddress = utils.checksum_encode(rawAddress)
url = "https://api.etherscan.io/api?module=account&action=balance&address=" + accAddress + "&tag=latest&apikey=YOURAPIKEY"
response = urllib.request.urlopen(url)
data = json.loads(response.read())
print (hex_number + "\n" + accAddress + ": " + data['result'])
经过很多帮助,这对我有用。
import os
from ethereum import utils
import time
import urllib.request
import json
import secrets
# Initialize main variables
addressCount = 20 # Address number by request
allAddress = []
allHexNumber = {}
for i in range(addressCount):
# Generate random eth address
hex_number = secrets.token_hex(32)
rawAddress = utils.privtoaddr(hex_number)
accAddress = utils.checksum_encode(rawAddress)
# Add address to list with its hex number
allAddress.append(accAddress)
allHexNumber[accAddress] = hex_number
# Join all the addresses by a ","
allAddressStr = ",".join(allAddress)
# Make the request
url = "https://api.etherscan.io/api?module=account&action=balancemultiaddress=" + allAddressStr + "&tag=latest&apikey=YOURAPIKEY"
response = urllib.request.urlopen(url)
data = json.loads(response.read())
# Get and display the result for each balance with its hex number
allResults = data['result']
for result in allResults:
address = result['account']
hex_number = allHexNumber[address]
balance = result['balance']
print(hex_number + "\n" + address + ": " + balance)