91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

以太坊2.0查詢Validator余額的JS代碼怎么寫

發布時間:2021-12-13 21:40:01 來源:億速云 閱讀:163 作者:柒染 欄目:互聯網科技

以太坊2.0查詢Validator余額的JS代碼怎么寫,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

在ETH 2.0抵押的一個基本需求是監視其驗證者余額,我們將學習如何利用Infura的ETH 2.0 Beacon Chain API編寫程序來查詢驗證者(Validator)的余額。

離ETH 2.0的零階段啟動越來越近,在witti以及即將上線的altona測試網上參與抵押的興趣也越來越高漲 —— 調查報告顯示超過65%的受訪者表示期望抵押其持有的ETH。

首先我們需要引入axio庫并創建一個HTTP客戶端,從環境變量加載Infura項目ID:

import axios from 'axios';

const instance = axios.create({
  baseURL: 'https://witti.infura.io/',
  auth: {
    username: process.env.INFURA_PROJECT_ID,
    password: '',
  },
});

我們需要定義一些網絡相關的參數。前兩個有助于我們計算當前周期(epoch),最后一個用來將余額單位從gwei轉換為我們更熟悉的eth:

const SECONDS_PER_SLOT = 12;
const SLOTS_PER_EPOCH = 32;
const GWEI_PER_ETH = 1000000000;

接下來我們將查詢網絡的創世數據用來計算當前周期:

(async () => {
  let response = await instance.get('node/genesis_time')
  const genesisTime = response.data;

  const now = Math.floor(Date.now() / 1000)
  const currentEpoch = Math.floor((now - genesisTime) / (SECONDS_PER_SLOT * SLOTS_PER_EPOCH))

有了這些代碼,我們就可以查詢驗證者(Validator)的當前余額了,這里我們使用寫文章時余額最高的驗證者的公鑰進行查詢:

  response = await instance.post('beacon/validators', {
    epoch: currentEpoch.toString(),
    pubkeys: ["0xb0bfa93603f81ecaf3c450b793e71f7372822cd2002534364493e4e497fb5df16d252ae2fdc6bbc0e74d849f918db393"],
  });

  const balanceGwei = response.data[0].balance;
  const balance = balanceGwei / GWEI_PER_ETH;
  
  console.log(`You have ${balance} Ξ2.0`);
})();

當我們運行這個程序時,就可以看到如下輸出:

You have 32.500178823 Ξ2.0

下面是查詢ETH 2.0驗證者余額的完整代碼:

import axios from 'axios';

const instance = axios.create({
  baseURL: 'https://witti.infura.io/',
  auth: {
    username: process.env.INFURA_PROJECT_ID,
    password: '',
  },
});

const SECONDS_PER_SLOT = 12;
const SLOTS_PER_EPOCH = 32;
const GWEI_PER_ETH = 1000000000;

(async () => {
  let response = await instance.get('node/genesis_time')
  const genesisTime = response.data;

  const now = Math.floor(Date.now() / 1000)
  const currentEpoch = Math.floor((now - genesisTime) / (SECONDS_PER_SLOT * SLOTS_PER_EPOCH))

  response = await instance.post('beacon/validators', {
    epoch: currentEpoch.toString(),
    pubkeys: ["0xb0bfa93603f81ecaf3c450b793e71f7372822cd2002534364493e4e497fb5df16d252ae2fdc6bbc0e74d849f918db393"],
  });

  const balanceGwei = response.data[0].balance;
  const balance = balanceGwei / GWEI_PER_ETH;
  
  console.log(`You have ${balance} Ξ2.0`);
})();

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中江县| 合江县| 昌吉市| 泊头市| 芜湖市| 静安区| 阿鲁科尔沁旗| 巧家县| 汶川县| 大邑县| 淮安市| 呼和浩特市| 尚义县| 兴业县| 五大连池市| 芒康县| 白城市| 新乐市| 云安县| 丹巴县| 无极县| 吴江市| 汕尾市| 鹿泉市| 吉水县| 三亚市| 壤塘县| 合江县| 眉山市| 探索| 额敏县| 巩留县| 张掖市| 庆阳市| 亚东县| 西和县| 西城区| 保山市| 甘孜县| 九龙坡区| 太仆寺旗|