Commit 5f18aaad authored by Alexandru Vasile's avatar Alexandru Vasile Committed by GitHub
Browse files

rpc: Implement `transaction` RPC API (#12328)



* rpc/tx: Add transaction structures for serialization

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Add public facing `TransactionEvent`

To circumvent the fact that serde does not allow mixing
`#[serde(tag = "event")]` with
`#[serde(tag = "event", content = "block")]`
the public facing subscription structure is serialized
and deserialized to an intermmediate representation.

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Add trait for the `transaction` API

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Convert RPC errors to transaction events

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Implement `transaction` RPC methods

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* tx-pool: Propagate tx index to events

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* tx-pool: Adjust testing to reflect tx index in events

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Convert tx-pool events for the new RPC spec

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Convert tx-pool `FinalityTimeout` event to `Dropped`

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* service: Enable the `transaction` API

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Add tests for tx event encoding and decoding

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* tx: Add indentation for subscriptions

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Fix documentation

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Serialize usize to hex

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* tx-pool: Rename closure parameters

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* service: Separate RPC spec versions

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Use `H256` for testing block's hash

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Serialize numbers as string

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* tx-pool: Backward compatibility with RPC v1

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Update client/rpc-spec-v2/src/transaction/transaction.rs

Co-authored-by: default avatarNiklas Adolfsson <[email protected]>

* rpc/tx: Remove comment about serde clone

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* rpc/tx: Use RPC custom error code for invalid tx format

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Update client/rpc-spec-v2/src/transaction/event.rs

Co-authored-by: default avatarJames Wilson <[email protected]>

* rpc/tx: Adjust internal structures for serialization/deserialization

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

Signed-off-by: default avatarAlexandru Vasile <[email protected]>
Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
Co-authored-by: default avatarJames Wilson <[email protected]>
parent 896a9fc7
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment