国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

用Web3.py、Infura和Graph查詢以太坊數據

區塊鏈
本文我們將使用Web3.py這個Python庫直接查詢以太坊數據。

Web3.py是一個為與Ethereum區塊鏈交互而建立的Python庫。有了它,我們可以為去中心化的應用程序建立各種核心功能。我們可以直接與智能合約互動,收集區塊鏈數據,并發送交易。讓我們開始安裝Web3.py。

pip install web3

Web3.py的功能是連接到以太坊網絡的節點,以檢索數據和向網絡廣播數據。節點存儲區塊鏈數據,所以我們可以查詢以太坊區塊鏈的狀態來收集我們需要的數據。數據檢索對我們來說是一個有效的免費操作,因為唯一的成本是節點正在進行的存儲和計算。有了這個庫,我們可以連接到自己的節點或網絡上的現有節點來建立我們想要的東西。我們可以在自己的機器上建立一個本地節點,但這樣做的成本是相當高的;截至4/21,一個完整的節點大約有7TB的數據。與其在我們想要訪問數據時操作自己的節點,不如通過使用像Infura這樣的服務來達到目的。Infura是Consensys的產品,我們將使用它作為我們的節點,連接到以太坊區塊鏈。許多頂級項目都是Infura的用戶。首先在Infura網站注冊并創建一個新項目。在那里你會發現一個項目ID。

該項目ID將被放在Web3.py的這段代碼中的末尾,它將定義你要連接到的節點。

from web3 importWeb3

w3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/YOUR_PROJECT_ID'))


現在已經準備好了與以太坊網絡的連接,可以做一些基本的查詢。

# Get information about the latest block
w3.eth.getBlock('latest')

# Get the ETH balance of an address
w3.eth.getBalance('YOUR_ADDRESS_HERE')


這段代碼很簡潔,我們可以試著深入挖掘一下。比如模仿Zapper( ????https://zapper.fi/dashboard????)這樣的產品功能,跟蹤我們代幣的美元價值如何?首先,需要掃描我們的地址,看看持有哪些代幣。為了做到這一點,我們將與各個代幣的智能合約進行交互。這些合約的地址看起來像我們的錢包地址,只不過這些是合約地址。在這個地址上有智能合約代碼。代幣將遵守ERC-20標準,使我們更容易與這些合約進行交互。一個ERC-20合約默認具有以下功能:

function name() public view returns (string)
function symbol() public view returns (string)
function decimals() public view returns (uint8)
function totalSupply() public view returns (uint256)
function balanceOf(address _owner) public view returns (uint256 balance)
function transfer(address _to, uint256 _value) public returns (bool success)
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
function approve(address _spender, uint256 _value) public returns (bool success)
function allowance(address _owner, address _spender) public view returns (uint256 remaining)


??balanceOf??是讓我們看到我們查詢的錢包地址持有多少代幣的函數。

import json

ABI = json.loads('[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf",
"outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]')


我們從定義一個ABI開始。ABI( application binary interface)是我們定義的一種格式,用于與合約交互。它是我們用來定義數據在EVM中應該如何編碼/解碼的。拋開技術細節,重要的是要理解它是我們定義的格式,我們將如何與我們想要的智能合約進行交互。

wallet_address = 'YOUR_ADDRESS_HERE'
wallet_address = Web3.toChecksumAddress(wallet_address)

token_contract_address = '0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f'
token_contract_address = Web3.toChecksumAddress(token_contract_address)

# define contract
contract = w3.eth.contract(token_contract_address, abi=ABI)

# call contract and get data from balanceOf for argument wallet_address
raw_balance = contract.functions.balanceOf(wallet_address).call()

# convert the value from Wei to Ether
synthetix_value = Web3.fromWei(raw_balance, 'ether')


接下來我們采取一系列步驟,輸入地址并返回我們選擇的錢包地址所持有的代幣數量。我們的樣本地址是Synthetix(SNX),你可以輸入任何你喜歡的合約地址。你可以想象一下,你可以建立一個ERC-20合約地址的主列表,并通過迭代來找到特定錢包所持有的代幣。我們使用Web3函數 ??toChecksumAddress()??來確保我們的地址是校驗格式的。我們使用 ??fromWei()??將我們的Wei價格轉換為 ether。1ETH是1E18 Wei。最后,我們將使用The Graph來獲取一些行情數據。由于我們希望所有的東西都在鏈上,所以我們需要得到我們想要的代幣在DAI中的價值,這是一個與美元相對掛鉤的穩定幣。

from gql import gql, Client
from gql.transport.requests importRequestsHTTPTransport
sample_transport=RequestsHTTPTransport(
url='https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2',
verify=True,
retries=5,
)
client = Client(
transport=sample_transport
)

# Get the value of SNX/ETH
query = gql('''
query {
pair(id: "0x43ae24960e5534731fc831386c07755a2dc33d47"){
reserve0
reserve1
}
}
''')
response = client.execute(query)
snx_eth_pair = response['pair']
eth_value = float(snx_eth_pair['reserve1']) / float(snx_eth_pair['reserve0'])

# Get the value of ETH/DAI
query = gql('''
query {
pair(id: "0xa478c2975ab1ea89e8196811f51a7b7ade33eb11"){
reserve0
reserve1
}
}
''')
response = client.execute(query)
eth_dai_pair = response['pair']
dai_value = float(eth_dai_pair['reserve0']) / float(eth_dai_pair['reserve1'])

snx_dai_value = eth_value * dai_value


我們對The Graph進行查詢,以獲得SNX的DAI價值。我們首先得到每一個SNX的ETH價值,然后乘以與一個ETH等值的DAI數量,得到一個SNX的DAI價值。然后,我們可以將最終的DAI值乘以我們錢包持有的SNX數量,找到頭寸的總美元價值。我們不得不做所有這些額外的步驟,因為在Uniswap中沒有一個活躍的池子來直接用DAI交換SNX。所以我們從SNX到ETH到DAI。下一步會講解我們如何查詢實時區塊鏈數據,以了解鏈上活動的最新情況。

責任編輯:龐桂玉 來源: Python中文社區
相關推薦

2022-04-15 08:33:51

PythonGraph以太坊數據

2022-04-18 08:07:44

web3.pyPythonEthereum

2021-10-26 00:27:28

Python以太坊智能

2023-05-24 08:00:00

2022-09-20 11:34:15

以太坊PoS共識機制攻擊

2021-05-02 22:19:46

以太坊比特幣加密貨幣

2022-10-18 08:00:00

2021-05-03 23:32:55

以太坊區塊鏈比特幣

2021-12-08 13:57:29

以太坊加密貨幣比特幣

2021-05-22 22:57:24

以太坊加密貨幣比特幣

2021-04-19 12:31:04

太坊數據QuestDB

2021-04-29 16:11:14

以太坊共識鏈驗證者

2021-05-07 09:06:55

GraphQLAPI 以太坊

2018-06-01 09:17:52

區塊鏈以太坊

2021-05-13 16:13:21

區塊鏈以太坊NFT

2022-01-06 10:55:43

開發者Web 3數據

2021-03-10 13:59:32

以太坊數據網絡

2021-03-04 11:05:24

比特幣以太坊加密貨幣

2021-05-06 15:06:57

比特幣以太坊貨幣

2022-09-06 14:35:34

區塊鏈以太坊NFT
點贊
收藏

51CTO技術棧公眾號

樱花草涩涩www在线播放| 国产91色综合久久免费分享| 久久99亚洲精品| 91丝袜在线| 欧美一区二区在线播放| www.视频在线.com| 在线亚洲欧美专区二区| 肉丝一区二区| 欧美视频一区在线| 麻豆视频在线观看免费网站| 欧美四级电影网| 免费高清在线观看| 亚洲成人性视频| 天堂av在线网| 北条麻妃久久精品| 一区二区三区国产好| 午夜精品一区二区三区在线视| 欧美变态网站| 国产主播在线一区| 欧美污视频久久久| 国产一区二区黄| 国产精品vvv| 中文字幕亚洲综合| baoyu135国产精品免费| 国产成人精品久久二区二区91 | 中文字幕欧美日韩一区二区三区| 天堂在线一区二区| 国产黄色激情视频| 国产天堂亚洲国产碰碰| jizz18欧美| 色婷婷av一区二区三区大白胸| 精品国产99久久久久久| 亚洲日本欧美中文幕| 久久97精品| 国产欧美综合精品一区二区| 日韩激情一二三区| 国产熟女高潮视频| 午夜国产精品一区| 黑人玩欧美人三根一起进| 精品国偷自产在线视频99| 久操成人av| 欧洲高清一区二区| 久久久久久久综合色一本| 亚洲欧美日本免费| 精品调教chinesegay| 超碰97久久国产精品牛牛| 91精品视频免费| 精品制服美女久久| 99热手机在线观看| 欧美一区二区三区四区在线观看| 日韩一区二区三区免费视频| 国产精品久久久一区| 欧美aⅴ一区二区三区视频| 久久久久国产一区| 8x福利精品第一导航| 日韩一区二区三区四区五区| 91手机在线播放| 97se亚洲国产综合自在线观| 国产精品久久激情| 在线播放欧美女士性生活| 日韩精品视频中文字幕| 日本福利在线观看| 亚洲精品中文字幕av| 神马午夜久久| 亚洲激情啪啪| 亚洲综合另类小说| 亚洲欧美一区二区三区| 国产精品三级久久久久久电影| 久久国产精品第一页| 婷婷福利视频导航| 有码中文亚洲精品| 精品1区2区3区4区| 亚洲国产高清av| 欧美va亚洲va香蕉在线| 中文精品一区二区| 国产爆乳无码一区二区麻豆| 色噜噜偷拍精品综合在线| 国产精品美女久久久久人| 欧美精品与人动性物交免费看| 亚洲视频一二三| 欧美日韩美女| 国产主播一区二区三区四区| 亚洲国产精品传媒在线观看| gratisvideos另类灌满| 91中文字幕一区| 国产目拍亚洲精品99久久精品| 一二三四区在线观看| 国产精品亚洲精品| 国产亚洲制服色| 中文字幕乱码在线播放| 国产精品自拍首页| 亚洲一区二区欧美日韩| 精品国产三区在线| 欧美交换配乱吟粗大25p| 欧洲人成人精品| 欧美xxxx在线| 国产69精品久久久久999小说| 欧美人狂配大交3d怪物一区| 精品无人区麻豆乱码久久久| av无码精品一区二区三区| 日韩精品福利在线| 精品动漫3d一区二区三区免费| youjizzxxxx18| 永久免费看mv网站入口亚洲| 日韩和欧美一区二区| 玖玖在线免费视频| 欧美精品videossex88| 成人永久aaa| 日韩激情电影| 日韩欧美亚洲区| 欧美一区二区视频在线观看2020| 欧美一区91| 少妇激情av一区二区| 国产精品免费看久久久香蕉 | 国产精品亚洲不卡a| 亚洲成人1区2区| 蜜桃精品wwwmitaows| 亚洲成人天堂网| 精品国产区一区二区三区在线观看| 欧美激情亚洲一区| 精品国产乱码久久久久久蜜臀| 国精品**一区二区三区在线蜜桃| 成人香蕉社区| 国产三级视频在线| 麻豆91精品视频| 精品美女在线观看视频在线观看| 国产精华一区| 欧美综合一区二区| 欧美午夜国产| 超碰电影在线播放| 性欧美videosex高清少妇| 亚洲高清不卡av| 久久狠狠亚洲综合| 亚洲一区站长工具| www.av蜜桃| 欧美人在线视频| 国产精品久久久久影院老司 | 日本在线中文字幕一区| 亚欧美在线观看| 8090成年在线看片午夜| 亚洲精品国产第一综合99久久 | 69精品小视频| 亚洲综合一区二区精品导航| 国产精品久久久久一区二区三区厕所 | 欧美成人三级在线| 精品一区二区三区免费播放| 精品视频在线一区二区在线| 成年人视频在线免费| 欧美在线影院在线视频| 亚洲sss视频在线视频| 欧美国产高清| 超碰激情在线| 手机看片福利盒子久久| 国产精品美女www爽爽爽视频| 在线日韩一区二区| 久久精品国产秦先生| 99亚洲男女激情在线观看| 黄色成人av| 久草精品电影| 日韩中文字幕视频| 午夜精品在线看| 日本成人超碰在线观看| 日韩精品一区二区三区中文| 在线观影网站| 日本精品免费视频| 国产成人精品一区二区| 欧美一区三区二区| 国产日韩一级二级三级| 伊人久久大香线蕉综合热线| 日本一区免费网站| 美女黄视频在线播放| 在线视频一区观看| 欧美亚洲成人免费| 日韩欧美国产午夜精品| 久久精品亚洲乱码伦伦中文 | av网在线观看| 亚洲色婷婷久久精品av蜜桃| 51午夜精品视频| 日韩女优毛片在线| 国产精品午夜久久| av成人毛片| 91嫩草国产线观看亚洲一区二区| 在线免费色视频| 一二三四中文字幕| 国产精品视频一区二区高潮| 亚洲国产精品va在线| 亚洲精品免费电影| 激情综合网av| 欧美oldwomenvideos| 韩国成人动漫| 国内福利写真片视频在线| 男人草女人视频| 91人成网站www| 久久精品视频亚洲| 91精品在线一区二区| 1024亚洲合集| 国产麻豆91精品| 一区在线观看| 成人同人动漫免费观看 | 永久免费看mv网站入口亚洲|