GraphQL 模式定义了 fuel-core 的完整 API 接口,提供对区块链数据、交易管理和实时更新的结构化访问。此模式是外部客户端和应用程序与 fuel-core 节点交互的主要接口。
有关使用此模式的客户端 SDK 的信息,请参阅客户端 SDK。有关底层网络协议的详细信息,请参阅消息协议。
GraphQL 模式围绕三种主要操作类型组织:用于数据检索的查询 (queries)、用于状态更改的变异 (mutations) 和用于实时更新的订阅 (subscriptions)。模式定义集中在一个 SDL 文件中,相应的 Rust 实现分布在多个模块中。
来源:crates/client/assets/schema.sdl1-1533 crates/fuel-core/src/schema/tx.rs1-814 crates/fuel-core/src/schema/tx/types.rs1-98 crates/client/src/client/schema/tx.rs1-574 crates/client/src/client/types.rs1-447 crates/client/src/client.rs1-1360
模式定义了几种构成 API 基础的基本标量类型和复杂类型。
| 标量 | 描述 | 用途 |
|---|---|---|
地址 | 32字节地址标识符 | 账户和合约地址 |
资产ID | 资产标识符 | 代币和资产引用 |
交易ID | 交易哈希标识符 | 交易查找 |
区块ID | 区块哈希标识符 | 区块引用 |
合约ID | 合约标识符 | 智能合约引用 |
十六进制字符串 | 十六进制编码的字节数据 | 原始交易数据、字节码 |
U64, U32, U16 | 无符号整数 | Gas、金额、索引 |
Tai64时间戳 | TAI64 时间戳 | 区块和交易时间 |
来源:crates/client/assets/schema.sdl6-497
该模式通过具有条件字段的统一Transaction类型支持多种交易类型。
来源:crates/client/assets/schema.sdl1386-1425
该模式提供全面的查询功能,用于检索带有分页支持的区块链数据。
| 查询 | 描述 | 参数 | 返回类型 |
|---|---|---|---|
transaction | 获取单个交易 | id: TransactionId | 交易 |
transactions | 获取分页交易 | 分页参数 | TransactionConnection |
transactionsByOwner | 按所有者获取交易 | owner: Address + 分页 | TransactionConnection |
| 查询 | 描述 | 参数 | 返回类型 |
|---|---|---|---|
block | 获取单个区块 | id: BlockId 或 height: U32 | 模块 |
blocks | 获取分页区块 | 分页参数 | BlockConnection |
chain | 获取链信息 | 无 | ChainInfo |
| 查询 | 描述 | 参数 | 返回类型 |
|---|---|---|---|
balance | 获取账户余额 | owner: Address, assetId: AssetId | 余额 |
balances | 获取分页余额 | 筛选 + 分页 | BalanceConnection |
coin | 获取单个币/UTXO | utxoId: UtxoId | Coin |
coins | 获取可花费的币 | 筛选 + 分页 | CoinConnection |
coinsToSpend | 获取用于花费的币 | 查询规范 | [[CoinType!]!]! |
来源:crates/client/assets/schema.sdl945-1172 crates/fuel-core/src/schema/tx.rs196-344
模式包含几个用于高级功能的专业查询
dryRun / dryRunRecordStorageReads - 交易模拟estimatePredicates - 谓词 gas 估算assembleTx - 带有自动输入/输出管理的交易组装storageReadReplay - 历史执行追踪来源:crates/client/assets/schema.sdl1052-1071 crates/fuel-core/src/schema/tx.rs544-612
变异主要处理状态更改操作,主要是交易提交和区块生产。
来源:crates/client/assets/schema.sdl755-810
模式包含用于 VM 检查的调试变异
startSession / endSession - 调试会话管理execute / continueTx - 逐步执行setBreakpoint / setSingleStepping - 调试控制来源:crates/client/assets/schema.sdl756-792
订阅提供交易状态更改和存储监控的实时更新。
submitAndAwait - 提交交易并等待最终状态submitAndAwaitStatus - 提交并接收包括预确认在内的中间状态更新该模式使用 GraphQL Relay 风格的连接,用于所有列表查询的分页。
| 参数 | 类型 | 描述 |
|---|---|---|
first | Int | 向前分页限制 |
after | 字符串 | 向前分页游标 |
last | Int | 向后分页限制 |
before | 字符串 | 向后分页游标 |
来源: crates/client/src/client.rs91-95
模式定义了一个综合的交易状态联合类型,包含涵盖完整交易生命周期的多个变体。
来源:crates/client/assets/schema.sdl1458
该模式通过FuelClient消费,该客户端提供与 GraphQL 操作对应的类型化方法。
客户端自动处理序列化、网络通信和响应解析,同时提供强类型 Rust 接口。