以太坊JSON RPC API介绍

半兽人 发表于: 2018-05-17   最后更新时间: 2018-06-27  
  •   0 订阅,362 游览

Output HEX values (输出十六进制值)

目前有两种通过JSON传递的关键数据类型:未格式化的字节数组和数量。两者都以十六进制编码传递,但对格式要求不同:

当编码QUANTITIES(整数,数字)时:编码为十六进制,前缀为“0x”(例外:0应表示为“0x0”)。例如:

  • 0x41 (对应十进制的65)
  • 0x400 (对应十进制的1024)
  • WRONG: 0x (应始终至少有一个数字 - 0为“0x0”)
  • WRONG: 0x0400 (不允许前导为0)
  • WRONG: ff (必须加前缀0x)

当编码为UNFORMATTED DATA(字节数组,帐户地址,散列,字节码数组)时:编码为十六进制,前缀为“0x”,每个字节两个十六进制数字。 例子:

  • 0x41 (size 1, 表示 "A")
  • 0x004200 (size 3, "\0B\0")
  • 0x (size 0, "")
  • WRONG: 0xf0f0f (必须是偶数位数)
  • WRONG: 004200 (必须有前缀0x)

目前,cpp-ethereumgo-ethereum仅通过http提供JSON-RPC通信。

默认区块参数

以下方法具有额外的默认块参数:

  • eth_getBalance
  • eth_getCode
  • eth_getTransactionCount
  • eth_getStorageAt
  • eth_call

当请求作用于以太坊状态时,最后一个默认的块参数决定了块的高度。

以下选项可用于defaultBlock参数:

  • HEX String - 区块号
  • String "earliest" 为最早/起源块
  • String "latest" - 为最新的挖掘的块
  • String "pending" - 为pending状态/交易

JSON-RPC方法列表

web3_clientVersion

返回当前客户端版本号

参数:

none

返回:

String - 当前客户端版本号

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}'

// Result
{
  "id":67,
  "jsonrpc":"2.0",
  "result": "Mist/v0.9.3/darwin/go1.4.1"
}

web3_sha3

返回指定数据的Keccak-256(不是标准化的SHA3-256)。

参数:
  1. String - 将数据转化为SHA3哈希
params: [
  '0x68656c6c6f20776f726c64'
]
返回:

DATA - 返回SHA3

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c6f20776f726c64"],"id":64}'

// Result
{
  "id":64,
  "jsonrpc": "2.0",
  "result": "0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad"
}

net_version

Returns the current network protocol version.
返回当前网络协议的版本。

参数:

none

返回:

String - 当前网络协议版本

举例:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"net_version","params":[],"id":67}'

// Result
{
  "id":67,
  "jsonrpc": "2.0",
  "result": "59"
}

net_listening

如果客户端正在主动监听网络连接,则返回true。

参数:

none

返回:

Boolean - 当监听时为true,否则为false。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"net_listening","params":[],"id":67}'

// Result
{
  "id":67,
  "jsonrpc":"2.0",
  "result":true
}

net_peerCount

返回当前连接到客户端的对等的数量。

参数:

none

返回:

QUANTITY - 已连接对等的数量的整数。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}'

// Result
{
  "id":74,
  "jsonrpc": "2.0",
  "result": "0x2" // 2
}

eth_protocolVersion

返回当前以太坊协议的版本

参数:

none

返回:

String - The current ethereum protocol version

举例:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_protocolVersion","params":[],"id":67}'

// Result
{
  "id":67,
  "jsonrpc": "2.0",
  "result": "54"
}

eth_syncing

返回同步状态,或返回FALSE。

参数:

none

返回:

Object|Boolean, 同步状态数据或FALSE的对象在不同步时:

  • startingBlock: QUANTITY - 导入开始的块(只有在同步达到它的头之后才会被重置)
  • currentBlock: QUANTITY - 当前块,与eth_blockNumber相同
  • highestBlock: QUANTITY - 估算的最高区块
举例:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_isSyncing","params":[],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": {
    startingBlock: '0x384',
    currentBlock: '0x386',
    highestBlock: '0x454'
  }
}
// Or when not syncing
{
  "id":1,
  "jsonrpc": "2.0",
  "result": false
}

eth_coinbase

返回该客户端coinbase地址。

参数:

none

返回:

DATA, 20 bytes - 当前coinbase的地址.

举例:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":64}'

// Result
{
  "id":64,
  "jsonrpc": "2.0",
  "result": "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
}

eth_mining

如果客户端正在主动挖掘新块,则返回true。

参数:

none

返回:

Boolean - 客户端主动的挖矿返回true,否则为false。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_mining","params":[],"id":71}'

// Result
{
  "id":71,
  "jsonrpc": "2.0",
  "result": true
}

eth_hashrate

返回节点正在挖掘的每秒散列数。

参数:

none

返回:

QUANTITY - 每秒的哈希数。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":71}'

// Result
{
  "id":71,
  "jsonrpc": "2.0",
  "result": "0x38a"
}

eth_gasPrice

每个gas的当前价格,单位wei。

参数:

none

返回:

QUANTITY - 当前gas的价格整数。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}'

// Result
{
  "id":73,
  "jsonrpc": "2.0",
  "result": "0x09184e72a000" // 10000000000000
}

eth_accounts

返回客户端拥有的地址列表。

参数:

none

返回:

Array of DATA, 20 Bytes - 该地址拥有的地址列表

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": ["0x407d73d8a49eeb85d32cf465507dd71d507100c1"]
}

eth_blockNumber

返回最近块的数量。

参数:

none

返回:

QUANTITY - 客户端所在当前块号的整数。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":83}'

// Result
{
  "id":83,
  "jsonrpc": "2.0",
  "result": "0x4b7" // 1207
}

eth_getBalance

返回指定地址的帐户余额。

参数

DATA, 20 Bytes - 通过地址来检索余额。

QUANTITY|TAG - 区块号, 或使用 "latest", "earliest","pending"

params: [
   '0x407d73d8a49eeb85d32cf465507dd71d507100c1',
   'latest'
]
返回

QUANTITY - 当前余额的整数,以wei为单位。

举例
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x0234c8a3397aab58" // 158972490234375000
}

eth_getStorageAt

返回指定地址的存储位置的值。

参数

DATA, 20 Bytes - 存储地址.
QUANTITY - 存储位置的整数.
QUANTITY|TAG - 区块号, 或 "latest", "earliest", "pending"

params: [
   '0x407d73d8a49eeb85d32cf465507dd71d507100c1',
   '0x0', // storage position at 0
   '0x2' // state at block number 2
]
返回

DATA - 在这个存储位置的值。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getStorageAt","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "0x0", "0x2"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x03"
}

eth_getTransactionCount

返回从该地址发送的交易数量。

参数:

DATA, 20 Bytes - 地址.
QUANTITY|TAG - 区块号, 或"latest", "earliest" , "pending"

params: [
   '0x407d73d8a49eeb85d32cf465507dd71d507100c1',
   'latest' // state at the latest block
]
返回

QUANTITY - 返回从该地址发送的交易数量。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1","latest"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x1" // 1
}

eth_getBlockTransactionCountByHash

通过区块hash匹配区块中的交易数。

参数

DATA, 32 Bytes - 区块的hash

params: [
   '0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238'
]
返回

QUANTITY - 在该区块的交易数

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xb" // 11
}

eth_getBlockTransactionCountByNumber

通过区块号进行匹配,返回交易数。

参数

QUANTITY|TAG - 区块号, 或 "earliest", "latest" or "pending"

params: [
   '0xe8', // 232
]
返回

QUANTITY - 在该区块中的交易数量。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByNumber","params":["0xe8"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xa" // 10
}

eth_getUncleCountByBlockHash

通过指定的区块hash,返回uncle数量。

参数

DATA, 32 Bytes - 区块hash

params: [
   '0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238'
]
返回

QUANTITY - 该区块的uncle数量

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id"Block:1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x1" // 1
}

eth_getUncleCountByBlockNumber

Returns the number of uncles in a block from a block matching the given block number.
通过指定的区块号,返回uncle数量。

参数

QUANTITY - 区块号, 或 "latest", "earliest", "pending"
params: [
'0xe8', // 232
]

返回

QUANTITY - integer of the number of uncles in this block.

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockNumber","params":["0xe8"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x1" // 1
}

eth_getCode

返回指定地址的code。

参数

DATA, 20 Bytes - 地址
QUANTITY|TAG - 区块号, 或"latest", "earliest", "pending"

params: [
   '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b',
   '0x2'  // 2
]
返回

DATA - 指定地址的code。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "0x2"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x600160008035811a818181146012578301005b601b6001356025565b8060005260206000f25b600060078202905091905056"
}

eth_sign

用指定地址签名数据。
注意,签名地址必须解锁。

参数

DATA, 20 Bytes - 地址
DATA, 签名的数据

返回

DATA: 签名后的数据

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sign","params":["0xd1ade25ccd3d550a7eb532ac759cac7be09c2719", "Schoolbus"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x2ac19db245478a06032e69cdbd2b54e648b78431d0a47bd1fbab18f79f820ba407466e37adbe9e84541cab97ab7d290f4a64a5825c876d22109f3bf813254e8601"
}

eth_sendTransaction

如果数据字段包含code,则创建新的消息调用交易或创建合约。

参数

Object - 交易对象
from: DATA, 20 Bytes - 交易的发送地址。
to: DATA, 20 Bytes -(创建新合约时可选)交易指向的地址。
gas: QUANTITY -(可选,默认值:90000)为交易执行提供的gas。它会返回未使用的gas。
gasPrice: QUANTITY -(可选,默认:待确认)GasPrice就是你愿意为一个单位的Gas出多少Eth,一般用Gwei作单位。所以Gas Price 越高, 就表示交易中每运算一步,会支付更多的Eth。
value: QUANTITY - (可选) 此交易发送的value。
data: DATA - (可选) 合约的编译后的代码
nonce: QUANTITY -(可选)一个整数。允许你使用相同的nonce覆盖自己处于等待中交易。

params: [{
  "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
  "to": "0xd46e8dd67c5d32be8058bb8eb970870f072445675",
  "gas": "0x76c0", // 30400,
  "gasPrice": "0x9184e72a000", // 10000000000000
  "value": "0x9184e72a", // 2441406250
  "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
}]
返回:

DATA, 32 Bytes - 交易hash或0hash(如果交易尚不可用)。

当创建合约的时候,使用eth_getTransactionReceipt获取合约地址。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{see above}],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_sendRawTransaction

为已签名的交易创建新的消息调用交易或合约创建。

参数

Object - 交易对象
data: DATA, 已签名的交易数据。

params: [{
  "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
}]
返回:

DATA, 32 Bytes - 交易hash,或0(如果交易还不可用)。

当你创建的是一个合约时,使用eth_getTransactionReceipt来获取指定的合约地址。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":[{see above}],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_call

立即执行新的消息调用,而不在区块链上创建交易。

参数:
  • Object -交易调用的对象
  • from: DATA, 20 Bytes - (可选) 交易发送的地址。
  • to: DATA, 20 Bytes - 交易所针对的地址。
  • gas: QUANTITY - (可选) 交易执行提供的gas。 eth_call消耗0gas,但某些执行可能需要此参数。
  • gasPrice: QUANTITY - (可选) 为每个gas支付多少个gasPrice.
  • value: QUANTITY - (可选) 此交易发送的value(整型)
  • data: DATA - (可选) 合约的编译代码
  • QUANTITY|TAG - 区块号, 或"latest", "earliest", "pending"
返回:

DATA -已执行合约的返回价值.

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{see above}],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x0"
}

eth_estimateGas

估算call或交易要使用的gas(这些call或交易不会添加到区块链中)。

参数

所有eth_call的参数

返回

QUANTITY - 使用gas的总金额。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{see above}],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x5208" // 21000
}

eth_getBlockByHash

通过hash,返回一个区块的信息。

参数

DATA, 32 Bytes - 区块hash。
Boolean - 如果为true,则返回完整的交易对象,如果为false,则仅返回交易的散列。

params: [
   '0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331',
   true
]
返回

Object - 块对象,或者当没有找到块时为null:

  • number: QUANTITY - 块号。 当处于pending时为null。
  • hash: DATA, 32 Bytes - 区块的hash. 当处于pending时为null。
  • parentHash: DATA, 32 Bytes - 父类块的hash。
  • nonce: DATA, 8 Bytes - 生成的工作证明的hash。当处于pending时为null。
  • sha3Uncles: DATA, 32 Bytes - 块中的uncle数据的SHA3。
  • logsBloom: DATA, 256 Bytes - 块的日志的bloom过滤器。当pending时为空。
  • transactionsRoot: DATA, 32 Bytes - 块的交易trie的根。
  • stateRoot: DATA, 32 Bytes - 该块的最终状态树的根。
  • receiptsRoot: DATA, 32 Bytes - 块接受的trie的根。
  • miner: DATA, 20 Bytes - 获得挖矿奖励的受益人的地址。
  • difficulty: QUANTITY - 该块的难度整数。
  • totalDifficulty: QUANTITY - 直到此块的链的总难度整数。
  • extraData: DATA - 该块的“额外数据”字段。
  • size: QUANTITY - 以字节为单位该块的大小。
  • gasLimit: QUANTITY - 此区块允许的最大gas数量。
  • gasUsed: QUANTITY - 在此区块中所有交易使用的总gas。
  • timestamp: QUANTITY - 整理块时的unix时间戳。
  • transactions: Array - 取决于最后给定的参数,事务对象数组或32字节交易散列。
  • uncles: Array - uncle散列数组。
例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByHash","params":["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true],"id":1}'

// Result
{
"id":1,
"jsonrpc":"2.0",
"result": {
    "number": "0x1b4", // 436
    "hash": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331",
    "parentHash": "0x9646252be9520f6e71339a8df9c55e4d7619deeb018d2a3f2d21fc165dde5eb5",
    "nonce": "0xe04d296d2460cfb8472af2c5fd05b5a214109c25688d3704aed5484f9a7792f2",
    "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
    "logsBloom": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331",
    "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
    "stateRoot": "0xd5855eb08b3387c0af375e9cdb6acfc05eb8f519e419b874b6ff2ffda7ed1dff",
    "miner": "0x4e65fda2159562a496f9f3522f89122a3088497a",
    "difficulty": "0x027f07", // 163591
    "totalDifficulty":  "0x027f07", // 163591
    "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "size":  "0x027f07", // 163591
    "gasLimit": "0x9f759", // 653145
    "minGasPrice": "0x9f759", // 653145
    "gasUsed": "0x9f759", // 653145
    "timestamp": "0x54e34e8e" // 1424182926
    "transactions": [{...},{ ... }] 
    "uncles": ["0x1606e5...", "0xd5145a9..."]
  }
}

eth_getBlockByNumber

通过区块号返回有关块的信息。

参数

QUANTITY|TAG - 区块号, 或"earliest", "latest", "pending"
Boolean - 如果为true,则返回完整的交易对象,如果为false,则仅返回事务的散列。

params: [
   '0x1b4', // 436
   true
]
返回

跟上面的eth_getBlockByHash一样

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x1b4", true],"id":1}'

结果和eth_getBlockByHash一样

eth_getTransactionByHash

通过交易hash,返回交易信息。

参数

DATA, 32 Bytes - 交易hash

params: [
   "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
]
返回

Object - 交易对象,当交易没有找到为null。

  • hash: DATA, 32 Bytes - 交易的hash
  • nonce: QUANTITY - 发送人在此之前进行的交易次数。
  • blockHash: DATA, 32 Bytes - 该交易处于其中的区块的散列,当其处于pending状态时为空。
  • blockNumber: QUANTITY - 该交易处于其中的区块号,当其处于pending状态时为空。
  • transactionIndex: QUANTITY - 在区块中交易index位置,当其处于pending状态时为空。
  • from: DATA, 20 Bytes -发送者的地址。
  • to: DATA, 20 Bytes - 接收者地址,当它是合约创建交易时为null。
  • value: QUANTITY - value转移,以Wei为单位.
  • gasPrice: QUANTITY - 发送者提供的gas price,以Wei为单位。
  • gas: QUANTITY - 发送者提供的gas。
  • input: DATA - 数据随交易一起发送。
例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}'

// Result
{
"id":1,
"jsonrpc":"2.0",
"result": {
    "hash":"0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b",
    "nonce":"0x",
    "blockHash": "0xbeab0aa2411b7ab17f30a99d3cb9c6ef2fc5426d6ad6fd9e2a26a6aed1d1055b",
    "blockNumber": "0x15df", // 5599
    "transactionIndex":  "0x1", // 1
    "from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1",
    "to":"0x85h43d8a49eeb85d32cf465507dd71d507100c1",
    "value":"0x7f110" // 520464
    "gas": "0x7f110" // 520464
    "gasPrice":"0x09184e72a000",
    "input":"0x603880600c6000396000f300603880600c6000396000f3603880600c6000396000f360",
  }
}

eth_getTransactionByBlockHashAndIndex

通过区块hash和交易index位置,获取交易信息。

参数

DATA, 32 Bytes - 区块的hash。
QUANTITY - 交易index位置(整型)

params: [
   '0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331',
   '0x0' // 0
]
返回

eth_getBlockByHash一样。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockHashAndIndex","params":[0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b, "0x0"],"id":1}'

跟`eth_getBlockByHash`一样。

eth_getTransactionByBlockNumberAndIndex

通过区块号和交易index位置,获取交易信息。

QUANTITY|TAG - 区块号,或"earliest", "latest", "pending"
QUANTITY - 交易的index位置。

params: [
   '0x29c', // 668
   '0x0' // 0
]
返回

eth_getBlockByHash一样。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockNumberAndIndex","params":["0x29c", "0x0"],"id":1}'

跟`eth_getTransactionByHash`返回结果一样。

eth_getTransactionReceipt

通过交易hash,接收交易结果。

注意,当交易处于pending时,接收不可用。

参数

DATA, 32 Bytes - 交易hash

params: [
   '0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238'
]
返回:

Object - 交易接收对象, 当接收没找到则为null:

  • transactionHash: DATA, 32 Bytes - 交易的hash.
  • transactionIndex: QUANTITY - 区块中交易index的位置。
  • blockHash: DATA, 32 Bytes - 此交易所处的区块hash。
  • blockNumber: QUANTITY - 此交易所处的区块号
  • cumulativeGasUsed: QUANTITY - 当这笔交易已经在区块中执行完成,所使用的gas总量。
  • gasUsed: QUANTITY - 此特定交易所使用的单个gas金额。
  • contractAddress: DATA, 20 Bytes - 创建的合同地址(如果该交易是创建合约,* 否则为空。
  • logs: Array - 此交易生成的日志对象数组。
例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}'

// Result
{
"id":1,
"jsonrpc":"2.0",
"result": {
     transactionHash: '0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238',
     transactionIndex:  '0x1', // 1
     blockNumber: '0xb', // 11
     blockHash: '0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b',
     cumulativeGasUsed: '0x33bc', // 13244
     gasUsed: '0x4dc', // 1244
     contractAddress: '0xb60e8dd61c5d32be8058bb8eb970870f07233155' // or null, if none was created
     logs: [{
         // logs as returned by getFilterLogs, etc.
     }, ...]
  }
}

eth_getUncleByBlockHashAndIndex

通过hash和uncle index位置,获取区块的uncle信息。

参数:

DATA, 32 Bytes - 区块hash。
QUANTITY - uncle的index位置。

params: [
   '0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b',
   '0x0' // 0
]
返回:

eth_getBlockByHash返回一样。

例子:
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockHashAndIndex","params":["0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", "0x0"],"id":1}'
跟`eth_getBlockByHash`返回一样

注意:uncle不包含个别交易。

eth_getUncleByBlockNumberAndIndex

通过区块号和uncle index位置,查询区块uncle的信息。

参数

QUANTITY|TAG - 区块号, 或 "earliest", "latest", "pending"
QUANTITY - uncle的index位置。

params: [
   '0x29c', // 668
   '0x0' // 0
]
返回

eth_getBlockByHash返回一致。
注意:uncle不包含个别交易。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockNumberAndIndex","params":["0x29c", "0x0"],"id":1}'

注意:uncle不包含个别交易。

eth_getCompilers

返回客户端中可用编译器的列表。

参数

none

返回

Array - 可以编译的数组列表。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCompilers","params":[],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": ["solidity", "lll", "serpent"]
}

eth_compileSolidity

返回编译后的solidity代码。

参数

String - 源码

params: [
   "contract test { function multiply(uint a) returns(uint d) {   return a * 7;   } }",
]
返回:

DATA - 编译后的代码。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSolidity","params":["contract test { function multiply(uint a) returns(uint d) {   return a * 7;   } }"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": {
      "code": "0x605880600c6000396000f3006000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa114602e57005b603d6004803590602001506047565b8060005260206000f35b60006007820290506053565b91905056",
      "info": {
        "source": "contract test {\n   function multiply(uint a) constant returns(uint d) {\n       return a * 7;\n   }\n}\n",
        "language": "Solidity",
        "languageVersion": "0",
        "compilerVersion": "0.9.19",
        "abiDefinition": [
          {
            "constant": true,
            "inputs": [
              {
                "name": "a",
                "type": "uint256"
              }
            ],
            "name": "multiply",
            "outputs": [
              {
                "name": "d",
                "type": "uint256"
              }
            ],
            "type": "function"
          }
        ],
        "userDoc": {
          "methods": {}
        },
        "developerDoc": {
          "methods": {}
        }
      }

}

eth_compileLLL

返回编译后的LLL代码。

参数

String - 源码

params: [
   "(returnlll (suicide (caller)))",
]
返回

DATA - 已编译的代码.

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSolidity","params":["(returnlll (suicide (caller)))"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b600081600702905091905056" // the compiled source code
}

eth_compileSerpent

返回编译后的serpent代码。

参数

String - 源码.

params: [
   "/* some serpent */",
]
返回

DATA - 编译后的源码。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSerpent","params":["/* some serpent */"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b600081600702905091905056" // the compiled source code
}

eth_newFilter

根据过滤器选项创建过滤器对象,以通知状态何时更改(日志)。要检查状态是否已更改,请调用eth_getFilterChanges

参数

Object - 过滤器选项:

  • fromBlock: QUANTITY|TAG - (optional, default: "latest") Integer block number, or "latest" for the last mined block or "pending", "earliest" for not yet mined transactions.
    (可选,默认值:“latest”)区块号,或最近一次挖掘块的“latest”或“pending”,“earliest”用于还未挖矿的交易。
  • toBlock: QUANTITY|TAG - (optional, default: "latest") 区块号,或最近一次挖掘块的“latest”或“pending”,“earliest”用于还未挖矿的交易。
  • address: DATA|Array, 20 Bytes -(可选)合约地址或日志应从其发出的地址列表。
  • topics: DATA数组, - (可选) 32字节数据topic数组。
params: [{
  "fromBlock": "0x1",
  "toBlock": "0x2",
  "address": "0x8888f1f195afa192cfee860698584c030f4c9db1",
  "topics": ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]
}]
返回

QUANTITY - 过滤id.

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"topics":["0x12341234"]}],"id":73}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0x1" // 1
}

eth_newBlockFilter

在节点中创建一个过滤器,以通知新块到达。要检查状态是否已更改,请调用eth_getFilterChanges。

参数

None

返回

QUANTITY - 过滤器id.

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":  "2.0",
  "result": "0x1" // 1
}

eth_newPendingTransactionFilter

在节点中创建过滤器,以通知新的待处理交易到达。要检查状态是否已更改,请调用eth_getFilterChanges。

参数

None

返回

QUANTITY - 过滤器id.

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter","params":[],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":  "2.0",
  "result": "0x1" // 1
}

eth_uninstallFilter

在不再需要监控时,应停止调用,卸载指定ID的过滤器。 另外,过滤一段时间未使用eth_getFilterChanges请求的超时。

参数
QUANTITY - The filter id.
params: [
  "0xb" // 11
]
返回

Boolean - 如果过滤器已成功卸载,则为true,否则为false。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":["0xb"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": true
}

eth_getFilterChanges

过滤器的poll方法,该方法返回自上次poll以来发生的日志数组。

参数

QUANTITY - 过滤id。

params: [
  "0x16" // 22
]
返回

Array - 日志对象数组,或者如果自上次poll以来没有任何更改,则为空数组。

  • 对于用eth_newBlockFilter创建的过滤器,返回是块hahs(DATA,32字节),例如,[“0x3454645634534......”]。
  • 对于使用eth_newPendingTransactionFilter创建的过滤器,返回是事务hash(DATA,32字节),例如,[“0x6345343454645......”。
  • 对于使用eth_newFilter创建的过滤器,日志是具有以下参数:
    • type: TAG - 等待日志处于待处理状态。如果日志已被开采,则开采。
    • logIndex: QUANTITY - 块中日志索引位置。当状态为pending的日志时为null。
    • transactionIndex: QUANTITY - 日志从交易index位置创建的整数。当其panding的日志时为null。
    • transactionHash: DATA, 32 Bytes - 这个日志创建的交易的hash。 当其处于pending的日志时为null。
    • blockHash: DATA, 32 Bytes - 该日志所在块的散列,当其处于pending,则为空。当其pending日志时也为null。
    • blockNumber: QUANTITY - 此日志中的区块号,当它处于pending,则为null,当其日志处于pending,也为null。
    • address: DATA, 20 Bytes - 该日志源的地址。
    • data: DATA - 包含日志的一个或多个32字节未index的参数。
    • topics: DATA的数组 - 索引日志参数的0到4 32字节数组数据。(在solidity中:第一个topic是事件签名的hash(例如Deposit(address,bytes32,uint256)),除非你使用匿名说明符声明该事件。)
例如
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0x16"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": [{
    "logIndex": "0x1", // 1
    "blockNumber":"0x1b4" // 436
    "blockHash": "0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d",
    "transactionHash":  "0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf",
    "transactionIndex": "0x0", // 0
    "address": "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d",
    "data":"0x0000000000000000000000000000000000000000000000000000000000000000",
    "topics": ["0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5"]
    },{
      ...
    }]
}

eth_getFilterLogs

指定id,返回匹配的所有日志数组。

参数

QUANTITY - 过滤器id。

params: [
  "0x16" // 22
]
返回

参考 eth_getFilterChanges 返回

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0x16"],"id":74}'
参考 eth_getFilterChanges的返回

eth_getLogs

通过过滤器对象,返回匹配的所有日志数组。

参数

Object - 过滤器对象, 参照 eth_newFilter参数.

params: [{
  "topics": ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]
}]
返回
参考 eth_getFilterChanges 返回
返回
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"topics":["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]}],"id":74}'

参考 eth_getFilterChanges 返回

eth_getWork

返回当前块的hash,seedHash和要找到的边界条件(“目标”)。

参数:

none

返回:

Array - 具有以下属性的数组:

  • DATA, 32 Bytes - 当前块标题pow-hash
  • DATA, 32 Bytes - 用于DAG的seed散列。
  • DATA, 32 Bytes - 边界条件(“目标”), 2^256 / difficulty.
例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getWork","params":[],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": [
      "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
      "0x5EED00000000000000000000000000005EED0000000000000000000000000000",
      "0xd1ff1c01710000000000000000000000d1ff1c01710000000000000000000000"
    ]
}

eth_submitWork

用于提交工作证明的解决方案。

参数

DATA, 8 Bytes - 发现的nonce(64位)。
DATA, 32 Bytes - 头pow-hash(256位)
DATA, 32 Bytes - 最大目标(256位)

params: [
  "0x0000000000000001",
  "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
  "0xD1FE5700000000000000000000000000D1FE5700000000000000000000000000"
]
返回

Boolean - 如果提供的解决方案有效,则返回true,否则返回false。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0", "method":"eth_submitWork", "params":["0x0000000000000001", "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "0xD1GE5700000000000000000000000000D1GE5700000000000000000000000000"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": true
}

eth_submitHashrate

用于提交挖掘哈希率。

参数
  1. Hashrate, 哈希率的十六进制字符串表示(32字节)
  2. ID, String - 一个随机的十六进制(32字节)标识客户端的ID
    params: [
    "0x0000000000000000000000000000000000000000000000000000000000500000",
    "0x59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c"
    ]
返回:

Boolean - 如果提交成功完成则返回true,否则返回false。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0", "method":"eth_submitHashrate", "params":["0x0000000000000000000000000000000000000000000000000000000000500000", "0x59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c"],"id":73}'

// Result
{
  "id":73,
  "jsonrpc":"2.0",
  "result": true
}

db_putString

在本地数据库中存储一个字符串。

请注意,此功能已被弃用,将来会被删除。

参数
  1. String - 数据库名称。
  2. String - Key名称.
  3. String - 存储的字符串.
    params: [
    "testDB",
    "myKey",
    "myString"
    ]
    
返回

Boolean - 如果存储值则返回true,否则返回false。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"db_putString","params":["testDB","myKey","myString"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": true
}

db_getString

从本地数据库返回字符串。
请注意,此功能已被弃用,将来会被删除。

参数
  1. String - 数据库名称.
  2. String - Key名称.
params: [
  "testDB",
  "myKey",
]
返回

String - 先前存储的字符串。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"db_getString","params":["testDB","myKey"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": "myString"
}

db_putHex

将二进制数据存储在本地数据库中。

请注意,此功能已被弃用,将来会被删除。

参数
  1. String - 数据库名称。
  2. String - Key名称.
  3. DATA - 要存储的数据.
params: [
  "testDB",
  "myKey",
  "0x68656c6c6f20776f726c64"
]
返回

Boolean - 如果存储值则返回true,否则返回false。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"db_putHex","params":["testDB","myKey","0x68656c6c6f20776f726c64"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": true
}

db_getHex

从本地数据库返回二进制数据。
请注意,此功能已被弃用,将来会被删除。

参数
  1. String - 数据库名称.
  2. String - Key名称.
params: [
  "testDB",
  "myKey",
]
返回

DATA - 以前存储的数据。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"db_getHex","params":["testDB","myKey"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": "0x68656c6c6f20776f726c64"
}

shh_version

返回当前whisper协议版本。

参数

none

返回

String - 返回当前whisper协议版本。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_version","params":[],"id":67}'

// Result
{
  "id":67,
  "jsonrpc": "2.0",
  "result": "2"
}

shh_post

发送一个whisper消息.

参数
  1. Object - whisper端口对象:
  2. from: DATA, 60 Bytes - (可选)发送人的身份。
  3. to: DATA, 60 Bytes - (可选)接收者的身份。当whisper将加密消息,以便只有接收者可以解密它。
  4. topics: Array of DATA - DATA主题数组,供接收方识别消息。
  5. payload: DATA - 消息的有效负载。
  6. priority: QUANTITY - 范围内的优先级整数 ...(?)。
  7. ttl: QUANTITY - 以秒为单位的整数时间。
params: [{
  from: "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1",
  to: "0x3e245533f97284d442460f2998cd41858798ddf04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a0d4d661997d3940272b717b1",
  topics: ["0x776869737065722d636861742d636c69656e74", "0x4d5a695276454c39425154466b61693532"],
  payload: "0x7b2274797065223a226d6",
  priority: "0x64",
  ttl: "0x64",
}]
返回

Boolean - 如果消息已发送,则返回true,否则返回false。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_post","params":[{"from":"0xc931d93e97ab07fe42d923478ba2465f2..","topics": ["0x68656c6c6f20776f726c64"],"payload":"0x68656c6c6f20776f726c64","ttl":0x64,"priority":0x64}],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": true
}

shh_newIdentity

Creates new whisper identity in the client.
在客户端创建新的whisper身份。

参数

none

返回

DATA, 60 Bytes - 新识别的地址。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newIdentity","params":[],"id":73}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xc931d93e97ab07fe42d923478ba2465f283f440fd6cabea4dd7a2c807108f651b7135d1d6ca9007d5b68aa497e4619ac10aa3b27726e1863c1fd9b570d99bbaf"
}

shh_hasIdentity

检查客户是否持有指定身份的私钥。

参数

DATA, 60 Bytes - 要检查的身份地址。

params: [
  "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"
]
返回

Boolean - 如果客户端持有该身份的私钥,则返回true,否则返回false。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_hasIdentity","params":["0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": true
}

shh_newGroup

(?)

参数

none

返回

DATA, 60 Bytes - 新组的地址 (?)

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newIdentity","params":[],"id":73}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xc65f283f440fd6cabea4dd7a2c807108f651b7135d1d6ca90931d93e97ab07fe42d923478ba2407d5b68aa497e4619ac10aa3b27726e1863c1fd9b570d99bbaf"
}

shh_addToGroup

(?)

参数

DATA, 60 Bytes - 要添加到组的标识地址(?).

params: [
  "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"
]
返回

Boolean - 如果身份已成功添加到组中,则返回true,否则返回false(?).

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_hasIdentity","params":["0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": true
}

shh_newFilter

当客户端收到与过滤器选项匹配的whisper消息时,创建过滤器来通知。

参数

Object - 过滤器操作:

  • to: DATA, 60 Bytes - (可选)接收者的身份。如果客户端拥有该身份的私钥,它将尝试解密任何传入的消息。
  • topics: Array of DATA - 传入消息的主题应与之匹配的DATA主题数组。你可以使用以下组合:
    • [A, B] = A && B
    • [A, [B, C]] = A && (B || C)
    • [null, A, B] = ANYTHING && A && B null works as a wildcard
      params: [{
      "topics": ['0x12341234bf4b564f'],
      "to": "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"
      }]
返回

QUANTITY - 新创建的过滤器.

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newFilter","params":[{"topics": ['0x12341234bf4b564f'],"to": "0x2341234bf4b2341234bf4b564f..."}],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": "0x7" // 7
}

shh_uninstallFilter

卸载指定ID的过滤器。在不再需要监听时,应始终调用。 此外,过滤器一段时间没有用shh_getFilterChanges请求时的超时时间。

参数
  1. QUANTITY - 过滤器id。
params: [
  "0x7" // 7
]
返回

Boolean - 如果过滤器已成功卸载,则为true,否则为false。

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_uninstallFilter","params":["0x7"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": true
}

shh_getFilterChanges

wisper过滤器的poll方法。自上次调用此方法以来返回新消息。

请注意,调用shh_getMessages方法将重置此方法的缓冲区,以便您不会收到重复的消息。

参数

QUANTITY - 过滤器id.

params: [
  "0x7" // 7
]
返回

Array - 自上次poll后收到的消息数组:
hash: DATA, 32 Bytes (?) - 消息的hash。
from: DATA, 60 Bytes - 消息的发送人,如果指定了发送人。
to: DATA, 60 Bytes - 消息的接收者,如果指定了接收者。
expiry: QUANTITY - 此消息应该过期的时间的整数(以秒为单位)(?).
ttl: QUANTITY - 消息应该以秒为单位在系统中浮动的时间的整数 (?).
sent: QUANTITY - 消息发送时的unix时间戳的整数。
topics: Array of DATA - 包含消息的DATA主题数组。
payload: DATA - 消息的有效负载。
workProved: QUANTITY - 此消息在发送前需要完成的工作 (?).

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_getFilterChanges","params":["0x7"],"id":73}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": [{
    "hash": "0x33eb2da77bf3527e28f8bf493650b1879b08c4f2a362beae4ba2f71bafcd91f9",
    "from": "0x3ec052fc33..",
    "to": "0x87gdf76g8d7fgdfg...",
    "expiry": "0x54caa50a", // 1422566666
    "sent": "0x54ca9ea2", // 1422565026
    "ttl": "0x64" // 100
    "topics": ["0x6578616d"],
    "payload": "0x7b2274797065223a226d657373616765222c2263686...",
    "workProved": "0x0"
    }]
}

shh_getMessages

获取匹配过滤器的所有消息,这些消息仍然存在于节点的缓冲区中。

注意,调用此方法也会重置shh_getFilterChanges方法的缓冲区,以便您不会收到重复的消息。

参数

QUANTITY - 过滤器id.

params: [
  "0x7" // 7
]
返回

参考 shh_getFilterChanges 返回

例子
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"shh_getMessages","params":["0x7"],"id":73}'

Result see 参考 shh_getFilterChanges 返回






发表于: 2月前   最后更新时间: 21天前   游览量:362
上一条: 查询智能合约的成员变量 - ethereumj
下一条: 以太坊ABI介绍

评论…


  • 评论…
    • in this conversation
      提问