要开始在Injective Quicknode 进行开发Quicknode 最快捷的方式Quicknode 向您的endpoint发送一个 JSON-RPC 请求。在本指南中,您将创建一个endpoint,复制其提供商 URL,并发送您的第一个请求。代码示例提供cURL格式,以及常用 SDK 和编程语言的版本。
获取你的Injective Endpoint
如需了解Quicknode 详细操作指南,请参阅我们的 指南
发送您的第一个请求
您的endpoint 准备就绪。现在,让我们向Injective 发起首次调用。我们将使用 eth_blockNumber 该方法返回最新的区块号。 请选择您偏好的语言或工具,并按照步骤提交请求.
- cURL
- SDK
Python
- JavaScript
- Ruby
- 去
- Ethers.js
Web3.py
- Eth.rb
- Ethgo
检查 cURL 的安装情况
大多数基于 *nix 的系统默认都支持 cURL。打开终端,运行以下命令即可查看 cURL 的版本:
curl --version
发送一个 JSON-RPC 请求
在终端中,复制并粘贴以下 cURL 命令以获取最新的区块号:
curl -X POST YOUR_QUICKNODE_ENDPOINT_URL/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
示例回答
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x1234567"
}
设置您的项目
首先,使用 `node --version` 命令验证 Node.js 是否已安装。如果尚未安装,请从 https://nodejs.org 下载。然后创建一个新目录并初始化一个 Node.js 项目:
mkdir injective-api-quickstart
cd injective-api-quickstart
npm init -y
安装SDK
安装SDK :
npm 安装sdk
创建主文件
为您的代码创建一个 index.js 文件:
touch index.js
将此代码添加到你的 index.js 文件中
将以下代码复制并粘贴到你的 index.js 文件中:
const { Core } = require('@quicknode/sdk');
const main = async () => {
const core = new Core({
endpointUrl: 'YOUR_QUICKNODE_ENDPOINT_URL/',
});
const blockNumber = await core.client.request({
method: 'eth_blockNumber',
});
console.log('Block number:', parseInt(blockNumber, 16));
};
main();
运行您的项目
运行您的脚本以查看最新的区块号:
node index.js
设置您的项目
为您的 Python 项目创建一个新目录:
mkdir injective-python-quickstart
cd injective-python-quickstart
创建并激活虚拟环境
创建一个虚拟环境来管理依赖项:
python3 -m venv venv
source venv/bin/activate
安装请求
安装 requests 库以进行 HTTP 请求:
pip 安装 requests
编写一个 Python 脚本(app.py)
创建一个包含以下代码的 Python 文件:
import requests
import json
# Your Quicknode endpoint URL
endpoint_url = "YOUR_QUICKNODE_ENDPOINT_URL/"
# JSON-RPC request payload
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "eth_blockNumber",
"params": []
}
# Make the request
response = requests.post(endpoint_url, json=payload)
result = response.json()
print("Latest block number (hex):", result["result"])
print("Latest block number (decimal):", int(result["result"], 16))
运行该脚本
运行您的 Python 脚本:
python app.py
设置您的项目
创建一个新目录并初始化一个 Node.js 项目:
mkdir injective-js-quickstart
cd injective-js-quickstart
npm init -y
创建一个 JavaScript 文件(app.js)
创建一个名为 app.js 的文件,并输入以下代码(使用 Node.js 18 及以上版本中提供的原生 fetch 功能):
const url = 'YOUR_QUICKNODE_ENDPOINT_URL/';
const options = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'eth_blockNumber',
params: [],
id: 1
})
};
async function main() {
try {
const response = await fetch(url, options);
const data = await response.json();
console.log('Block Number (hex):', data.result);
console.log('Block Number (decimal):', parseInt(data.result, 16));
} catch (error) {
console.error('Error:', error);
}
}
main();
运行该脚本
执行您的 JavaScript 脚本:
node app.js
设置您的项目
为您的 Ruby 项目创建一个新目录:
mkdir injective-ruby-quickstart
cd injective-ruby-quickstart
检查 Ruby 安装情况
请确认您的系统上已安装 Ruby。如果尚未安装,请从 https://ruby-lang.org 安装:
ruby --version
创建一个 Ruby 脚本(main.rb)
创建一个名为 main.rb 的文件,并输入以下代码:
require "uri"
require "json"
require "net/http"
url = URI("YOUR_QUICKNODE_ENDPOINT_URL/")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"method": "eth_blockNumber",
"params": [],
"id": 1,
"jsonrpc": "2.0"
})
response = https.request(request)
result = JSON.parse(response.read_body)
hex_result = result["result"]
decimal_result = hex_result.to_i(16)
puts "Block number (hex): #{hex_result}"
puts "Block number (decimal): #{decimal_result}"
运行该脚本
运行您的 Ruby 脚本以查看最新的区块编号:
ruby main.rb
设置您的项目
为您的 Go 项目创建一个新目录:
mkdir injective-go-quickstart
cd injective-go-quickstart
检查围棋布局
请确认您的系统上已安装 Go。如果尚未安装,请从 https://golang.org 安装:
go version
创建一个 Go 脚本(main.go)
创建一个名为 main.go 的文件,并输入以下代码:
package main
import (
"encoding/json"
"fmt"
“字符串”
"net/http"
"io/ioutil"
"strconv"
)
type Response struct {
Result string `json:"result"`
}
func main() {
url := "YOUR_QUICKNODE_ENDPOINT_URL/"
method := "POST"
payload := strings.NewReader(`{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}`)
client := &http.Client{}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
返回
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
返回
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
返回
}
var response Response
err = json.Unmarshal(body, &response)
if err != nil {
fmt.Println("Error parsing JSON:", err)
返回
}
// Convert hex to decimal
blockNumber, err := strconv.ParseInt(response.Result, 0, 64)
if err != nil {
fmt.Println("Error converting hex to decimal:", err)
返回
}
fmt.Printf("Block number (hex): %s\n", response.Result)
fmt.Printf("Block number (decimal): %d\n", blockNumber)
}
运行该脚本
运行您的 Go 脚本以查看最新的区块号:
运行 main.go
设置您的项目
创建一个新目录并初始化一个 Node.js 项目(假设已安装 Node.js):
mkdir injective-ethers-quickstart
cd injective-ethers-quickstart
npm init -y
npm pkg set type=module
安装 ethers.js
安装用于Ethereum ethers.js 库:
npm 安装 ethers
创建主文件(index.js)
创建一个名为 index.js 的文件,并输入以下代码:
import { ethers } from "ethers";
(async () => {
const provider = new ethers.JsonRpcProvider("YOUR_QUICKNODE_ENDPOINT_URL/");
const blockNum = await provider.getBlockNumber();
console.log('Current block number (decimal):', blockNum);
console.log('Block number (hex):', '0x' + blockNum.toString(16));
})();
运行您的项目
运行您的脚本以查看最新的区块号:
node index.js
设置您的项目
为您的 web3.py 项目创建一个新目录:
mkdir injective-web3py-quickstart
cd injective-web3py-quickstart
安装 web3.py(如果尚未安装)
使用 `pip list | grep web3` 检查 web3.py 是否已安装。如果未找到,请安装它:
pip 安装 web3
编写一个 Python 脚本(main.py)
创建一个名为 main.py 的文件,并输入以下代码:
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("YOUR_QUICKNODE_ENDPOINT_URL/"))
try:
latest_block_number = w3.eth.block_number
print(f"Latest Block Number: {latest_block_number}")
print(f"Block number (hex): {hex(latest_block_number)}")
except Exception as e:
print(f"Error: {e}")
设置您的项目
为您的 eth.rb 项目创建一个新目录:
mkdir injective-ethrb-quickstart
cd injective-ethrb-quickstart
安装 eth.rb(如果尚未安装)
使用 `gem list eth` 检查 eth.rb 是否已安装。如果未找到,请安装它:
gem 安装 eth
创建一个 Ruby 脚本(main.rb)
创建一个名为 main.rb 的文件,并输入以下代码:
require 'eth'
client = Eth::Client.create "YOUR_QUICKNODE_ENDPOINT_URL/"
begin
block_number = client.eth_block_number
hex_result = block_number["result"]
decimal_result = hex_result.to_i(16)
puts "Block number (hex): #{hex_result}"
puts "Block number (decimal): #{decimal_result}"
rescue => e
puts "Error: #{e.message}"
结束
运行该脚本
运行您的 Ruby 脚本以查看最新的区块编号:
ruby main.rb
设置您的项目
为您的 Ethgo 项目创建一个新目录:
mkdir injective-ethgo-quickstart
cd injective-ethgo-quickstart
初始化 Go 模块并安装 ethgo
初始化一个 go.mod 文件以跟踪依赖项,然后安装 ethgoSDK:
go mod init injective-ethgo-quickstart
go get github.com/umbracle/ethgo
go mod tidy
创建一个 Go 脚本(main.go)
创建一个名为 main.go 的文件,并输入以下代码:
package main
import (
"fmt"
“日志”
"github.com/umbracle/ethgo/jsonrpc"
)
func main() {
client, err := jsonrpc.NewClient("YOUR_QUICKNODE_ENDPOINT_URL/")
if err != nil {
log.Fatalf("Failed to connect to Ethereum: %v", err)
}
blockNumber, err := client.Eth().BlockNumber()
if err != nil {
log.Fatalf("Failed to get latest block number: %v", err)
}
fmt.Printf("Latest block number (decimal): %d\n", blockNumber)
fmt.Printf("Latest block number (hex): 0x%x\n", blockNumber)
}
运行该脚本
运行您的 Go 脚本以查看最新的区块号:
运行 main.go
如果您想进一步了解如何发送 API 请求,请查看我们的指南和示例应用。