bdledger-apis/test.md
huyingcong 08f427899c change go_package path
Summary: change go_package path

Test Plan: none

Reviewers: nex, wuyi

Reviewed By: nex

Differential Revision: https://phabricator.internetapi.cn/D29
2020-01-08 10:04:41 +08:00

23 KiB
Raw Permalink Blame History

Test

Basic types

common.ClientVersionResponse

message ClientVersionResponse {
    string version = 1; // 节点客户端版本
}

TransactionType

enum TransactionType {
  RECORD = 0; // 通用数据记录
  MESSAGE = 1; // 消息
  CONTRACT_CREATION = 2; // 合约创建
  CONTRACT_INVOCATION = 3; // 合约调用
  CONTRACT_STATUS = 4; // 合约状态
}

Transaction (in Transaction ledger)

message Transaction {
  bytes block_hash = 1;     // 事务所在的区块的哈希,当事务处于待确认状态时为`null`
  uint32 index = 2;         // 事务在区块中的位置 index当事务处于待确认状态时为`null`
  bytes hash = 3;           // 事务的哈希
  TransactionType type = 4; // 事务类型
  bytes from = 5;           // 发送账户地址
  uint64 nonce = 6;         // 这条事务之前发送者所发送的事务数量
  bytes to = 7;             // 接收账户地址,或者调用的合约地址,或者`null`如为合约创建
  bytes data = 8;           // 数据或合约代码
  bytes v = 9;              // ECDSA recovery id
  bytes r = 10;             // ECDSA signature r
  bytes s = 11;             // ECDSA signature s
}

Transaction (in Accounting chain)

message Transaction {
  uint64 block_number = 1; // 事务所在的区块的区块号,当事务处于待确认状态时为`null`
  bytes block_hash = 2; // 事务所在的区块的哈希,当事务处于待确认状态时为`null`
  uint32 index = 3; // 事务在区块中的位置index当事务处于待确认状态时为`null`
  bytes hash = 4; // 事务的哈希
  TransactionType type = 5; // 事务类型
  bytes from = 6; // 发送账户地址
  uint64 nonce = 7; // 这条事务之前发送者所发送的事务数量
  bytes to = 8; // 接收账户地址,或者调用的合约地址,或者`null`如为合约创建
  bytes data = 9; // 数据或合约代码
  bytes v = 10; // ECDSA recovery id
  bytes r = 11; // ECDSA signature r
  bytes s = 12; // ECDSA signature s
}

Block (in Transaction ledger)

message Block {
  uint64 index = 1;                      // 事务链本地区块索引,当区块处于待确认状态时为`null`
  bytes hash = 2;                        // 区块的哈希,当区块处于待确认状态时为`null`
  repeated bytes parent_hashes = 3;      // 父区块的哈希
  repeated bytes witnesses = 4;          // 见证者账户地址
  int64 timestamp = 5;                   // 区块产生时的 UNIX 时间戳,单位为秒
  uint64 size = 6;                       // 区块大小的字节数
  bytes transactions_root = 7;           // 区块的事务树根
  repeated Transaction transactions = 8; // 事务对象的数组,或为空
  repeated bytes transaction_hashes = 9; // 20字节的交易哈希的数组或为空
}

Block (in Accounting chain)

message Block {
  uint64 number = 1; // 区块号,当区块处于待确认状态时为`null`
  bytes hash = 2; // 区块的哈希,当区块处于待确认状态时为`null`
  bytes parent_hash = 3; // 父区块的哈希
  repeated bytes witnesses = 4; // 见证者账户地址的数组
  int64 timestamp = 5; // 区块产生时的UNIX时间戳
  uint64 size = 6; // 区块大小的字节数
  bytes transactions_root = 7; // 区块的事务树根
  repeated Transaction transactions = 8; // 事务对象的数组,或为空
  repeated bytes transaction_hashes = 9; // 20字节的交易哈希的数组或为空
}

Transaction ledger API

ClientVersion

Request

google.protobuf.Empty

Response

bdledger.api.common.ClientVersionResponse

Test cases

1

Request

(empty)

Response

version: 'TxLedgerGo/v0.0.1alpha/darwin/go1.11'

CreateLedger

Request

message CreateLedgerRequest {
  string name = 1;
}

Response

message CreateLedgerResponse {
  bool ok = 1;
}

Test cases

1

Request

name: 'test'

Response

ok: true
2

Request

Client:

name: null

On the wire:

name: '' (defualt value)

Error

code: Code.InvalidArgument
message: 'name must not be empty'
details:

GetLedgers

Request

google.protobuf.Empty

Response

message GetLedgersResponse {
  repeated string ledgers = 1;
}

Test cases

1

Request

(empty)

Response

ledgers:
  - 'first'
  - 'second'
  - 'third'

BlockCount

Request

message BlockCountRequest {
  string ledger = 1;
}

Response

message BlockCountResponse {
  uint64 block_count = 1;
}

Test cases

1

Request

ledger: 'test'

Response

block_count: 2018
2

Request

Client:

ledger: null

On the wire:

ledger: '' (defualt value)

Error

code: Code.InvalidArgument
message: 'ledger must not be empty'
details:

GetBlocks

Request

message GetBlocksRequest {
  string ledger = 1;
  uint64 from_index = 2;
  uint32 count = 3; // Optional, default to 10, max value is 10
  bool full_transaction = 4;
}

Response

message GetBlocksResponse {
  repeated Block blocks = 1;
}

Test cases

1

Request

ledger: 'test'
from_index: 2018
count: 1
full_transactions: true

Response

blocks:
  - index: 2018
    hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
      - block_hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
        index: 0
        hash: 0x0404040404040404040404040404040404040404 (in bytes)
        type: TransactionType.RECORD
        from: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
        nonce: 2018
        to: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
        data: 0xdeadbeef (in bytes)
        v: 0x25 (in bytes)
        r: 0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea (in bytes)
        s: 0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c (in bytes)
      - block_hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
        index: 1
        hash: 0x1313131313131313131313131313131313131313 (in bytes)
        type: TransactionType.MESSAGE
        from: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
        nonce: 2019
        to: 0xfeedbabefeedbabefeedbabefeedbabefeedbabe (in bytes)
        data: (empty bytes, default value)
        v: 0x25 (in bytes)
        r: 0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea (in bytes)
        s: 0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c (in bytes)
    transaction_hashes:
2

Request

ledger: 'test'
from_index: 2018

Response

blocks:
  - index: 2018
    hash: 0x0101010101010101010101010101010101010101 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2019
    hash: 0x0202020202020202020202020202020202020202 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2020
    hash: 0x0303030303030303030303030303030303030303 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2021
    hash: 0x0404040404040404040404040404040404040404 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2022
    hash: 0x0505050505050505050505050505050505050505 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2023
    hash: 0x0606060606060606060606060606060606060606 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2024
    hash: 0x0707070707070707070707070707070707070707 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2025
    hash: 0x0808080808080808080808080808080808080808 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2026
    hash: 0x0909090909090909090909090909090909090909 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
  - index: 2027
    hash: 0x1010101010101010101010101010101010101010 (in bytes)
    parent_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    witnesses:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)
      - 0x5252525252525252525252525252525252525252 (in bytes)
    timestamp: 2018050400000
    size: 20180504
    transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
    transactions:
    transaction_hashes:
      - 0x0404040404040404040404040404040404040404 (in bytes)
      - 0x1313131313131313131313131313131313131313 (in bytes)

SendTransaction

Request

message SendTransactionRequest {
  string ledger = 1;
  message Transaction {
    TransactionType type = 1;
    bytes from = 2;
    bytes to = 3;
    bytes data = 4;
  }
  Transaction transaction = 2;
}

Response

message SendTransactionResponse {
  bytes hash = 1;
}

Test cases

1

Request

ledger: 'test'
transaction:
  type: TransactionType.MESSAGE
  from: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
  to: 0xfeedbabefeedbabefeedbabefeedbabefeedbabe (in bytes)
  data: 0xdeadbeef (in bytes)

Response

hash: 0xd15ea5edd15ea5edd15ea5edd15ea5edd15ea5edd15ea5edd15ea5edd15ea5ed (in bytes)
2

Request

ledger: 'test'
transaction:
  type: TransactionType.MESSAGE
  from: null (in bytes)
  to: 0x50bada55 (in bytes)
  data: null (in bytes)

Error

code: Code.InvalidArgument
message: 'Multiple invalid arguments'
details:
  - field_violations: (of type InvalidArgument) 
    - field: 'transaction.from'
      description: 'from must not be empty'
    - field: 'transaction.to'
      description: 'to must be a valid 20-byte address' 

Accounting chain API

ClientVersion

Request

google.protobuf.Empty

Response

bdledger.api.common.ClientVersionResponse

Test cases

1

Request

(empty)

Response

version: 'AcChainGo/v0.0.1alpha/darwin/go1.11'

BlockNumber

Request

message BlockNumberRequest {
  string ledger = 1;
}

Response

message BlockNumberResponse {
  uint64 block_number = 1;
}

Test cases

1

Request

ledger: 'test'

Response

block_number: 2018
2

Request

Client:

ledger: null

On the wire:

ledger: '' (defualt value)

Error

code: Code.InvalidArgument
message: 'ledger must not be empty'
details:

GetBlockByNumber

Request

message GetBlockByNumberRequest {
  string ledger = 1;
  uint64 number = 2;
  bool full_transaction = 3;
}

Response

Block

Test cases

1

Request

ledger: 'test'
number: 2018
full_transaction: true

Response

number: 2018
hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
parent_hash: 0xbabefacebabefacebabefacebabefacebabeface (in bytes)
witnesses:
  - 0x0404040404040404040404040404040404040404 (in bytes)
  - 0x1313131313131313131313131313131313131313 (in bytes)
  - 0x5252525252525252525252525252525252525252 (in bytes)
timestamp: 2018050400000
size: 20180504
transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
transactions:
  - block_number: 2018
    block_hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
    index: 0
    hash: 0x0404040404040404040404040404040404040404 (in bytes)
    type: TransactionType.RECORD
    from: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
    nonce: 2018
    to: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
    data: 0xdeadbeef (in bytes)
    v: 0x25 (in bytes)
    r: 0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea (in bytes)
    s: 0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c (in bytes)
  - block_number: 2018
    block_hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
    index: 1
    hash: 0x1313131313131313131313131313131313131313 (in bytes)
    type: TransactionType.MESSAGE
    from: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
    nonce: 2019
    to: 0xfeedbabefeedbabefeedbabefeedbabefeedbabe (in bytes)
    data: (empty bytes, default value)
    v: 0x25 (in bytes)
    r: 0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea (in bytes)
    s: 0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c (in bytes)
transaction_hashes:
2

Request

Client:

ledger: 'test'
number: 2018
full_transaction: null

On the wire:

ledger: 'test'
number: 2018
full_transaction: false (defualt value)

Response

number: 2018
hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
parent_hash: 0xbabefacebabefacebabefacebabefacebabeface (in bytes)
witnesses:
  - 0x0404040404040404040404040404040404040404 (in bytes)
  - 0x1313131313131313131313131313131313131313 (in bytes)
  - 0x5252525252525252525252525252525252525252 (in bytes)
timestamp: 2018050400000
size: 20180504
transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
transactions:
transaction_hashes:
  - 0x0404040404040404040404040404040404040404 (in bytes)
  - 0x1313131313131313131313131313131313131313 (in bytes)

GetBlockByHash

Request

message GetBlockByHashRequest {
  string ledger = 1;
  bytes hash = 2;
  bool full_transaction = 3;
}

Response

Block

Test cases

1

Request

ledger: 'test'
hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
full_transaction: false

Response

number: 2018
hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
parent_hash: 0xbabefacebabefacebabefacebabefacebabeface (in bytes)
witnesses:
  - 0x0404040404040404040404040404040404040404 (in bytes)
  - 0x1313131313131313131313131313131313131313 (in bytes)
  - 0x5252525252525252525252525252525252525252 (in bytes)
timestamp: 2018050400000
size: 20180504
transactions_root: 0x50bada5550bada5550bada5550bada5550bada55 (in bytes)
transactions:
transaction_hashes:
  - 0x0404040404040404040404040404040404040404 (in bytes)
  - 0x1313131313131313131313131313131313131313 (in bytes)

GetTransactionByHash

Request

message GetTransactionByHashRequest {
  string ledger = 1;
  bytes hash = 2;
}

Response

Transaction

Test cases

1

Request

ledger: 'test'
hash: 0x0404040404040404040404040404040404040404 (in bytes)

Response

block_number: 2018
block_hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
index: 0
hash: 0x0404040404040404040404040404040404040404 (in bytes)
type: TransactionType.RECORD
from: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
nonce: 2018
to: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
data: 0xdeadbeef (in bytes)
v: 0x25 (in bytes)
r: 0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea (in bytes)
s: 0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c (in bytes)

GetTransactionByBlockNumberAndIndex

Request

message GetTransactionByBlockNumberAndIndexRequest {
  string ledger = 1;
  uint64 block_number = 2;
  uint32 index = 3;
}

Response

Transaction

Test cases

1

Request

ledger: 'test'
block_number: 2018
index: 0

Response

block_number: 2018
block_hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
index: 0
hash: 0x0404040404040404040404040404040404040404 (in bytes)
type: TransactionType.RECORD
from: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
nonce: 2018
to: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
data: 0xdeadbeef (in bytes)
v: 0x25 (in bytes)
r: 0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea (in bytes)
s: 0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c (in bytes)

GetTransactionByBlockHashAndIndex

Request

message GetTransactionByBlockHashAndIndexRequest {
  string ledger = 1;
  bytes block_hash = 2;
  uint32 index = 3;
}

Response

Transaction

Test cases

1

Request

ledger: 'test'
block_hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
index: 0

Response

block_number: 2018
block_hash: 0xdeadc0dedeadc0dedeadc0dedeadc0dedeadc0de (in bytes)
index: 0
hash: 0x0404040404040404040404040404040404040404 (in bytes)
type: TransactionType.RECORD
from: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
nonce: 2018
to: 0xf00dcafef00dcafef00dcafef00dcafef00dcafe (in bytes)
data: 0xdeadbeef (in bytes)
v: 0x25 (in bytes)
r: 0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea (in bytes)
s: 0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c (in bytes)