概览
GraphQL 接口公开了两种已解析事件的方法:通过transactions 解析事务和通过 transactionsByAddress 解析事务历史。它返回与 REST 端点 相同的已解析事务模型,同时允许客户端仅选择所需的字段。
仅当字段被选择时,GraphQL 才会包括 rawTransaction。动态解析器有效负载仍然是 JSON 标量,包括解码的指令 args、事务执行 error、摘要 parsedData 和 rawTransaction。
解析事务
query ParseTransactions($signatures: [String!]!) {
transactions(signatures: $signatures, commitment: CONFIRMED) {
signature
parserStatus
parsed {
slot
blockTime
fee
feePayer
transactionStatus
nativeTransfers {
fromUserAccount
toUserAccount
amount
}
tokenTransfers {
fromUserAccount
toUserAccount
fromTokenAccount
toTokenAccount
rawTokenAmount
decimals
tokenStandard
mint
}
summary {
type
description
parsedData
}
instructions {
topIxIdx
innerIxIdx
programId
programName
instructionName
summary {
type
description
parsedData
}
decoded {
args
accounts {
name
pubkey
isSigner
isWritable
}
}
}
}
parserError {
code
message
}
}
}
{
"signatures": ["5xSKzM8bvpudE521jikHqASzMr23Ms4X4ieY3K8oFPFrJWCSSgYocJmHznrR8b12voDxKDH8ykdCLXSRrx6duVLH"]
}
已解析事务历史
query AddressHistory($address: String!) {
transactionsByAddress(
address: $address
limit: 100
sortOrder: DESC
commitment: CONFIRMED
filters: {
slot: { gte: 300000000 }
}
) {
data {
signature
parserStatus
parsed {
slot
blockTime
nativeTransfers {
fromUserAccount
toUserAccount
amount
}
tokenTransfers {
fromUserAccount
toUserAccount
rawTokenAmount
decimals
mint
}
}
}
paginationToken
}
}
{
"address": "GV6UUmNxz2RpKxmNAPadYKb7uQpszwqQAu3qLJxVdC52"
}
查询参数
transactions
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
signatures | [String!]! | - | 要解析的事务签名。 |
commitment | Commitment | CONFIRMED | CONFIRMED 或 FINALIZED。 |
transactionsByAddress
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
address | String! | - | 要获取其交易历史的地址。 |
limit | Int | 100 | 要返回的交易数量。必须在 1 和 100 之间。 |
beforeSignature | String | - | 返回这个签名之前的交易。 |
afterSignature | String | - | 返回这个签名之后的交易。 |
paginationToken | String | - | 具有形状 slot:transactionIndex 的游标。 |
sortOrder | SortOrder | DESC | ASC 或 DESC。 |
commitment | Commitment | CONFIRMED | CONFIRMED 或 FINALIZED。 |
filters | AddressTransactionFiltersInput | - | 可选的 slot 和 time 界限。 |
原始交易
选择rawTransaction 来包括原始交易 JSON:
query ParseWithRaw($signatures: [String!]!) {
transactions(signatures: $signatures) {
signature
rawTransaction
parsed {
slot
}
}
}
rawTransaction,服务不会在响应中包含它。