GetBdnFBTxnStateDiffStream
Name: GetBdnFBTxnStateDiffStream
The GetBdnFBTxnStateDiffStream
stream provides low-latency access to transaction state diffs for newly produced Flashblocks on the Base network, parsed into protobuf format for immediate use. Transaction state diffs show the changes each transaction makes to chain state before finalization.
This is a real-time WS/gRPC, transaction state diff data stream.
Request
Method: GetBdnFBTxnStateDiffStream
Parameters
Parameter
Description
Instructions & Notes
addresses
Stream transaction traces that mention one of these addresses
[Optional] List of strings. If omitted, the stream includes state diffs of all transactions.
Example: WebSocket using CLI
wscat -H "Authorization: <AUTH_HEADER>" \
-c wss://base.blxrbdn.com:5005/ws \
--wait 1000 \
--execute '{"jsonrpc": "2.0", "id": 1, "method": "subscribe", "params": [ "GetBdnFBTxnStateDiffStream", {} ]}'
Example: Test with grpcurl
grpcurl -H "Authorization: <AUTH_HEADER>" \
-H "Content-Type: application/grpc" \
-d '{"addresses":["0x4200000000000000000000000000000000000006"]}' \
base.blxrbdn.com:443 \
streamerapi.Api/GetBdnFBTxnStateDiffStream
Example: Golang
package main
import (
"context"
"fmt"
"time"
"github.com/bloXroute-Labs/base-streamer-client-go/provider"
streamerapi "github.com/bloXroute-Labs/base-streamer-proto/streamer_api"
"github.com/joho/godotenv"
)
func main() {
_ = godotenv.Load() // Set you AUTH_HEADER in .env file
err := ListenForBdnFBTxnStateDiffStream(10)
if err != nil {
panic(err)
}
}
func ListenForBdnFBTxnStateDiffStream(numberOfBlocks uint64) error {
grpcClient, err := provider.NewGRPCClient()
if err != nil {
return err
}
stateDiffsChan := make(chan *streamerapi.GetBdnFBTxnStateDiffStreamResponse)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
stream, err := grpcClient.GetBdnFBTxnStateDiffStream(ctx, nil) // Optionally filter by mentioned addresses
if err != nil {
return fmt.Errorf("failed to get stream with: %v", err)
}
stream.Into(stateDiffsChan)
fmt.Println("waiting on state diffs channel")
for range numberOfBlocks {
stateDiff, ok := <-stateDiffsChan
if !ok {
return fmt.Errorf("state diffs channel closed")
}
updateTime := time.Now()
// Display to user
fmt.Printf("Bloxroute BDN Flashblock txn state diff at %v: block_number: %v, block_position: %v, flashblock_index: %v, tx_hash: %v, is_success: %v\n",
updateTime.UTC(), *stateDiff.BlockNumber, *stateDiff.BlockPosition, *stateDiff.FlashblockIndex, *stateDiff.TxHash, *stateDiff.IsSuccess)
for k, v := range stateDiff.Trace.Pre {
balance := ""
if v.Balance != nil {
balance = *v.Balance
}
fmt.Printf("pre: %s: balance: %s, storage: %+v\n", k, balance, v.Storage)
}
fmt.Println("")
for k, v := range stateDiff.Trace.Post {
balance := ""
if v.Balance != nil {
balance = *v.Balance
}
fmt.Printf("post: %s: balance: %s, storage: %+v\n", k, balance, v.Storage)
}
fmt.Println("----------------------")
}
return nil
}
Response (txn state diff)
Full response details & format can be found here: https://github.com/bloXroute-Labs/base-streamer-proto/blob/develop/proto/streamer_api.proto
<<< {
"blockNumber": "35355567",
"blockPosition": "266",
"flashblockIndex": "10",
"txHash": "0xcde6859f0b483748ae6d85f510ac462e927f02532bf3eae89dde7336b64a878c",
"isSuccess": true,
"trace": {
"pre": {
"0x0ad08370c76ff426f534bb2affd9b5555338ee68": {
"balance": "0x0"
},
"0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae": {
"balance": "0x0"
},
"0x16613524e02ad97edfef371bc883f2f5d6c480a5": {
"balance": "0x0"
},
"0x20183dc92e044e6a14c4afa5ce202519a0af4067": {
"balance": "0x0",
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000000": "0x000100000a000a000201b60c000000000000011040a247b2b9a749de215adc15",
"0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000001028f86b968ea8de59efef293d8fa7",
"0x000000000000000000000000000000000000000000000000000000000000000b": "0x0100000000000000000001a84b99d4c5f6c25501820000039f70581068c153c3"
}
},
"0x215e278c44787dffd33b58311a0e9bb0657c1d8d": {
"balance": "0x0"
},
"0x2ce6311ddae708829bc0784c967b7d77d19fd779": {
"balance": "0x0"
},
"0x31a9b1835864706af10103b31ea2b79bdb995f5f": {
"balance": "0x0"
},
"0x3334cf67bfdcc925477950684474bb4603632789": {
"balance": "0x0"
},
"0x3b0aa7d38bf3c103bf02d1de2e37568cbed3d6e8": {
"balance": "0x1"
},
"0x3b2b96ba7f07d592deb7831e2e5d0273cde6a1a0": {
"balance": "0x0",
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000000": "0x00010000140014000b04a68900000000003f4acc18a777c19109bcd0e1aa4452",
"0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000000000000018eee3f715a1b327bb33586bf79",
"0x0000000000000000000000000000000000000000000000000000000000000014": "0x010000055c00000000021505524ec13495c67b2d1900000be054be7e68c15335"
}
},
"0x3c2dfe6d969ad9de9d566727607eb2e9139d3596": {
"balance": "0x0",
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000006": "0x00000100640064004204a61800000000003eef156dddb0f5fcbd5b0ee30fa664",
"0x0000000000000000000000000000000000000000000000000000000000000007": "0x000000000000000000000000000000000000001489269bfed63f1e06f393b6a4",
"0x000000000000000000000000000000000000000000000000000000000000000a": "0x00000000000008790012793ed1e3ad5900000000000000000000000097286a4b",
"0x0000000000000000000000000000000000000000000000000000000000000057": "0x01000271000000000000292f280c9d60563dbe6a830000173da3a83868c15221"
}
},
"0x4200000000000000000000000000000000000006": {
"balance": "0x2786b1582384b63cfe51",
"storage": {
"0x51f59d35c70300bc2d4fa7806c495b313e476b2d51285f7dc22af52ad4365c89": "0x000000000000000000000000000000000000000000000004acd08d4d3302a702",
"0x64a768cc030388cd72d492ab760ba7360573b25695129208ed87b018bff88676": "0x0000000000000000000000000000000000000000000000000ff86060cf2b1440"
}
},
"0x4200000000000000000000000000000000000011": {
"balance": "0x5883d0756ff82ec51"
},
"0x4200000000000000000000000000000000000019": {
"balance": "0x13bff4fa2bb27adc1"
},
"0x420000000000000000000000000000000000001a": {
"balance": "0x1d1e14d61112b89"
},
"0x5e7bb104d84c7cb9b682aac2f3d509f5f406809a": {
"balance": "0x0"
},
"0x8267fcd8e1cace20d483e368727a9d4a35a02b5a": {
"balance": "0x83f5c7474b509"
},
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
"balance": "0x22d1a2c0d26ed3",
"storage": {
"0x3dc6befb529c477ccaae72889abc203186f2cb4c25baf9e741fe5e45e91e83ec": "0x00000000000000000000000000000000000000000000000000000050129e7a23",
"0x3fd0d340b6ee390f4063ccc31c1c0d6f307898faabb23775e951de3510352a1e": "0x000000000000000000000000000000000000000000000000000000d0277fe9b0",
"0xc43e5a5855b77448e9fd87622eb6afad130ff5da04e4033079e6a4b94ec3cc25": "0x000000000000000000000000000000000000000000000000000000009591721c",
"0xdceb6bee0c87d6fbc41bf2b42ce11b85d7adb63ce9af58bb75c0b238b1d797dc": "0x0000000000000000000000000000000000000000000000000000000011de5dda",
"0xf2b244caf6b1ee1eb87c63bd2f37a244d00181d4fc3a95afee2b95e8778c69e3": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffa6a3d83a",
"0xfbe1e92e20c0e088f2d489a74596737a56b2fc3503e10af0bb4240b5e899a66b": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffff0fa22a8a3a1"
}
},
"0xac4c6e212a361c968f1725b4d055b47e63f80b75": {
"balance": "0x0"
},
"0xad27827c312cd5e71311d68e180a9872d42de23d": {
"balance": "0x49590"
},
"0xb300000b72deaeb607a12d5f54773d1c19c7028d": {
"balance": "0x48b0c8a9c5f86"
},
"0xdb45818a6db280ecfeb33cbebd445423d0216b5d": {
"balance": "0x0"
},
"0xdbc6998296caa1652a810dc8d3baf4a8294330f1": {
"balance": "0x0",
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000006": "0x00000107d007d00572fd0fb1000000000000000000044fcc9df21d39d12a9e63",
"0x0000000000000000000000000000000000000000000000000000000000000008": "0x000000000000000000000000000000000000009640cbd2a9aed64989fe1f0444",
"0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000016f0019ac000000000000000013bada12e184b0e3",
"0x0000000000000000000000000000000000000000000000000000000000000587": "0x010000000000000000878439625f2d43f3a5880e56ffffcbcdd33c7468c1055b"
}
},
"0xe1bfa25468af64e366ddafc9d91bcc6c97439a14": {
"balance": "0x0",
"storage": {
"0x37e6dc13c068bb909eed8b3e00abcf65959950251ccf7813d3f0998dc1405c5b": "0x00000000000000000000000000000000000000000000111aca4aabaca76272ba",
"0x8531e790573ae81c113d98b2985a12deb7058dcb20f43551606a5fd79c607115": "0x000000000000000000000000000000000000000000002c70590829477bf40e37",
"0xa6dfa914d28676ae63d9d618165d503f282511e562cfddbdf80b8a97bea706d5": "0x00000000000000000000000000000000000000000000054460c4d9bccb23dbe9",
"0xbae135dfedebdd66a0c59d492f1e69025652b231758f5ebf706377ac3f362649": "0x000000000000000000000000000000000000000000095e802c12596bc677fc9f"
}
},
"0xec8e5342b19977b4ef8892e02d8daecfa1315831": {
"balance": "0x0"
}
},
"post": {
"0x20183dc92e044e6a14c4afa5ce202519a0af4067": {
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000000": "0x000100000a000a000301b5e8000000000000010fc2fd047e907bdba9af1bee92",
"0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000102a18352a3a3ddeb2bc38271fcb1b",
"0x000000000000000000000000000000000000000000000000000000000000000b": "0x0100000000000000000001a84e43b898498c75cdb6000003a0485d0068c15441"
}
},
"0x3b2b96ba7f07d592deb7831e2e5d0273cde6a1a0": {
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000000": "0x00010000140014000c04a65300000000003f1f5e359161f8e02f924222f1fd38",
"0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000000000000000018ef571a026e3af72f0a752739d",
"0x0000000000000000000000000000000000000000000000000000000000000014": "0x010000055c0000000002157269fe11b54e4aeda57e00000be533ebdc68c15441"
}
},
"0x3c2dfe6d969ad9de9d566727607eb2e9139d3596": {
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000006": "0x00000100640064004304a61000000000003ee9390d13bf8a989e320f2613527f",
"0x0000000000000000000000000000000000000000000000000000000000000007": "0x000000000000000000000000000000000000001489631f56177a5f0aaf7952d9",
"0x000000000000000000000000000000000000000000000000000000000000000a": "0x00000000000008790012793ed1e3ad59000000000000000000000000972b15c3",
"0x0000000000000000000000000000000000000000000000000000000000000057": "0x010002710000000000002954828457acd7135101790000174786b59868c15441"
}
},
"0x4200000000000000000000000000000000000006": {
"storage": {
"0x51f59d35c70300bc2d4fa7806c495b313e476b2d51285f7dc22af52ad4365c89": "0x000000000000000000000000000000000000000000000004acbc0ccf430828c4",
"0x64a768cc030388cd72d492ab760ba7360573b25695129208ed87b018bff88676": "0x000000000000000000000000000000000000000000000000100ce0debf25927e"
}
},
"0x4200000000000000000000000000000000000011": {
"balance": "0x5883d07d0fef0a7b9"
},
"0x4200000000000000000000000000000000000019": {
"balance": "0x13bff5175044201c9"
},
"0x420000000000000000000000000000000000001a": {
"balance": "0x1d1e14e1f1629b9"
},
"0x8267fcd8e1cace20d483e368727a9d4a35a02b5a": {
"balance": "0x83d0f6de7a769"
},
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
"storage": {
"0x3dc6befb529c477ccaae72889abc203186f2cb4c25baf9e741fe5e45e91e83ec": "0x00000000000000000000000000000000000000000000000000000050141ba828",
"0x3fd0d340b6ee390f4063ccc31c1c0d6f307898faabb23775e951de3510352a1e": "0x000000000000000000000000000000000000000000000000000000d02d74b6c1",
"0xc43e5a5855b77448e9fd87622eb6afad130ff5da04e4033079e6a4b94ec3cc25": "0x000000000000000000000000000000000000000000000000000000009ffdd4e0",
"0xf2b244caf6b1ee1eb87c63bd2f37a244d00181d4fc3a95afee2b95e8778c69e3": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff94c57a60",
"0xfbe1e92e20c0e088f2d489a74596737a56b2fc3503e10af0bb4240b5e899a66b": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffff0fa10ca45c7"
}
},
"0xdbc6998296caa1652a810dc8d3baf4a8294330f1": {
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000006": "0x00000107d007d00573fd0fb2000000000000000000044fccc3b9f77152eda412",
"0x0000000000000000000000000000000000000000000000000000000000000008": "0x000000000000000000000000000000000000009640cc834066f15b5e76d1a7b9",
"0x000000000000000000000000000000000000000000000000000000000000000a": "0x0000000000000000000000016f002134000000000000000013bada12e184b0e3",
"0x0000000000000000000000000000000000000000000000000000000000000587": "0x010000000000000000878cbb37a5ae41ba10d320ffffffcae5f103b668c15441"
}
},
"0xe1bfa25468af64e366ddafc9d91bcc6c97439a14": {
"storage": {
"0x37e6dc13c068bb909eed8b3e00abcf65959950251ccf7813d3f0998dc1405c5b": "0x000000000000000000000000000000000000000000001103e02fbf18455665bc",
"0x8531e790573ae81c113d98b2985a12deb7058dcb20f43551606a5fd79c607115": "0x000000000000000000000000000000000000000000002bcf4e5be6c007109111",
"0xa6dfa914d28676ae63d9d618165d503f282511e562cfddbdf80b8a97bea706d5": "0x0000000000000000000000000000000000000000000006583419872001598f78",
"0xbae135dfedebdd66a0c59d492f1e69025652b231758f5ebf706377ac3f362649": "0x000000000000000000000000000000000000000000095e244d84db246731d334"
}
}
}
}
}
Last updated