diff --git a/Cargo.lock b/Cargo.lock index 13e43bc13b..f68b041ef1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -28,6 +28,41 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +[[package]] +name = "aead" +version = "0.6.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac8202ab55fcbf46ca829833f347a82a2a4ce0596f0304ac322c2d100030cd56" +dependencies = [ + "crypto-common 0.2.0-rc.4", + "inout", +] + +[[package]] +name = "aes" +version = "0.9.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e713c57c2a2b19159e7be83b9194600d7e8eb3b7c2cd67e671adf47ce189a05" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.11.0-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2be322be4a73a3a55ad74b9833238e76bfd6034ce69a05c1b41c879f6a3bdca6" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + [[package]] name = "ahash" version = "0.8.12" @@ -263,9 +298,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b26fdd571915bafe857fccba4ee1a4f352965800e46a53e4a5f50187b7776fa" +checksum = "459f98c6843f208856f338bfb25e65325467f7aff35dfeb0484d0a76e059134b" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -535,9 +570,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a14f21d053aea4c6630687c2f4ad614bed4c81e14737a9b904798b24f30ea849" +checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -549,9 +584,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d99282e7c9ef14eb62727981a985a01869e586d1dec729d3bb33679094c100" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -567,9 +602,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda029f955b78e493360ee1d7bd11e1ab9f2a220a5715449babc79d6d0a01105" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" dependencies = [ "const-hex", "dunce", @@ -583,9 +618,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10db1bd7baa35bc8d4a1b07efbf734e73e5ba09f2580fb8cee3483a36087ceb2" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" dependencies = [ "serde", "winnow 0.7.10", @@ -593,9 +628,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6185e98a79cf19010722f48a74b5a65d153631d2f038cabd250f4b9e9813b8ad" +checksum = "a285b46e3e0c177887028278f04cc8262b76fd3b8e0e20e93cea0a58c35f5ac5" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -1455,6 +1490,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.11.0-rc.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ef36a6fcdb072aa548f3da057640ec10859eb4e91ddf526ee648d50c76a949" +dependencies = [ + "hybrid-array", +] + [[package]] name = "bls12_381" version = "0.7.1" @@ -1669,6 +1713,17 @@ dependencies = [ "windows-link", ] +[[package]] +name = "cipher" +version = "0.5.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e12a13eb01ded5d32ee9658d94f553a19e804204f2dc811df69ab4d9e0cb8c7" +dependencies = [ + "block-buffer 0.11.0-rc.5", + "crypto-common 0.2.0-rc.4", + "inout", +] + [[package]] name = "clang-sys" version = "1.8.1" @@ -1733,7 +1788,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -1935,6 +1990,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.0-rc.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8235645834fbc6832939736ce2f2d08192652269e11010a6240f61b908a1c6" +dependencies = [ + "hybrid-array", + "rand_core 0.9.3", +] + [[package]] name = "ctor" version = "0.2.9" @@ -1945,6 +2010,15 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "ctr" +version = "0.10.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27e41d01c6f73b9330177f5cf782ae5b581b5f2c7840e298e0275ceee5001434" +dependencies = [ + "cipher", +] + [[package]] name = "cuda-config" version = "0.1.0" @@ -2198,7 +2272,7 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "const-oid", - "crypto-common", + "crypto-common 0.1.6", "subtle", ] @@ -2252,6 +2326,19 @@ dependencies = [ "spki", ] +[[package]] +name = "ecies" +version = "0.1.0" +source = "git+https://github.com/scroll-tech/ecies-rs#e32a93f736aac2158bf5982b8e4786b82be8b854" +dependencies = [ + "aes-gcm", + "digest 0.10.7", + "hkdf", + "k256", + "sha2 0.10.9", + "thiserror 2.0.12", +] + [[package]] name = "educe" version = "0.6.0" @@ -2396,7 +2483,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2830,6 +2917,15 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "ghash" +version = "0.6.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f88107cb02ed63adcc4282942e60c4d09d80208d33b360ce7c729ce6dae1739" +dependencies = [ + "polyval", +] + [[package]] name = "gimli" version = "0.31.1" @@ -3187,6 +3283,15 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + [[package]] name = "hmac" version = "0.12.1" @@ -3264,6 +3369,15 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "hybrid-array" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7116c472cf19838450b1d421b4e842569f52b519d640aee9ace1ebcf5b21051" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "0.14.32" @@ -3584,6 +3698,15 @@ dependencies = [ "serde", ] +[[package]] +name = "inout" +version = "0.2.0-rc.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1603f76010ff924b616c8f44815a42eb10fb0b93d308b41deaa8da6d4251fd4b" +dependencies = [ + "hybrid-array", +] + [[package]] name = "instant" version = "0.1.13" @@ -3785,7 +3908,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -4354,7 +4477,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.101", @@ -6116,6 +6239,17 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "polyval" +version = "0.7.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffd40cc99d0fbb02b4b3771346b811df94194bc103983efa0203c8893755085" +dependencies = [ + "cfg-if", + "cpufeatures", + "universal-hash", +] + [[package]] name = "portable-atomic" version = "1.11.1" @@ -6396,7 +6530,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -7787,7 +7921,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -8178,7 +8312,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-prover" version = "0.6.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=060be4c#060be4c0461b0a197c5be47fc74415165a0abe25" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=894441f#894441f56fceb9d8b7acff28822cca0cccc3e38e" dependencies = [ "base64 0.22.1", "bincode 1.3.3", @@ -8205,7 +8339,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types" version = "0.6.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=060be4c#060be4c0461b0a197c5be47fc74415165a0abe25" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=894441f#894441f56fceb9d8b7acff28822cca0cccc3e38e" dependencies = [ "alloy-primitives", "base64 0.22.1", @@ -8225,7 +8359,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-base" version = "0.6.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=060be4c#060be4c0461b0a197c5be47fc74415165a0abe25" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=894441f#894441f56fceb9d8b7acff28822cca0cccc3e38e" dependencies = [ "alloy-primitives", "alloy-serde 1.0.30", @@ -8238,7 +8372,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-batch" version = "0.6.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=060be4c#060be4c0461b0a197c5be47fc74415165a0abe25" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=894441f#894441f56fceb9d8b7acff28822cca0cccc3e38e" dependencies = [ "alloy-primitives", "c-kzg", @@ -8260,7 +8394,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-bundle" version = "0.6.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=060be4c#060be4c0461b0a197c5be47fc74415165a0abe25" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=894441f#894441f56fceb9d8b7acff28822cca0cccc3e38e" dependencies = [ "rkyv", "scroll-zkvm-types-base", @@ -8270,9 +8404,12 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-chunk" version = "0.6.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=060be4c#060be4c0461b0a197c5be47fc74415165a0abe25" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=894441f#894441f56fceb9d8b7acff28822cca0cccc3e38e" dependencies = [ "alloy-primitives", + "alloy-sol-types", + "ecies", + "itertools 0.14.0", "rkyv", "sbv-core", "sbv-helpers", @@ -8280,12 +8417,13 @@ dependencies = [ "sbv-trie", "scroll-zkvm-types-base", "serde", + "thiserror 2.0.12", ] [[package]] name = "scroll-zkvm-verifier" version = "0.6.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?rev=060be4c#060be4c0461b0a197c5be47fc74415165a0abe25" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=894441f#894441f56fceb9d8b7acff28822cca0cccc3e38e" dependencies = [ "bincode 1.3.3", "eyre", @@ -8806,7 +8944,7 @@ dependencies = [ "cfg-if", "libc", "psm", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -8942,9 +9080,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ac494e7266fcdd2ad80bf4375d55d27a117ea5c866c26d0e97fe5b3caeeb75" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" dependencies = [ "paste", "proc-macro2", @@ -9036,7 +9174,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -9607,6 +9745,16 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "universal-hash" +version = "0.6.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55be643b40a21558f44806b53ee9319595bc7ca6896372e4e08e5d7d83c9cd6" +dependencies = [ + "crypto-common 0.2.0-rc.4", + "subtle", +] + [[package]] name = "unroll" version = "0.1.5" diff --git a/Cargo.toml b/Cargo.toml index ea2c276a03..fd0b6f0bbb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,9 +17,9 @@ repository = "https://github.com/scroll-tech/scroll" version = "4.5.47" [workspace.dependencies] -scroll-zkvm-prover = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "060be4c" } -scroll-zkvm-verifier = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "060be4c" } -scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "060be4c" } +scroll-zkvm-prover = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "894441f" } +scroll-zkvm-verifier = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "894441f" } +scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "894441f" } sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "master", features = ["scroll", "rkyv"] } sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "master" } diff --git a/common/types/message/message.go b/common/types/message/message.go index acc7e63702..157a65cd58 100644 --- a/common/types/message/message.go +++ b/common/types/message/message.go @@ -39,10 +39,12 @@ const ( // ChunkTaskDetail is a type containing ChunkTask detail for chunk task. type ChunkTaskDetail struct { + Version uint8 `json:"version"` // use one of the string of "euclidv1" / "euclidv2" ForkName string `json:"fork_name"` BlockHashes []common.Hash `json:"block_hashes"` PrevMsgQueueHash common.Hash `json:"prev_msg_queue_hash"` + PostMsgQueueHash common.Hash `json:"post_msg_queue_hash"` } // it is a hex encoded big with fixed length on 48 bytes @@ -90,40 +92,60 @@ func (e *Byte48) UnmarshalJSON(input []byte) error { // BatchTaskDetail is a type containing BatchTask detail. type BatchTaskDetail struct { + Version uint8 `json:"version"` // use one of the string of "euclidv1" / "euclidv2" - ForkName string `json:"fork_name"` - ChunkInfos []*ChunkInfo `json:"chunk_infos"` - ChunkProofs []*OpenVMChunkProof `json:"chunk_proofs"` - BatchHeader interface{} `json:"batch_header"` - BlobBytes []byte `json:"blob_bytes"` - KzgProof Byte48 `json:"kzg_proof,omitempty"` - KzgCommitment Byte48 `json:"kzg_commitment,omitempty"` - ChallengeDigest common.Hash `json:"challenge_digest,omitempty"` + ForkName string `json:"fork_name"` + ChunkInfos []*ChunkInfo `json:"chunk_infos"` + ChunkProofs []*OpenVMChunkProof `json:"chunk_proofs"` + BatchHeader interface{} `json:"batch_header"` + BlobBytes []byte `json:"blob_bytes"` + KzgProof *Byte48 `json:"kzg_proof,omitempty"` + KzgCommitment *Byte48 `json:"kzg_commitment,omitempty"` + // ChallengeDigest should be a common.Hash type if it is not nil + ChallengeDigest interface{} `json:"challenge_digest,omitempty"` } // BundleTaskDetail consists of all the information required to describe the task to generate a proof for a bundle of batches. type BundleTaskDetail struct { + Version uint8 `json:"version"` // use one of the string of "euclidv1" / "euclidv2" ForkName string `json:"fork_name"` BatchProofs []*OpenVMBatchProof `json:"batch_proofs"` BundleInfo *OpenVMBundleInfo `json:"bundle_info,omitempty"` } +type RawBytes []byte + +func (r RawBytes) MarshalJSON() ([]byte, error) { + if r == nil { + return []byte("null"), nil + } + // Marshal the []byte as a JSON array of numbers + rn := make([]uint16, len(r)) + for i := range r { + rn[i] = uint16(r[i]) + } + return json.Marshal(rn) +} + // ChunkInfo is for calculating pi_hash for chunk type ChunkInfo struct { - ChainID uint64 `json:"chain_id"` - PrevStateRoot common.Hash `json:"prev_state_root"` - PostStateRoot common.Hash `json:"post_state_root"` - WithdrawRoot common.Hash `json:"withdraw_root"` - DataHash common.Hash `json:"data_hash"` - IsPadding bool `json:"is_padding"` - TxBytes []byte `json:"tx_bytes"` + ChainID uint64 `json:"chain_id"` + PrevStateRoot common.Hash `json:"prev_state_root"` + PostStateRoot common.Hash `json:"post_state_root"` + WithdrawRoot common.Hash `json:"withdraw_root"` + DataHash common.Hash `json:"data_hash"` + IsPadding bool `json:"is_padding"` + // TxBytes []byte `json:"tx_bytes"` TxBytesHash common.Hash `json:"tx_data_digest"` PrevMsgQueueHash common.Hash `json:"prev_msg_queue_hash"` PostMsgQueueHash common.Hash `json:"post_msg_queue_hash"` TxDataLength uint64 `json:"tx_data_length"` InitialBlockNumber uint64 `json:"initial_block_number"` BlockCtxs []BlockContextV2 `json:"block_ctxs"` + PrevBlockhash common.Hash `json:"prev_blockhash"` + PostBlockhash common.Hash `json:"post_blockhash"` + EncryptionKey RawBytes `json:"encryption_key"` } // BlockContextV2 is the block context for euclid v2 @@ -186,6 +208,7 @@ type OpenVMBatchInfo struct { ChainID uint64 `json:"chain_id"` PrevMsgQueueHash common.Hash `json:"prev_msg_queue_hash"` PostMsgQueueHash common.Hash `json:"post_msg_queue_hash"` + EncryptionKey RawBytes `json:"encryption_key"` } // BatchProof includes the proof info that are required for batch verification and rollup. @@ -246,6 +269,7 @@ type OpenVMBundleInfo struct { PrevBatchHash common.Hash `json:"prev_batch_hash"` BatchHash common.Hash `json:"batch_hash"` MsgQueueHash common.Hash `json:"msg_queue_hash"` + EncryptionKey RawBytes `json:"encryption_key"` } // OpenVMBundleProof includes the proof info that are required for verification of a bundle of batch proofs. diff --git a/common/version/version.go b/common/version/version.go index 592f969612..337b2eb610 100644 --- a/common/version/version.go +++ b/common/version/version.go @@ -5,7 +5,7 @@ import ( "runtime/debug" ) -var tag = "v4.5.47" +var tag = "v4.6.3" var commit = func() string { if info, ok := debug.ReadBuildInfo(); ok { diff --git a/coordinator/Makefile b/coordinator/Makefile index dce6556840..f44a2fe8a9 100644 --- a/coordinator/Makefile +++ b/coordinator/Makefile @@ -36,7 +36,7 @@ coordinator_tool: localsetup: coordinator_api ## Local setup: build coordinator_api, copy config, and setup releases @echo "Copying configuration files..." - cp -r $(PWD)/conf $(PWD)/build/bin/ + cp -r $(PWD)/conf/config.json $(PWD)/build/bin/conf/config.template.json @echo "Setting up releases..." cd $(PWD)/build && bash setup_releases.sh diff --git a/coordinator/build/setup_releases.sh b/coordinator/build/setup_releases.sh index 256bdfa3cd..f750008eae 100644 --- a/coordinator/build/setup_releases.sh +++ b/coordinator/build/setup_releases.sh @@ -53,6 +53,7 @@ for ((i=0; i<$VERIFIER_COUNT; i++)); do # assets for verifier-only mode echo "Downloading assets for $FORK_NAME to $ASSET_DIR..." wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/verifier.bin -O ${ASSET_DIR}/verifier.bin + wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/root_verifier_vk -O ${ASSET_DIR}/root_verifier_vk wget https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/$SCROLL_ZKVM_VERSION/verifier/openVmVk.json -O ${ASSET_DIR}/openVmVk.json echo "Completed downloading assets for $FORK_NAME" diff --git a/coordinator/cmd/tool/verify.go b/coordinator/cmd/tool/verify.go index 414db79485..b3545e6473 100644 --- a/coordinator/cmd/tool/verify.go +++ b/coordinator/cmd/tool/verify.go @@ -36,7 +36,7 @@ func verify(cCtx *cli.Context) error { return fmt.Errorf("error reading file: %w", err) } - vf, err := verifier.NewVerifier(cfg.ProverManager.Verifier) + vf, err := verifier.NewVerifier(cfg.ProverManager.Verifier, cfg.L2.ValidiumMode) if err != nil { return err } diff --git a/coordinator/conf/config.json b/coordinator/conf/config.json index 02acb2fa74..7af2ee8c19 100644 --- a/coordinator/conf/config.json +++ b/coordinator/conf/config.json @@ -10,11 +10,7 @@ "min_prover_version": "v4.4.45", "verifiers": [ { - "assets_path": "assets", - "fork_name": "euclidV2" - }, - { - "assets_path": "assets", + "assets_path": "cloak", "fork_name": "feynman" } ] @@ -22,19 +18,23 @@ }, "db": { "driver_name": "postgres", - "dsn": "postgres://localhost/scroll?sslmode=disable", + "dsn": "postgres://dev:dev@localhost/scroll?sslmode=disable", "maxOpenNum": 200, "maxIdleNum": 20 }, "l2": { - "chain_id": 111, + "validium_mode": true, + "chain_id": 5343513301, "l2geth": { - "endpoint": "not need to specified for mocking" + "endpoint": "http://cloak-xen-sequencer.sepolia.scroll.tech:8545/" } }, "auth": { "secret": "prover secret key", "challenge_expire_duration_sec": 3600, "login_expire_duration_sec": 3600 + }, + "sequencer": { + "decryption_key": "sequencer decryption key" } } diff --git a/coordinator/internal/config/config.go b/coordinator/internal/config/config.go index 20ce94e22a..648aed1e96 100644 --- a/coordinator/internal/config/config.go +++ b/coordinator/internal/config/config.go @@ -36,8 +36,9 @@ type L2Endpoint struct { // L2 loads l2geth configuration items. type L2 struct { // l2geth chain_id. - ChainID uint64 `json:"chain_id"` - Endpoint *L2Endpoint `json:"l2geth"` + ChainID uint64 `json:"chain_id"` + Endpoint *L2Endpoint `json:"l2geth"` + ValidiumMode bool `json:"validium_mode"` } // Auth provides the auth coordinator @@ -47,17 +48,24 @@ type Auth struct { LoginExpireDurationSec int `json:"login_expire_duration_sec"` } +// The sequencer controlled data +type Sequencer struct { + DecryptionKey string `json:"decryption_key"` +} + // Config load configuration items. type Config struct { ProverManager *ProverManager `json:"prover_manager"` DB *database.Config `json:"db"` L2 *L2 `json:"l2"` Auth *Auth `json:"auth"` + Sequencer *Sequencer `json:"sequencer"` } // AssetConfig contain assets configurated for each fork, the defaul vkfile name is "OpenVmVk.json". type AssetConfig struct { AssetsPath string `json:"assets_path"` + Version uint8 `json:"version,omitempty"` ForkName string `json:"fork_name"` Vkfile string `json:"vk_file,omitempty"` MinProverVersion string `json:"min_prover_version,omitempty"` diff --git a/coordinator/internal/config/config_test.go b/coordinator/internal/config/config_test.go index 05c5868a56..62954fb5e7 100644 --- a/coordinator/internal/config/config_test.go +++ b/coordinator/internal/config/config_test.go @@ -35,13 +35,17 @@ func TestConfig(t *testing.T) { "maxIdleNum": 20 }, "l2": { - "chain_id": 111 + "chain_id": 111, + "validium_mode": false }, "auth": { "secret": "prover secret key", "challenge_expire_duration_sec": 3600, "login_expire_duration_sec": 3600 - } + }, + "sequencer": { + "decryption_key": "sequencer decryption key" + } }` t.Run("Success Case", func(t *testing.T) { diff --git a/coordinator/internal/controller/api/controller.go b/coordinator/internal/controller/api/controller.go index ab8a191fa3..d5209a072b 100644 --- a/coordinator/internal/controller/api/controller.go +++ b/coordinator/internal/controller/api/controller.go @@ -24,7 +24,9 @@ var ( // InitController inits Controller with database func InitController(cfg *config.Config, chainCfg *params.ChainConfig, db *gorm.DB, reg prometheus.Registerer) { - vf, err := verifier.NewVerifier(cfg.ProverManager.Verifier) + validiumMode := cfg.L2.ValidiumMode + + vf, err := verifier.NewVerifier(cfg.ProverManager.Verifier, validiumMode) if err != nil { panic("proof receiver new verifier failure") } diff --git a/coordinator/internal/logic/libzkp/lib.go b/coordinator/internal/logic/libzkp/lib.go index 63bbd82a27..61c90b153b 100644 --- a/coordinator/internal/logic/libzkp/lib.go +++ b/coordinator/internal/logic/libzkp/lib.go @@ -93,8 +93,8 @@ func fromMessageTaskType(taskType int) int { } // Generate a universal task -func GenerateUniversalTask(taskType int, taskJSON, forkName string, expectedVk []byte) (bool, string, string, []byte) { - return generateUniversalTask(fromMessageTaskType(taskType), taskJSON, strings.ToLower(forkName), expectedVk) +func GenerateUniversalTask(taskType int, taskJSON, forkName string, expectedVk []byte, decryptionKey []byte) (bool, string, string, []byte) { + return generateUniversalTask(fromMessageTaskType(taskType), taskJSON, strings.ToLower(forkName), expectedVk, decryptionKey) } // Generate wrapped proof diff --git a/coordinator/internal/logic/libzkp/libzkp.h b/coordinator/internal/logic/libzkp/libzkp.h index 8e2f33d4f5..477f677638 100644 --- a/coordinator/internal/logic/libzkp/libzkp.h +++ b/coordinator/internal/logic/libzkp/libzkp.h @@ -40,7 +40,9 @@ HandlingResult gen_universal_task( char* task, char* fork_name, const unsigned char* expected_vk, - size_t expected_vk_len + size_t expected_vk_len, + const unsigned char* decryption_key, + size_t decryption_key_len ); // Release memory allocated for a HandlingResult returned by gen_universal_task diff --git a/coordinator/internal/logic/libzkp/mock_universal_task.go b/coordinator/internal/logic/libzkp/mock_universal_task.go index b4cee34de6..e23cb948e4 100644 --- a/coordinator/internal/logic/libzkp/mock_universal_task.go +++ b/coordinator/internal/logic/libzkp/mock_universal_task.go @@ -14,7 +14,7 @@ import ( func InitL2geth(configJSON string) { } -func generateUniversalTask(taskType int, taskJSON, forkName string, expectedVk []byte) (bool, string, string, []byte) { +func generateUniversalTask(taskType int, taskJSON, forkName string, expectedVk []byte, decryptionKey []byte) (bool, string, string, []byte) { fmt.Printf("call mocked generate universal task %d, taskJson %s\n", taskType, taskJSON) var metadata interface{} diff --git a/coordinator/internal/logic/libzkp/universal_task.go b/coordinator/internal/logic/libzkp/universal_task.go index 82292e6b68..f50bb70473 100644 --- a/coordinator/internal/logic/libzkp/universal_task.go +++ b/coordinator/internal/logic/libzkp/universal_task.go @@ -17,7 +17,7 @@ func InitL2geth(configJSON string) { C.init_l2geth(cConfig) } -func generateUniversalTask(taskType int, taskJSON, forkName string, expectedVk []byte) (bool, string, string, []byte) { +func generateUniversalTask(taskType int, taskJSON, forkName string, expectedVk []byte, decryptionKey []byte) (bool, string, string, []byte) { cTask := goToCString(taskJSON) cForkName := goToCString(forkName) defer freeCString(cTask) @@ -29,7 +29,13 @@ func generateUniversalTask(taskType int, taskJSON, forkName string, expectedVk [ cVk = (*C.uchar)(unsafe.Pointer(&expectedVk[0])) } - result := C.gen_universal_task(C.int(taskType), cTask, cForkName, cVk, C.size_t(len(expectedVk))) + // Create a C array from Go slice + var cDk *C.uchar + if len(decryptionKey) > 0 { + cDk = (*C.uchar)(unsafe.Pointer(&decryptionKey[0])) + } + + result := C.gen_universal_task(C.int(taskType), cTask, cForkName, cVk, C.size_t(len(expectedVk)), cDk, C.size_t(len(decryptionKey))) defer C.release_task_result(result) // Check if the operation was successful diff --git a/coordinator/internal/logic/provertask/batch_prover_task.go b/coordinator/internal/logic/provertask/batch_prover_task.go index 82c4f3545c..79edc3aed6 100644 --- a/coordinator/internal/logic/provertask/batch_prover_task.go +++ b/coordinator/internal/logic/provertask/batch_prover_task.go @@ -269,6 +269,7 @@ func (bp *BatchProverTask) formatProverTask(ctx context.Context, task *orm.Prove InitialBlockNumber: proof.MetaData.ChunkInfo.InitialBlockNumber, BlockCtxs: proof.MetaData.ChunkInfo.BlockCtxs, TxDataLength: proof.MetaData.ChunkInfo.TxDataLength, + EncryptionKey: proof.MetaData.ChunkInfo.EncryptionKey, } chunkInfos = append(chunkInfos, &chunkInfo) } @@ -278,7 +279,7 @@ func (bp *BatchProverTask) formatProverTask(ctx context.Context, task *orm.Prove return nil, fmt.Errorf("failed to get batch task detail, taskID:%s err:%w", task.TaskID, err) } - chunkProofsBytes, err := json.Marshal(taskDetail) + taskBytesWithchunkProofs, err := json.Marshal(taskDetail) if err != nil { return nil, fmt.Errorf("failed to marshal chunk proofs, taskID:%s err:%w", task.TaskID, err) } @@ -286,7 +287,7 @@ func (bp *BatchProverTask) formatProverTask(ctx context.Context, task *orm.Prove taskMsg := &coordinatorType.GetTaskSchema{ TaskID: task.TaskID, TaskType: int(message.ProofTypeBatch), - TaskData: string(chunkProofsBytes), + TaskData: string(taskBytesWithchunkProofs), HardForkName: hardForkName, } @@ -302,37 +303,56 @@ func (bp *BatchProverTask) recoverActiveAttempts(ctx *gin.Context, batchTask *or } func (bp *BatchProverTask) getBatchTaskDetail(dbBatch *orm.Batch, chunkInfos []*message.ChunkInfo, chunkProofs []*message.OpenVMChunkProof, hardForkName string) (*message.BatchTaskDetail, error) { + // Get the version byte. + version, err := bp.version(hardForkName) + if err != nil { + return nil, fmt.Errorf("failed to decode version byte: %w", err) + } + taskDetail := &message.BatchTaskDetail{ + Version: version, ChunkInfos: chunkInfos, ChunkProofs: chunkProofs, ForkName: hardForkName, } - dbBatchCodecVersion := encoding.CodecVersion(dbBatch.CodecVersion) - switch dbBatchCodecVersion { - case encoding.CodecV3, encoding.CodecV4, encoding.CodecV6, encoding.CodecV7, encoding.CodecV8: - default: - return taskDetail, nil - } + taskDetail.BlobBytes = dbBatch.BlobBytes + if !bp.validiumMode() { + dbBatchCodecVersion := encoding.CodecVersion(dbBatch.CodecVersion) + switch dbBatchCodecVersion { + case encoding.CodecV3, encoding.CodecV4, encoding.CodecV6, encoding.CodecV7, encoding.CodecV8: + default: + return taskDetail, nil + } - codec, err := encoding.CodecFromVersion(encoding.CodecVersion(dbBatch.CodecVersion)) - if err != nil { - return nil, fmt.Errorf("failed to get codec from version %d, err: %w", dbBatch.CodecVersion, err) - } + codec, err := encoding.CodecFromVersion(encoding.CodecVersion(dbBatch.CodecVersion)) + if err != nil { + return nil, fmt.Errorf("failed to get codec from version %d, err: %w", dbBatch.CodecVersion, err) + } - batchHeader, decodeErr := codec.NewDABatchFromBytes(dbBatch.BatchHeader) - if decodeErr != nil { - return nil, fmt.Errorf("failed to decode batch header version %d: %w", dbBatch.CodecVersion, decodeErr) + batchHeader, decodeErr := codec.NewDABatchFromBytes(dbBatch.BatchHeader) + if decodeErr != nil { + return nil, fmt.Errorf("failed to decode batch header version %d: %w", dbBatch.CodecVersion, decodeErr) + } + taskDetail.BatchHeader = batchHeader + + taskDetail.ChallengeDigest = common.HexToHash(dbBatch.ChallengeDigest) + // Memory layout of `BlobDataProof`: used in Codec.BlobDataProofForPointEvaluation() + // | z | y | kzg_commitment | kzg_proof | + // |---------|---------|----------------|-----------| + // | bytes32 | bytes32 | bytes48 | bytes48 | + taskDetail.KzgProof = &message.Byte48{Big: hexutil.Big(*new(big.Int).SetBytes(dbBatch.BlobDataProof[112:160]))} + taskDetail.KzgCommitment = &message.Byte48{Big: hexutil.Big(*new(big.Int).SetBytes(dbBatch.BlobDataProof[64:112]))} + } else { + log.Debug("Apply validium mode for batch proving task") + codec := cutils.FromVersion(version) + batchHeader, decodeErr := codec.DABatchForTaskFromBytes(dbBatch.BatchHeader) + if decodeErr != nil { + return nil, fmt.Errorf("failed to decode batch header version %d: %w", dbBatch.CodecVersion, decodeErr) + } + batchHeader.SetHash(common.HexToHash(dbBatch.Hash)) + taskDetail.BatchHeader = batchHeader } - taskDetail.BatchHeader = batchHeader - taskDetail.BlobBytes = dbBatch.BlobBytes - taskDetail.ChallengeDigest = common.HexToHash(dbBatch.ChallengeDigest) - // Memory layout of `BlobDataProof`: used in Codec.BlobDataProofForPointEvaluation() - // | z | y | kzg_commitment | kzg_proof | - // |---------|---------|----------------|-----------| - // | bytes32 | bytes32 | bytes48 | bytes48 | - taskDetail.KzgProof = message.Byte48{Big: hexutil.Big(*new(big.Int).SetBytes(dbBatch.BlobDataProof[112:160]))} - taskDetail.KzgCommitment = message.Byte48{Big: hexutil.Big(*new(big.Int).SetBytes(dbBatch.BlobDataProof[64:112]))} return taskDetail, nil } diff --git a/coordinator/internal/logic/provertask/bundle_prover_task.go b/coordinator/internal/logic/provertask/bundle_prover_task.go index 5e9dfe4056..f40ae3dcdc 100644 --- a/coordinator/internal/logic/provertask/bundle_prover_task.go +++ b/coordinator/internal/logic/provertask/bundle_prover_task.go @@ -265,7 +265,14 @@ func (bp *BundleProverTask) formatProverTask(ctx context.Context, task *orm.Prov batchProofs = append(batchProofs, &proof) } + // Get the version byte. + version, err := bp.version(hardForkName) + if err != nil { + return nil, fmt.Errorf("failed to decode version byte: %w", err) + } + taskDetail := message.BundleTaskDetail{ + Version: version, BatchProofs: batchProofs, ForkName: hardForkName, } diff --git a/coordinator/internal/logic/provertask/chunk_prover_task.go b/coordinator/internal/logic/provertask/chunk_prover_task.go index 9971d294e6..6492c10a10 100644 --- a/coordinator/internal/logic/provertask/chunk_prover_task.go +++ b/coordinator/internal/logic/provertask/chunk_prover_task.go @@ -237,14 +237,21 @@ func (cp *ChunkProverTask) formatProverTask(ctx context.Context, task *orm.Prove return nil, fmt.Errorf("failed to fetch block hashes of a chunk, chunk hash:%s err:%v", task.TaskID, dbErr) } + // Get the version byte. + version, err := cp.version(hardForkName) + if err != nil { + return nil, fmt.Errorf("failed to decode version byte: %w", err) + } + var taskDetailBytes []byte taskDetail := message.ChunkTaskDetail{ + Version: version, BlockHashes: blockHashes, PrevMsgQueueHash: common.HexToHash(chunk.PrevL1MessageQueueHash), + PostMsgQueueHash: common.HexToHash(chunk.PostL1MessageQueueHash), ForkName: hardForkName, } - var err error taskDetailBytes, err = json.Marshal(taskDetail) if err != nil { return nil, fmt.Errorf("failed to marshal block hashes hash:%s, err:%w", task.TaskID, err) diff --git a/coordinator/internal/logic/provertask/prover_task.go b/coordinator/internal/logic/provertask/prover_task.go index d1f2bd51d5..3c1cdae9a3 100644 --- a/coordinator/internal/logic/provertask/prover_task.go +++ b/coordinator/internal/logic/provertask/prover_task.go @@ -1,6 +1,7 @@ package provertask import ( + "encoding/hex" "errors" "fmt" "strings" @@ -19,6 +20,7 @@ import ( "scroll-tech/coordinator/internal/logic/libzkp" "scroll-tech/coordinator/internal/orm" coordinatorType "scroll-tech/coordinator/internal/types" + "scroll-tech/coordinator/internal/utils" ) var ( @@ -65,6 +67,17 @@ type proverTaskContext struct { hasAssignedTask *orm.ProverTask } +func (b *BaseProverTask) version(hardForkName string) (uint8, error) { + return utils.Version(hardForkName, b.validiumMode()) +} + +// validiumMode induce different behavior in task generation: +// + skip the point_evaluation part in batch task +// + encode batch header with codec in utils instead of da-codec +func (b *BaseProverTask) validiumMode() bool { + return b.cfg.L2.ValidiumMode +} + // hardForkName get the chunk/batch/bundle hard fork name func (b *BaseProverTask) hardForkName(ctx *gin.Context, taskCtx *proverTaskContext) (string, error) { switch { @@ -192,7 +205,12 @@ func (b *BaseProverTask) applyUniversal(schema *coordinatorType.GetTaskSchema) ( return nil, nil, fmt.Errorf("no expectedVk found from hardfork %s", schema.HardForkName) } - ok, uTaskData, metadata, _ := libzkp.GenerateUniversalTask(schema.TaskType, schema.TaskData, schema.HardForkName, expectedVk) + decryptionKey, err := hex.DecodeString(b.cfg.Sequencer.DecryptionKey) + if err != nil { + return nil, nil, fmt.Errorf("sequencer decryption key hex-decoding failed") + } + + ok, uTaskData, metadata, _ := libzkp.GenerateUniversalTask(schema.TaskType, schema.TaskData, schema.HardForkName, expectedVk, decryptionKey) if !ok { return nil, nil, fmt.Errorf("can not generate universal task, see coordinator log for the reason") } diff --git a/coordinator/internal/logic/submitproof/proof_receiver.go b/coordinator/internal/logic/submitproof/proof_receiver.go index 3d1693affa..2341c12b00 100644 --- a/coordinator/internal/logic/submitproof/proof_receiver.go +++ b/coordinator/internal/logic/submitproof/proof_receiver.go @@ -219,6 +219,7 @@ func (m *ProofReceiverLogic) HandleZkProof(ctx *gin.Context, proofParameter coor if unmarshalErr := json.Unmarshal([]byte(proofParameter.Proof), &chunkProof); unmarshalErr != nil { return unmarshalErr } + log.Info("parse chunkproof", "key", chunkProof.MetaData.ChunkInfo.EncryptionKey) success, verifyErr = m.verifier.VerifyChunkProof(chunkProof, hardForkName) if stat := chunkProof.VmProof.Stat; stat != nil { if g, _ := m.proverSpeed.GetMetricWithLabelValues("chunk", "exec"); g != nil && stat.ExecutionTimeMills > 0 { diff --git a/coordinator/internal/logic/verifier/verifier.go b/coordinator/internal/logic/verifier/verifier.go index c2e4cb8233..36c018841c 100644 --- a/coordinator/internal/logic/verifier/verifier.go +++ b/coordinator/internal/logic/verifier/verifier.go @@ -19,20 +19,34 @@ import ( "scroll-tech/coordinator/internal/config" "scroll-tech/coordinator/internal/logic/libzkp" + "scroll-tech/coordinator/internal/utils" ) // This struct maps to `CircuitConfig` in libzkp/src/verifier.rs // Define a brand new struct here is to eliminate side effects in case fields // in `*config.CircuitConfig` being changed type rustCircuitConfig struct { + Version uint `json:"version"` ForkName string `json:"fork_name"` AssetsPath string `json:"assets_path"` } +var validiumMode bool + func newRustCircuitConfig(cfg config.AssetConfig) *rustCircuitConfig { + ver := cfg.Version + if ver == 0 { + var err error + ver, err = utils.Version(cfg.ForkName, validiumMode) + if err != nil { + panic(err) + } + } + return &rustCircuitConfig{ - ForkName: cfg.ForkName, + Version: uint(ver), AssetsPath: cfg.AssetsPath, + ForkName: cfg.ForkName, } } @@ -60,7 +74,8 @@ type rustVkDump struct { } // NewVerifier Sets up a rust ffi to call verify. -func NewVerifier(cfg *config.VerifierConfig) (*Verifier, error) { +func NewVerifier(cfg *config.VerifierConfig, useValidiumMode bool) (*Verifier, error) { + validiumMode = useValidiumMode verifierConfig := newRustVerifierConfig(cfg) configBytes, err := json.Marshal(verifierConfig) if err != nil { diff --git a/coordinator/internal/utils/codec_validium.go b/coordinator/internal/utils/codec_validium.go new file mode 100644 index 0000000000..4f30197953 --- /dev/null +++ b/coordinator/internal/utils/codec_validium.go @@ -0,0 +1,92 @@ +package utils + +import ( + "encoding/binary" + "fmt" + + "github.com/scroll-tech/go-ethereum/common" +) + +type CodecVersion uint8 + +const ( + daBatchValidiumEncodedLength = 137 +) + +type DABatch interface { + SetHash(common.Hash) +} + +type daBatchValidiumV1 struct { + Version CodecVersion `json:"version"` + BatchIndex uint64 `json:"batch_index"` + BlobVersionedHash common.Hash `json:"blob_versioned_hash"` + ParentBatchHash common.Hash `json:"parent_batch_hash"` + PostStateRoot common.Hash `json:"post_state_root"` + WithDrawRoot common.Hash `json:"withdraw_root"` + Commitment common.Hash `json:"commitment"` +} + +type daBatchValidium struct { + V1 *daBatchValidiumV1 `json:"V1,omitempty"` + BatchHash common.Hash `json:"batch_hash"` +} + +func (da *daBatchValidium) SetHash(h common.Hash) { + da.BatchHash = h +} + +func FromVersion(v uint8) CodecVersion { + return CodecVersion(v & STFVersionMask) +} + +func (c CodecVersion) DABatchForTaskFromBytes(b []byte) (DABatch, error) { + switch c { + case 1: + if v1, err := decodeDABatchV1(b); err == nil { + return &daBatchValidium{ + V1: v1, + }, nil + } else { + return nil, err + } + default: + return nil, fmt.Errorf("unknown codec type %d", c) + } +} + +func decodeDABatchV1(data []byte) (*daBatchValidiumV1, error) { + if len(data) != daBatchValidiumEncodedLength { + return nil, fmt.Errorf("invalid data length for DABatchV7, expected %d bytes but got %d", daBatchValidiumEncodedLength, len(data)) + } + + const ( + versionSize = 1 + indexSize = 8 + hashSize = 32 + ) + + // Offsets (same as encodeBatchHeaderValidium) + versionOffset := 0 + indexOffset := versionOffset + versionSize + parentHashOffset := indexOffset + indexSize + stateRootOffset := parentHashOffset + hashSize + withdrawRootOffset := stateRootOffset + hashSize + commitmentOffset := withdrawRootOffset + hashSize + + version := CodecVersion(data[versionOffset]) + batchIndex := binary.BigEndian.Uint64(data[indexOffset : indexOffset+indexSize]) + parentBatchHash := common.BytesToHash(data[parentHashOffset : parentHashOffset+hashSize]) + postStateRoot := common.BytesToHash(data[stateRootOffset : stateRootOffset+hashSize]) + withdrawRoot := common.BytesToHash(data[withdrawRootOffset : withdrawRootOffset+hashSize]) + commitment := common.BytesToHash(data[commitmentOffset : commitmentOffset+hashSize]) + + return &daBatchValidiumV1{ + Version: version, + BatchIndex: batchIndex, + ParentBatchHash: parentBatchHash, + PostStateRoot: postStateRoot, + WithDrawRoot: withdrawRoot, + Commitment: commitment, + }, nil +} diff --git a/coordinator/internal/utils/version.go b/coordinator/internal/utils/version.go new file mode 100644 index 0000000000..368a141d37 --- /dev/null +++ b/coordinator/internal/utils/version.go @@ -0,0 +1,38 @@ +package utils + +import ( + "errors" + "strings" +) + +const ( + DomainOffset = 6 + STFVersionMask = (1 << DomainOffset) - 1 +) + +// version get the version for the chain instance +// +// TODO: This is not foolproof and does not cover all scenarios. +func Version(hardForkName string, ValidiumMode bool) (uint8, error) { + + var domain, stfVersion uint8 + + if ValidiumMode { + domain = 1 + stfVersion = 1 + } else { + domain = 0 + switch canonicalName := strings.ToLower(hardForkName); canonicalName { + case "euclidv1": + stfVersion = 6 + case "euclidv2": + stfVersion = 7 + case "feynman": + stfVersion = 8 + default: + return 0, errors.New("unknown fork name " + canonicalName) + } + } + + return (domain << DomainOffset) + stfVersion, nil +} diff --git a/crates/l2geth/src/rpc_client.rs b/crates/l2geth/src/rpc_client.rs index 6836c546e8..826bb44033 100644 --- a/crates/l2geth/src/rpc_client.rs +++ b/crates/l2geth/src/rpc_client.rs @@ -5,7 +5,7 @@ use alloy::{ }; use eyre::Result; use libzkp::tasks::ChunkInterpreter; -use sbv_primitives::types::Network; +use sbv_primitives::types::{consensus::TxL1Message, Network}; use serde::{Deserialize, Serialize}; fn default_max_retry() -> u32 { @@ -168,6 +168,40 @@ impl> ChunkInterpreter for RpcClient<'_, T> { self.handle .block_on(fetch_storage_node_async(&self.provider, node_hash)) } + + fn try_fetch_l1_msgs(&self, block_number: u64) -> Result> { + async fn fetch_l1_msgs( + provider: impl Provider, + block_number: u64, + ) -> Result> { + let block_number_hex = format!("0x{:x}", block_number); + + #[derive(Deserialize, Debug)] + #[serde(untagged)] + enum NullOrVec { + Null, // matches JSON `null` + Vec(Vec), // matches JSON array + } + + Ok( + match provider + .client() + .request::<_, NullOrVec>( + "scroll_getL1MessagesInBlock", + (block_number_hex, "synced"), + ) + .await? + { + NullOrVec::Null => Vec::new(), + NullOrVec::Vec(r) => r, + }, + ) + } + + tracing::debug!("fetch L1 msgs for {block_number}"); + self.handle + .block_on(fetch_l1_msgs(&self.provider, block_number)) + } } #[cfg(test)] @@ -218,4 +252,16 @@ mod tests { println!("{}", serde_json::to_string_pretty(&wit2).unwrap()); } + + #[test] + #[ignore = "Requires L2GETH_ENDPOINT environment variable"] + fn test_try_fetch_l1_messages() { + let config = create_config_from_env(); + let client_core = RpcClientCore::create(&config).expect("Failed to create RPC client"); + let client = client_core.get_client(); + + let msgs = client.try_fetch_l1_msgs(32).expect("should success"); + + println!("{}", serde_json::to_string_pretty(&msgs).unwrap()); + } } diff --git a/crates/libzkp/src/lib.rs b/crates/libzkp/src/lib.rs index 45c771a9af..d60b360c97 100644 --- a/crates/libzkp/src/lib.rs +++ b/crates/libzkp/src/lib.rs @@ -13,10 +13,13 @@ use tasks::chunk_interpreter::{ChunkInterpreter, TryFromWithInterpreter}; /// global features: use legacy encoding for witness static mut LEGACY_WITNESS_ENCODING: bool = false; + pub(crate) fn witness_use_legacy_mode() -> bool { unsafe { LEGACY_WITNESS_ENCODING } } +pub const VALIDIUM_VERSION: u8 = 0b01000001; + pub fn set_dynamic_feature(feats: &str) { for feat_s in feats.split(':') { match feat_s.trim().to_lowercase().as_str() { @@ -36,14 +39,13 @@ pub fn set_dynamic_feature(feats: &str) { /// task (with full witnesses) pub fn checkout_chunk_task( task_json: &str, + decryption_key: Option<&[u8]>, interpreter: impl ChunkInterpreter, ) -> eyre::Result { let chunk_task = serde_json::from_str::(task_json)?; - let ret = serde_json::to_string(&tasks::ChunkProvingTask::try_from_with_interpret( - chunk_task, - interpreter, - )?)?; - Ok(ret) + Ok(serde_json::to_string( + &tasks::ChunkProvingTask::try_from_with_interpret(chunk_task, decryption_key, interpreter)?, + )?) } /// Generate required staff for proving tasks diff --git a/crates/libzkp/src/proofs.rs b/crates/libzkp/src/proofs.rs index b4c06a9e12..f57d3fdf05 100644 --- a/crates/libzkp/src/proofs.rs +++ b/crates/libzkp/src/proofs.rs @@ -8,9 +8,10 @@ use scroll_zkvm_types::{ bundle::BundleInfo, chunk::ChunkInfo, proof::{EvmProof, OpenVmEvmProof, ProofEnum, StarkProof}, - public_inputs::{ForkName, MultiVersionPublicInputs}, + public_inputs::MultiVersionPublicInputs, types_agg::AggregationInput, utils::{serialize_vk, vec_as_base64}, + version, }; use serde::{de::DeserializeOwned, Deserialize, Serialize}; @@ -181,13 +182,13 @@ impl WrappedProof { /// Sanity checks on the wrapped proof: /// /// - pi_hash computed in host does in fact match pi_hash computed in guest - pub fn pi_hash_check(&self, fork_name: ForkName) -> bool { + pub fn pi_hash_check(&self, ver: version::Version) -> bool { let proof_pi = self.proof.public_values(); let expected_pi = self .metadata .pi_hash_info() - .pi_hash_by_fork(fork_name) + .pi_hash_by_version(ver) .0 .as_ref() .iter() @@ -252,6 +253,7 @@ mod tests { batch_hash: B256::repeat_byte(4), withdraw_root: B256::repeat_byte(5), msg_queue_hash: B256::repeat_byte(6), + encryption_key: None, }; let bundle_pi_hash = bundle_info.pi_hash(ForkName::EuclidV1); BundleProofMetadata { diff --git a/crates/libzkp/src/tasks.rs b/crates/libzkp/src/tasks.rs index 8def3cde44..a1319ff5b7 100644 --- a/crates/libzkp/src/tasks.rs +++ b/crates/libzkp/src/tasks.rs @@ -14,7 +14,7 @@ use crate::{ utils::panic_catch, }; use sbv_primitives::B256; -use scroll_zkvm_types::public_inputs::{ForkName, MultiVersionPublicInputs}; +use scroll_zkvm_types::public_inputs::{ForkName, MultiVersionPublicInputs, Version}; fn encode_task_to_witness(task: &T) -> eyre::Result> { let config = bincode::config::standard(); @@ -23,7 +23,7 @@ fn encode_task_to_witness(task: &T) -> eyre::Result fn check_aggregation_proofs( proofs: &[proofs::WrappedProof], - fork_name: ForkName, + version: Version, ) -> eyre::Result<()> where Metadata: proofs::ProofMetadata, @@ -32,7 +32,7 @@ where for w in proofs.windows(2) { w[1].metadata .pi_hash_info() - .validate(w[0].metadata.pi_hash_info(), fork_name); + .validate(w[0].metadata.pi_hash_info(), version); } }) .map_err(|e| eyre::eyre!("Chunk data validation failed: {}", e))?; diff --git a/crates/libzkp/src/tasks/batch.rs b/crates/libzkp/src/tasks/batch.rs index 3acd88bd26..16fe30651b 100644 --- a/crates/libzkp/src/tasks/batch.rs +++ b/crates/libzkp/src/tasks/batch.rs @@ -1,21 +1,30 @@ -use crate::proofs::ChunkProof; use c_kzg::Bytes48; use eyre::Result; use sbv_primitives::{B256, U256}; use scroll_zkvm_types::{ batch::{ build_point_eval_witness, BatchHeader, BatchHeaderV6, BatchHeaderV7, BatchHeaderV8, - BatchInfo, BatchWitness, Envelope, EnvelopeV6, EnvelopeV7, EnvelopeV8, LegacyBatchWitness, - ReferenceHeader, N_BLOB_BYTES, + BatchHeaderValidium, BatchInfo, BatchWitness, Envelope, EnvelopeV6, EnvelopeV7, EnvelopeV8, + LegacyBatchWitness, ReferenceHeader, N_BLOB_BYTES, }, - public_inputs::ForkName, + public_inputs::{ForkName, Version}, task::ProvingTask, utils::{to_rkyv_bytes, RancorError}, + version::{Domain, STFVersion}, }; +use crate::proofs::ChunkProof; + mod utils; use utils::{base64, point_eval}; +#[derive(Clone, serde::Deserialize, serde::Serialize)] +pub struct BatchHeaderValidiumWithHash { + #[serde(flatten)] + header: BatchHeaderValidium, + batch_hash: B256, +} + /// Define variable batch header type, since BatchHeaderV6 can not /// be decoded as V7 we can always has correct deserialization /// Notice: V6 header MUST be put above V7 since untagged enum @@ -23,6 +32,7 @@ use utils::{base64, point_eval}; #[derive(Clone, serde::Deserialize, serde::Serialize)] #[serde(untagged)] pub enum BatchHeaderV { + Validium(BatchHeaderValidiumWithHash), V6(BatchHeaderV6), V7_8(BatchHeaderV7), } @@ -32,6 +42,7 @@ impl BatchHeaderV { match self { BatchHeaderV::V6(h) => h.batch_hash(), BatchHeaderV::V7_8(h) => h.batch_hash(), + BatchHeaderV::Validium(h) => h.header.batch_hash(), } } @@ -55,12 +66,21 @@ impl BatchHeaderV { _ => panic!("try to pick other header type"), } } + + pub fn must_validium_header(&self) -> &BatchHeaderValidium { + match self { + BatchHeaderV::Validium(h) => &h.header, + _ => panic!("try to pick other header type"), + } + } } /// Defines a proving task for batch proof generation, the format /// is compatible with both pre-euclidv2 and euclidv2 #[derive(Clone, serde::Deserialize, serde::Serialize)] pub struct BatchProvingTask { + /// The version of the chunks in the batch, as per [`Version`]. + pub version: u8, /// Chunk proofs for the contiguous list of chunks within the batch. pub chunk_proofs: Vec, /// The [`BatchHeaderV6/V7`], as computed on-chain for this batch. @@ -107,79 +127,116 @@ impl TryFrom for ProvingTask { impl BatchProvingTask { fn build_guest_input(&self) -> BatchWitness { - let fork_name = self.fork_name.to_lowercase().as_str().into(); - - // sanity check: calculate point eval needed and compare with task input - let (kzg_commitment, kzg_proof, challenge_digest) = { - let blob = point_eval::to_blob(&self.blob_bytes); - let commitment = point_eval::blob_to_kzg_commitment(&blob); - let versioned_hash = point_eval::get_versioned_hash(&commitment); - let challenge_digest = match &self.batch_header { - BatchHeaderV::V6(_) => { - assert_eq!( - fork_name, - ForkName::EuclidV1, - "hardfork mismatch for da-codec@v6 header: found={fork_name:?}, expected={:?}", - ForkName::EuclidV1, - ); - EnvelopeV6::from_slice(self.blob_bytes.as_slice()) - .challenge_digest(versioned_hash) - } - BatchHeaderV::V7_8(_) => { - let padded_blob_bytes = { - let mut padded_blob_bytes = self.blob_bytes.to_vec(); - padded_blob_bytes.resize(N_BLOB_BYTES, 0); - padded_blob_bytes - }; - - match fork_name { - ForkName::EuclidV2 => { - ::from_slice(padded_blob_bytes.as_slice()) - .challenge_digest(versioned_hash) - } - ForkName::Feynman => { - ::from_slice(padded_blob_bytes.as_slice()) - .challenge_digest(versioned_hash) + let version = Version::from(self.version); + + let point_eval_witness = if !version.is_validium() { + // sanity check: calculate point eval needed and compare with task input + let (kzg_commitment, kzg_proof, challenge_digest) = { + let blob = point_eval::to_blob(&self.blob_bytes); + let commitment = point_eval::blob_to_kzg_commitment(&blob); + let versioned_hash = point_eval::get_versioned_hash(&commitment); + let challenge_digest = match &self.batch_header { + BatchHeaderV::V6(_) => { + assert_eq!( + version.fork, + ForkName::EuclidV1, + "hardfork mismatch for da-codec@v6 header: found={:?}, expected={:?}", + version.fork, + ForkName::EuclidV1, + ); + EnvelopeV6::from_slice(self.blob_bytes.as_slice()) + .challenge_digest(versioned_hash) + } + BatchHeaderV::V7_8(_) => { + let padded_blob_bytes = { + let mut padded_blob_bytes = self.blob_bytes.to_vec(); + padded_blob_bytes.resize(N_BLOB_BYTES, 0); + padded_blob_bytes + }; + + match version.fork { + ForkName::EuclidV2 => { + ::from_slice(padded_blob_bytes.as_slice()) + .challenge_digest(versioned_hash) + } + ForkName::Feynman => { + ::from_slice(padded_blob_bytes.as_slice()) + .challenge_digest(versioned_hash) + } + fork_name => unreachable!( + "hardfork mismatch for da-codec@v7 header: found={}, expected={:?}", + fork_name, + [ForkName::EuclidV2, ForkName::Feynman], + ), } - f => unreachable!( - "hardfork mismatch for da-codec@v7 header: found={}, expected={:?}", - f, - [ForkName::EuclidV2, ForkName::Feynman], - ), } - } - }; + BatchHeaderV::Validium(_) => unreachable!("version!=validium"), + }; - let (proof, _) = point_eval::get_kzg_proof(&blob, challenge_digest); + let (proof, _) = point_eval::get_kzg_proof(&blob, challenge_digest); - (commitment.to_bytes(), proof.to_bytes(), challenge_digest) - }; + (commitment.to_bytes(), proof.to_bytes(), challenge_digest) + }; - if let Some(k) = self.kzg_commitment { - assert_eq!(k, kzg_commitment); - } + if let Some(k) = self.kzg_commitment { + assert_eq!(k, kzg_commitment); + } - if let Some(c) = self.challenge_digest { - assert_eq!(c, U256::from_be_bytes(challenge_digest.0)); - } + if let Some(c) = self.challenge_digest { + assert_eq!(c, U256::from_be_bytes(challenge_digest.0)); + } - if let Some(p) = self.kzg_proof { - assert_eq!(p, kzg_proof); - } + if let Some(p) = self.kzg_proof { + assert_eq!(p, kzg_proof); + } + + Some(build_point_eval_witness( + kzg_commitment.into_inner(), + kzg_proof.into_inner(), + )) + } else { + assert!(self.kzg_proof.is_none(), "domain=validium has no blob-da"); + assert!( + self.kzg_commitment.is_none(), + "domain=validium has no blob-da" + ); + assert!( + self.challenge_digest.is_none(), + "domain=validium has no blob-da" + ); - let point_eval_witness = Some(build_point_eval_witness( - kzg_commitment.into_inner(), - kzg_proof.into_inner(), - )); + match &self.batch_header { + BatchHeaderV::Validium(h) => assert_eq!( + h.header.batch_hash(), + h.batch_hash, + "calculated batch hash match which from coordinator" + ), + _ => panic!("unexpected header type"), + } + None + }; - let reference_header = match fork_name { - ForkName::EuclidV1 => ReferenceHeader::V6(*self.batch_header.must_v6_header()), - ForkName::EuclidV2 => ReferenceHeader::V7(*self.batch_header.must_v7_header()), - ForkName::Feynman => ReferenceHeader::V8(*self.batch_header.must_v8_header()), + let reference_header = match (version.domain, version.stf_version) { + (Domain::Scroll, STFVersion::V6) => { + ReferenceHeader::V6(*self.batch_header.must_v6_header()) + } + (Domain::Scroll, STFVersion::V7) => { + ReferenceHeader::V7(*self.batch_header.must_v7_header()) + } + (Domain::Scroll, STFVersion::V8) => { + ReferenceHeader::V8(*self.batch_header.must_v8_header()) + } + (Domain::Validium, STFVersion::V1) => { + ReferenceHeader::Validium(*self.batch_header.must_validium_header()) + } + (domain, stf_version) => { + unreachable!("unsupported domain={domain:?},stf-version={stf_version:?}") + } }; BatchWitness { - fork_name, + version: version.as_version_byte(), + fork_name: version.fork, chunk_proofs: self.chunk_proofs.iter().map(|proof| proof.into()).collect(), chunk_infos: self .chunk_proofs @@ -193,15 +250,78 @@ impl BatchProvingTask { } pub fn precheck_and_build_metadata(&self) -> Result { - let fork_name = ForkName::from(self.fork_name.as_str()); // for every aggregation task, there are two steps needed to build the metadata: // 1. generate data for metadata from the witness // 2. validate every adjacent proof pair let witness = self.build_guest_input(); let metadata = BatchInfo::from(&witness); - - super::check_aggregation_proofs(self.chunk_proofs.as_slice(), fork_name)?; + super::check_aggregation_proofs(self.chunk_proofs.as_slice(), Version::from(self.version))?; Ok(metadata) } } + +#[test] +fn test_deserde_batch_header_v_validium() { + use std::str::FromStr; + + // Top-level JSON: flattened enum tag "V1" + batch_hash + let json = r#"{ + "V1": { + "version": 1, + "batch_index": 42, + "parent_batch_hash": "0x1111111111111111111111111111111111111111111111111111111111111111", + "post_state_root": "0x2222222222222222222222222222222222222222222222222222222222222222", + "withdraw_root": "0x3333333333333333333333333333333333333333333333333333333333333333", + "commitment": "0x4444444444444444444444444444444444444444444444444444444444444444" + }, + "batch_hash": "0x5555555555555555555555555555555555555555555555555555555555555555" + }"#; + + let parsed: BatchHeaderV = serde_json::from_str(json).expect("deserialize BatchHeaderV"); + + match parsed { + BatchHeaderV::Validium(v) => { + // Check the batch_hash field + let expected_batch_hash = B256::from_str( + "0x5555555555555555555555555555555555555555555555555555555555555555", + ) + .unwrap(); + assert_eq!(v.batch_hash, expected_batch_hash); + + // Check the inner header variant and fields + match v.header { + BatchHeaderValidium::V1(h) => { + assert_eq!(h.version, 1); + assert_eq!(h.batch_index, 42); + + let p = B256::from_str( + "0x1111111111111111111111111111111111111111111111111111111111111111", + ) + .unwrap(); + let s = B256::from_str( + "0x2222222222222222222222222222222222222222222222222222222222222222", + ) + .unwrap(); + let w = B256::from_str( + "0x3333333333333333333333333333333333333333333333333333333333333333", + ) + .unwrap(); + let c = B256::from_str( + "0x4444444444444444444444444444444444444444444444444444444444444444", + ) + .unwrap(); + + assert_eq!(h.parent_batch_hash, p); + assert_eq!(h.post_state_root, s); + assert_eq!(h.withdraw_root, w); + assert_eq!(h.commitment, c); + + // Sanity: computed batch hash equals the provided one (if method available) + // assert_eq!(v.header.batch_hash(), expected_batch_hash); + } + } + } + _ => panic!("expected validium header variant"), + } +} diff --git a/crates/libzkp/src/tasks/bundle.rs b/crates/libzkp/src/tasks/bundle.rs index 6ca8645b01..ab06ec0f1f 100644 --- a/crates/libzkp/src/tasks/bundle.rs +++ b/crates/libzkp/src/tasks/bundle.rs @@ -1,17 +1,21 @@ -use crate::proofs::BatchProof; use eyre::Result; use scroll_zkvm_types::{ - bundle::{BundleInfo, BundleWitness}, - public_inputs::ForkName, + bundle::{BundleInfo, BundleWitness, LegacyBundleWitness}, + public_inputs::Version, task::ProvingTask, utils::{to_rkyv_bytes, RancorError}, }; +use crate::proofs::BatchProof; + /// Message indicating a sanity check failure. const BUNDLE_SANITY_MSG: &str = "bundle must have at least one batch"; #[derive(Clone, serde::Deserialize, serde::Serialize)] pub struct BundleProvingTask { + /// The version of batches in the bundle. + pub version: u8, + /// The STARK proofs of each batch in the bundle. pub batch_proofs: Vec, /// for sanity check pub bundle_info: Option, @@ -40,26 +44,26 @@ impl BundleProvingTask { } fn build_guest_input(&self) -> BundleWitness { + let version = Version::from(self.version); BundleWitness { + version: version.as_version_byte(), batch_proofs: self.batch_proofs.iter().map(|proof| proof.into()).collect(), batch_infos: self .batch_proofs .iter() .map(|wrapped_proof| wrapped_proof.metadata.batch_info.clone()) .collect(), - fork_name: self.fork_name.to_lowercase().as_str().into(), + fork_name: version.fork, } } pub fn precheck_and_build_metadata(&self) -> Result { - let fork_name = ForkName::from(self.fork_name.as_str()); // for every aggregation task, there are two steps needed to build the metadata: // 1. generate data for metadata from the witness // 2. validate every adjacent proof pair let witness = self.build_guest_input(); let metadata = BundleInfo::from(&witness); - - super::check_aggregation_proofs(self.batch_proofs.as_slice(), fork_name)?; + super::check_aggregation_proofs(self.batch_proofs.as_slice(), Version::from(self.version))?; Ok(metadata) } @@ -71,7 +75,8 @@ impl TryFrom for ProvingTask { fn try_from(value: BundleProvingTask) -> Result { let witness = value.build_guest_input(); let serialized_witness = if crate::witness_use_legacy_mode() { - to_rkyv_bytes::(&witness)?.into_vec() + let legacy = LegacyBundleWitness::from(witness); + to_rkyv_bytes::(&legacy)?.into_vec() } else { super::encode_task_to_witness(&witness)? }; diff --git a/crates/libzkp/src/tasks/chunk.rs b/crates/libzkp/src/tasks/chunk.rs index 730473e08f..0a283592c2 100644 --- a/crates/libzkp/src/tasks/chunk.rs +++ b/crates/libzkp/src/tasks/chunk.rs @@ -1,20 +1,26 @@ -use super::chunk_interpreter::*; use eyre::Result; use sbv_core::BlockWitness; -use sbv_primitives::B256; +use sbv_primitives::{types::consensus::BlockHeader, B256}; use scroll_zkvm_types::{ - chunk::{execute, ChunkInfo, ChunkWitness, LegacyChunkWitness}, + chunk::{execute, ChunkInfo, ChunkWitness, LegacyChunkWitness, ValidiumInputs}, task::ProvingTask, utils::{to_rkyv_bytes, RancorError}, + version::Version, }; +use super::chunk_interpreter::*; + /// The type aligned with coordinator's defination #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] pub struct ChunkTask { + /// The version for the chunk, as per [`Version`]. + pub version: u8, /// block hashes for a series of block pub block_hashes: Vec, /// The on-chain L1 msg queue hash before applying L1 msg txs from the chunk. pub prev_msg_queue_hash: B256, + /// The on-chain L1 msg queue hash after applying L1 msg txs from the chunk (for validate) + pub post_msg_queue_hash: B256, /// Fork name specify pub fork_name: String, } @@ -22,19 +28,64 @@ pub struct ChunkTask { impl TryFromWithInterpreter for ChunkProvingTask { fn try_from_with_interpret( value: ChunkTask, + decryption_key: Option<&[u8]>, interpreter: impl ChunkInterpreter, ) -> Result { let mut block_witnesses = Vec::new(); for block_hash in value.block_hashes { - let witness = + let mut witness = interpreter.try_fetch_block_witness(block_hash, block_witnesses.last())?; + if witness.header.number == 1 { + use std::str::FromStr; + let hacked_state_root = match witness.chain_id { + // cloak-xen-sequencer.sepolia + 5343513301 => Some(B256::from_str( + "0x0711f02d6f85b0597c4705298e01ee27159fdd8bd8bdeda670ae8b9073091246", + )?), + // cloak-etherfi-sequencer.sepolia + 5343513302 => Some(B256::from_str( + "0x7b44ea23770dda8810801779eb6847d56be0399e35de7c56465ccf8b7578ddf6", + )?), + // cloak-shiga-sequencer.sepolia + 5343513303 => Some(B256::from_str( + "0x05973227854ac82c22f164ed3d4510b7df516a0eecdfd9bed5f2446efc9994b9", + )?), + // cloak-xen-sequencer.mainnet + 5343523301 => Some(B256::from_str( + "0x8da1aaf41660ddf7870ab5ff4f6a3ab4b2e652568d341ede87ada56aad5fb097", + )?), + _ => None, + }; + if let Some(hacked_state_root) = hacked_state_root { + witness.prev_state_root = hacked_state_root; + tracing::warn!("hack genesis state root {:?} for cloak testnet to work around a wrong gensis configuration", witness.prev_state_root); + } + } block_witnesses.push(witness); } + let validium_txs = if Version::from(value.version).is_validium() { + let mut validium_txs = Vec::new(); + for block_number in block_witnesses.iter().map(|w| w.header.number()) { + validium_txs.push(interpreter.try_fetch_l1_msgs(block_number)?); + } + validium_txs + } else { + vec![] + }; + + let validium_inputs = decryption_key.map(|secret_key| ValidiumInputs { + validium_txs, + secret_key: secret_key.into(), + }); + Ok(Self { + version: value.version, block_witnesses, prev_msg_queue_hash: value.prev_msg_queue_hash, + post_msg_queue_hash: value.post_msg_queue_hash, fork_name: value.fork_name, + validium_inputs, }) } } @@ -48,12 +99,18 @@ const CHUNK_SANITY_MSG: &str = "chunk must have at least one block"; /// - {first_block_number}-{last_block_number} #[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct ChunkProvingTask { + /// The version for the chunk, as per [Version][scroll_zkvm_types::version::Version]. + pub version: u8, /// Witnesses for every block in the chunk. pub block_witnesses: Vec, /// The on-chain L1 msg queue hash before applying L1 msg txs from the chunk. pub prev_msg_queue_hash: B256, + /// The on-chain L1 msg queue hash after applying L1 msg txs from the chunk (for validate) + pub post_msg_queue_hash: B256, /// Fork name specify pub fork_name: String, + /// Optional inputs in case of domain=validium. + pub validium_inputs: Option, } #[derive(Clone, Debug)] @@ -126,11 +183,25 @@ impl ChunkProvingTask { } fn build_guest_input(&self) -> ChunkWitness { - ChunkWitness::new( - &self.block_witnesses, - self.prev_msg_queue_hash, - self.fork_name.to_lowercase().as_str().into(), - ) + let version = Version::from(self.version); + + if version.is_validium() { + assert!(self.validium_inputs.is_some()); + ChunkWitness::new( + version.as_version_byte(), + &self.block_witnesses, + self.prev_msg_queue_hash, + version.fork, + self.validium_inputs.clone(), + ) + } else { + ChunkWitness::new_scroll( + version.as_version_byte(), + &self.block_witnesses, + self.prev_msg_queue_hash, + version.fork, + ) + } } fn insert_state(&mut self, node: sbv_primitives::Bytes) { @@ -139,8 +210,8 @@ impl ChunkProvingTask { pub fn precheck_and_build_metadata(&self) -> Result { let witness = self.build_guest_input(); - let ret = ChunkInfo::try_from(witness).map_err(|e| eyre::eyre!("{e}"))?; + assert_eq!(ret.post_msg_queue_hash, self.post_msg_queue_hash); Ok(ret) } diff --git a/crates/libzkp/src/tasks/chunk_interpreter.rs b/crates/libzkp/src/tasks/chunk_interpreter.rs index 27ae380ae9..f96dfe6c5e 100644 --- a/crates/libzkp/src/tasks/chunk_interpreter.rs +++ b/crates/libzkp/src/tasks/chunk_interpreter.rs @@ -1,6 +1,6 @@ use eyre::Result; use sbv_core::BlockWitness; -use sbv_primitives::{Bytes, B256}; +use sbv_primitives::{types::consensus::TxL1Message, Bytes, B256}; /// An interpreter which is cirtical in translating chunk data /// since we need to grep block witness and storage node data @@ -13,13 +13,22 @@ pub trait ChunkInterpreter { ) -> Result { Err(eyre::eyre!("no implement")) } + fn try_fetch_storage_node(&self, _node_hash: B256) -> Result { Err(eyre::eyre!("no implement")) } + + fn try_fetch_l1_msgs(&self, _block_number: u64) -> Result> { + Err(eyre::eyre!("no implement")) + } } pub trait TryFromWithInterpreter: Sized { - fn try_from_with_interpret(value: T, intepreter: impl ChunkInterpreter) -> Result; + fn try_from_with_interpret( + value: T, + decryption_key: Option<&[u8]>, + intepreter: impl ChunkInterpreter, + ) -> Result; } pub struct DummyInterpreter {} diff --git a/crates/libzkp/src/verifier.rs b/crates/libzkp/src/verifier.rs index 5f6168798d..cd75b4decc 100644 --- a/crates/libzkp/src/verifier.rs +++ b/crates/libzkp/src/verifier.rs @@ -41,6 +41,7 @@ pub trait ProofVerifier { #[derive(Debug, Serialize, Deserialize)] pub struct CircuitConfig { + pub version: u8, pub fork_name: String, pub assets_path: String, } @@ -61,14 +62,18 @@ pub fn init(config: VerifierConfig) { for cfg in &config.circuits { let canonical_fork_name = cfg.fork_name.to_lowercase(); - let verifier = Verifier::new(&cfg.assets_path, canonical_fork_name.as_str().into()); + let verifier = Verifier::new(&cfg.assets_path, cfg.version); let ret = verifiers.insert(canonical_fork_name, Arc::new(Mutex::new(verifier))); assert!( ret.is_none(), "DO NOT init the same fork {} twice", cfg.fork_name ); - tracing::info!("load verifier config for fork {}", cfg.fork_name); + tracing::info!( + "load verifier config for fork {} (ver {})", + cfg.fork_name, + cfg.version + ); } let ret = VERIFIERS.set(verifiers).is_ok(); diff --git a/crates/libzkp/src/verifier/universal.rs b/crates/libzkp/src/verifier/universal.rs index 5fb8d0958d..e50fe16f40 100644 --- a/crates/libzkp/src/verifier/universal.rs +++ b/crates/libzkp/src/verifier/universal.rs @@ -6,22 +6,22 @@ use crate::{ proofs::{AsRootProof, BatchProof, BundleProof, ChunkProof, IntoEvmProof}, utils::panic_catch, }; -use scroll_zkvm_types::public_inputs::ForkName; +use scroll_zkvm_types::version::Version; use scroll_zkvm_verifier::verifier::UniversalVerifier; use std::path::Path; pub struct Verifier { verifier: UniversalVerifier, - fork: ForkName, + version: Version, } impl Verifier { - pub fn new(assets_dir: &str, fork: ForkName) -> Self { + pub fn new(assets_dir: &str, ver_n: u8) -> Self { let verifier_bin = Path::new(assets_dir); Self { verifier: UniversalVerifier::setup(verifier_bin).expect("Setting up chunk verifier"), - fork, + version: Version::from(ver_n), } } } @@ -31,21 +31,21 @@ impl ProofVerifier for Verifier { panic_catch(|| match task_type { TaskType::Chunk => { let proof = serde_json::from_slice::(proof).unwrap(); - assert!(proof.pi_hash_check(self.fork)); + assert!(proof.pi_hash_check(self.version)); self.verifier .verify_stark_proof(proof.as_root_proof(), &proof.vk) .unwrap() } TaskType::Batch => { let proof = serde_json::from_slice::(proof).unwrap(); - assert!(proof.pi_hash_check(self.fork)); + assert!(proof.pi_hash_check(self.version)); self.verifier .verify_stark_proof(proof.as_root_proof(), &proof.vk) .unwrap() } TaskType::Bundle => { let proof = serde_json::from_slice::(proof).unwrap(); - assert!(proof.pi_hash_check(self.fork)); + assert!(proof.pi_hash_check(self.version)); let vk = proof.vk.clone(); let evm_proof = proof.into_evm_proof(); self.verifier.verify_evm_proof(&evm_proof, &vk).unwrap() diff --git a/crates/libzkp_c/src/lib.rs b/crates/libzkp_c/src/lib.rs index 4595a11ddf..4f05a3b060 100644 --- a/crates/libzkp_c/src/lib.rs +++ b/crates/libzkp_c/src/lib.rs @@ -152,11 +152,22 @@ pub unsafe extern "C" fn gen_universal_task( fork_name: *const c_char, expected_vk: *const u8, expected_vk_len: usize, + decryption_key: *const u8, + decryption_key_len: usize, ) -> HandlingResult { let task_json = if task_type == TaskType::Chunk as i32 { let pre_task_str = c_char_to_str(task); let cli = l2geth::get_client(); - match libzkp::checkout_chunk_task(pre_task_str, cli) { + let decryption_key = if decryption_key_len > 0 { + assert_eq!(decryption_key_len, 32, "len(decryption_key) != 32"); + Some(std::slice::from_raw_parts( + decryption_key, + decryption_key_len, + )) + } else { + None + }; + match libzkp::checkout_chunk_task(pre_task_str, decryption_key, cli) { Ok(str) => str, Err(e) => { tracing::error!("gen_universal_task failed at pre interpret step, error: {e}"); diff --git a/crates/prover-bin/assets_url_preset.json b/crates/prover-bin/assets_url_preset.json index 177be0bfbe..4bdb819490 100644 --- a/crates/prover-bin/assets_url_preset.json +++ b/crates/prover-bin/assets_url_preset.json @@ -2,6 +2,9 @@ "feynman": { "b68fdc3f28a5ce006280980df70cd3447e56913e5bca6054603ba85f0794c23a6618ea25a7991845bbc5fd571670ee47379ba31ace92d345bca59702a0d4112d": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/chunk/", "9a3f66370f11e3303f1a1248921025104e83253efea43a70d221cf4e15fc145bf2be2f4468d1ac4a70e7682babb1c60417e21c7633d4b55b58f44703ec82b05a": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/batch/", - "1f8627277e1c1f6e1cc70c03e6fde06929e5ea27ca5b1d56e23b235dfeda282e22c0e5294bcb1b3a9def836f8d0f18612a9860629b9497292976ca11844b7e73": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/bundle/" + "1f8627277e1c1f6e1cc70c03e6fde06929e5ea27ca5b1d56e23b235dfeda282e22c0e5294bcb1b3a9def836f8d0f18612a9860629b9497292976ca11844b7e73": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.5.2/bundle/", + "7eb91f1885cc7a63cc848928f043fa56bf747161a74cd933d88c0456b90643346618ea25a7991845bbc5fd571670ee47379ba31ace92d345bca59702a0d4112d": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.6.0-rc.1/chunk/", + "dc653e7416628c612fa4d80b4724002bad4fde3653aef7316b80df0c19740a1bf2be2f4468d1ac4a70e7682babb1c60417e21c7633d4b55b58f44703ec82b05a": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.6.0-rc.1/batch/", + "14de1c74b663ed3c99acb03e90a5753b5923233c5c590864ad7746570297d16722c0e5294bcb1b3a9def836f8d0f18612a9860629b9497292976ca11844b7e73": "https://circuit-release.s3.us-west-2.amazonaws.com/scroll-zkvm/releases/0.6.0-rc.1/bundle/" } } diff --git a/go.work b/go.work index 4cbfe753ee..1d566a8b54 100644 --- a/go.work +++ b/go.work @@ -1,7 +1,7 @@ go 1.22.4 use ( - ./bridge-history-api + // ./bridge-history-api ./common ./coordinator ./database diff --git a/go.work.sum b/go.work.sum index d02aaadb78..03de10be1a 100644 --- a/go.work.sum +++ b/go.work.sum @@ -731,8 +731,10 @@ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1: github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= github.com/compose-spec/compose-go v1.20.0 h1:h4ZKOst1EF/DwZp7dWkb+wbTVE4nEyT9Lc89to84Ol4= github.com/compose-spec/compose-go v1.20.0/go.mod h1:+MdqXV4RA7wdFsahh/Kb8U0pAJqkg7mr4PM9tFKU8RM= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/bavard v0.1.27/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= +github.com/consensys/gnark-crypto v0.13.0/go.mod h1:wKqwsieaKPThcFkHe0d0zMsbHEUWFmZcG7KBCse210o= github.com/container-orchestrated-devices/container-device-interface v0.6.1 h1:mz77uJoP8im/4Zins+mPqt677ZMaflhoGaYrRAl5jvA= github.com/container-orchestrated-devices/container-device-interface v0.6.1/go.mod h1:40T6oW59rFrL/ksiSs7q45GzjGlbvxnA4xaK6cyq+kA= github.com/containerd/aufs v1.0.0 h1:2oeJiwX5HstO7shSrPZjrohJZLzK36wvpdmzDRkL/LY= @@ -792,6 +794,7 @@ github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS3 github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/deepmap/oapi-codegen v1.6.0 h1:w/d1ntwh91XI0b/8ja7+u5SvA4IFfM0UNNLmiDR1gg0= @@ -1199,6 +1202,7 @@ github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0 github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/labstack/gommon v0.3.1/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A= github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= github.com/lestrrat-go/blackmagic v1.0.0 h1:XzdxDbuQTz0RZZEmdU7cnQxUtFUzgCSPq8RCz4BxIi4= @@ -1409,6 +1413,7 @@ github.com/scroll-tech/da-codec v0.1.3-0.20250609113414-f33adf0904bd/go.mod h1:g github.com/scroll-tech/da-codec v0.1.3-0.20250609154559-8935de62c148 h1:cyK1ifU2fRoMl8YWR9LOsZK4RvJnlG3RODgakj5I8VY= github.com/scroll-tech/da-codec v0.1.3-0.20250609154559-8935de62c148/go.mod h1:gz5x3CsLy5htNTbv4PWRPBU9nSAujfx1U2XtFcXoFuk= github.com/scroll-tech/da-codec v0.1.3-0.20250626091118-58b899494da6/go.mod h1:Z6kN5u2khPhiqHyk172kGB7o38bH/nj7Ilrb/46wZGg= +github.com/scroll-tech/da-codec v0.1.3-0.20250825071838-cddc263e5ef6/go.mod h1:Z6kN5u2khPhiqHyk172kGB7o38bH/nj7Ilrb/46wZGg= github.com/scroll-tech/go-ethereum v1.10.14-0.20240607130425-e2becce6a1a4/go.mod h1:byf/mZ8jLYUCnUePTicjJWn+RvKdxDn7buS6glTnMwQ= github.com/scroll-tech/go-ethereum v1.10.14-0.20240821074444-b3fa00861e5e/go.mod h1:swB5NSp8pKNDuYsTxfR08bHS6L56i119PBx8fxvV8Cs= github.com/scroll-tech/go-ethereum v1.10.14-0.20241010064814-3d88e870ae22/go.mod h1:r9FwtxCtybMkTbWYCyBuevT9TW3zHmOTHqD082Uh+Oo= @@ -1611,6 +1616,7 @@ golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOM golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1781,6 +1787,7 @@ golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2 h1:IRJeR9r1pYWsHKTRe/IInb7lYvbBVIqOgsX/u0mbOWY= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= @@ -1789,6 +1796,7 @@ golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/rollup/cmd/rollup_relayer/app/app.go b/rollup/cmd/rollup_relayer/app/app.go index a7111d7be7..f40f8b0765 100644 --- a/rollup/cmd/rollup_relayer/app/app.go +++ b/rollup/cmd/rollup_relayer/app/app.go @@ -111,7 +111,7 @@ func action(ctx *cli.Context) error { batchProposer := watcher.NewBatchProposer(subCtx, cfg.L2Config.BatchProposerConfig, minCodecVersion, genesis.Config, db, cfg.L2Config.RelayerConfig.ValidiumMode, registry) bundleProposer := watcher.NewBundleProposer(subCtx, cfg.L2Config.BundleProposerConfig, minCodecVersion, genesis.Config, db, registry) - l2watcher := watcher.NewL2WatcherClient(subCtx, l2client, cfg.L2Config.Confirmations, cfg.L2Config.L2MessageQueueAddress, cfg.L2Config.WithdrawTrieRootSlot, genesis.Config, db, registry) + l2watcher := watcher.NewL2WatcherClient(subCtx, l2client, cfg.L2Config.Confirmations, cfg.L2Config.L2MessageQueueAddress, cfg.L2Config.WithdrawTrieRootSlot, genesis.Config, db, cfg.L2Config.RelayerConfig.ValidiumMode, registry) if cfg.RecoveryConfig != nil && cfg.RecoveryConfig.Enable { log.Info("Starting rollup-relayer in recovery mode", "version", version.Version) diff --git a/rollup/go.mod b/rollup/go.mod index 9fa5c5c55c..53fdad3b95 100644 --- a/rollup/go.mod +++ b/rollup/go.mod @@ -16,7 +16,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.16.0 github.com/scroll-tech/da-codec v0.1.3-0.20250826112206-b4cce5c5d178 - github.com/scroll-tech/go-ethereum v1.10.14-0.20250626110859-cc9a1dd82de7 + github.com/scroll-tech/go-ethereum v1.10.14-0.20250929111815-80dc0952e664 github.com/smartystreets/goconvey v1.8.0 github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.10.0 @@ -51,6 +51,7 @@ require ( github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/edsrzf/mmap-go v1.0.0 // indirect github.com/ethereum/c-kzg-4844 v1.0.3 // indirect github.com/fjl/memsize v0.0.2 // indirect @@ -109,6 +110,7 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/scroll-tech/ecies-go/v2 v2.0.10-beta.1 // indirect github.com/scroll-tech/zktrie v0.8.4 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/smartystreets/assertions v1.13.1 // indirect diff --git a/rollup/go.sum b/rollup/go.sum index 1c79800aca..a2eac29574 100644 --- a/rollup/go.sum +++ b/rollup/go.sum @@ -88,6 +88,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea h1:j4317fAZh7X6GqbFowYdYdI0L9bwxL07jyPZIdepyZ0= github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= @@ -287,8 +289,10 @@ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6g github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/scroll-tech/da-codec v0.1.3-0.20250826112206-b4cce5c5d178 h1:4utngmJHXSOS5FoSdZhEV1xMRirpArbXvyoCZY9nYj0= github.com/scroll-tech/da-codec v0.1.3-0.20250826112206-b4cce5c5d178/go.mod h1:Z6kN5u2khPhiqHyk172kGB7o38bH/nj7Ilrb/46wZGg= -github.com/scroll-tech/go-ethereum v1.10.14-0.20250626110859-cc9a1dd82de7 h1:1rN1qocsQlOyk1VCpIEF1J5pfQbLAi1pnMZSLQS37jQ= -github.com/scroll-tech/go-ethereum v1.10.14-0.20250626110859-cc9a1dd82de7/go.mod h1:pDCZ4iGvEGmdIe4aSAGBrb7XSrKEML6/L/wEMmNxOdk= +github.com/scroll-tech/ecies-go/v2 v2.0.10-beta.1 h1:plwnNnxdaPH7VZ1adhVceHzYVq0s51KV8ObKX9dcgnU= +github.com/scroll-tech/ecies-go/v2 v2.0.10-beta.1/go.mod h1:A+pHaITd+ogBm4Rk35xebF9OPiyMYlFlgqBOiY5PSjg= +github.com/scroll-tech/go-ethereum v1.10.14-0.20250929111815-80dc0952e664 h1:kfjpLET2ZJGt8023+2Ygjs4yjtsFrWuQxSWPOyZJoB0= +github.com/scroll-tech/go-ethereum v1.10.14-0.20250929111815-80dc0952e664/go.mod h1:7k+F68rIpx6js9Q+rgwnokywAMSDgkgKwg5iogEkrTI= github.com/scroll-tech/zktrie v0.8.4 h1:UagmnZ4Z3ITCk+aUq9NQZJNAwnWl4gSxsLb2Nl7IgRE= github.com/scroll-tech/zktrie v0.8.4/go.mod h1:XvNo7vAk8yxNyTjBDj5WIiFzYW4bx/gJ78+NK6Zn6Uk= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= diff --git a/rollup/internal/controller/relayer/l2_relayer.go b/rollup/internal/controller/relayer/l2_relayer.go index 5489596ce5..b255a23db6 100644 --- a/rollup/internal/controller/relayer/l2_relayer.go +++ b/rollup/internal/controller/relayer/l2_relayer.go @@ -1040,7 +1040,15 @@ func (r *Layer2Relayer) constructCommitBatchPayloadValidium(batch *dbBatchWithCh lastChunk := batch.Chunks[len(batch.Chunks)-1] commitment := common.HexToHash(lastChunk.EndBlockHash) - version := encoding.CodecVersion(batch.Batch.CodecVersion) + var version uint8 + if encoding.CodecVersion(batch.Batch.CodecVersion) == encoding.CodecV8 { + // Validium version line starts with v1, + // but rollup-relayer behavior follows v8. + version = 1 + } else { + return nil, 0, 0, fmt.Errorf("unexpected codec version %d for validium mode", batch.Batch.CodecVersion) + } + calldata, err := r.validiumABI.Pack("commitBatch", version, common.HexToHash(batch.Batch.ParentBatchHash), common.HexToHash(batch.Batch.StateRoot), common.HexToHash(batch.Batch.WithdrawRoot), commitment[:]) if err != nil { return nil, 0, 0, fmt.Errorf("failed to pack commitBatch: %w", err) diff --git a/rollup/internal/controller/sender/estimategas.go b/rollup/internal/controller/sender/estimategas.go index 6e5b13687c..3d29838655 100644 --- a/rollup/internal/controller/sender/estimategas.go +++ b/rollup/internal/controller/sender/estimategas.go @@ -52,7 +52,7 @@ func (s *Sender) estimateDynamicGas(to *common.Address, data []byte, baseFee uin if err != nil { log.Error("estimateDynamicGas estimateGasLimit failure", "from", s.transactionSigner.GetAddr().String(), "nonce", s.transactionSigner.GetNonce(), "to address", to.String(), - "fallback gas limit", "error", err) + "error", err) return nil, err } diff --git a/rollup/internal/controller/watcher/l2_watcher.go b/rollup/internal/controller/watcher/l2_watcher.go index b216daeee2..207c3cdb1b 100644 --- a/rollup/internal/controller/watcher/l2_watcher.go +++ b/rollup/internal/controller/watcher/l2_watcher.go @@ -8,6 +8,8 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/scroll-tech/da-codec/encoding" "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core/types" + "github.com/scroll-tech/go-ethereum/eth" "github.com/scroll-tech/go-ethereum/ethclient" "github.com/scroll-tech/go-ethereum/event" "github.com/scroll-tech/go-ethereum/log" @@ -32,13 +34,15 @@ type L2WatcherClient struct { messageQueueAddress common.Address withdrawTrieRootSlot common.Hash + validiumMode bool + metrics *l2WatcherMetrics chainCfg *params.ChainConfig } // NewL2WatcherClient take a l2geth instance to generate a l2watcherclient instance -func NewL2WatcherClient(ctx context.Context, client *ethclient.Client, confirmations rpc.BlockNumber, messageQueueAddress common.Address, withdrawTrieRootSlot common.Hash, chainCfg *params.ChainConfig, db *gorm.DB, reg prometheus.Registerer) *L2WatcherClient { +func NewL2WatcherClient(ctx context.Context, client *ethclient.Client, confirmations rpc.BlockNumber, messageQueueAddress common.Address, withdrawTrieRootSlot common.Hash, chainCfg *params.ChainConfig, db *gorm.DB, validiumMode bool, reg prometheus.Registerer) *L2WatcherClient { return &L2WatcherClient{ ctx: ctx, Client: client, @@ -50,6 +54,8 @@ func NewL2WatcherClient(ctx context.Context, client *ethclient.Client, confirmat messageQueueAddress: messageQueueAddress, withdrawTrieRootSlot: withdrawTrieRootSlot, + validiumMode: validiumMode, + metrics: initL2WatcherMetrics(reg), chainCfg: chainCfg, @@ -95,21 +101,51 @@ func (w *L2WatcherClient) GetAndStoreBlocks(ctx context.Context, from, to uint64 return fmt.Errorf("failed to BlockByNumber: %v. number: %v", err, number) } + blockTxs := block.Transactions() + var count int - for _, tx := range block.Transactions() { + for _, tx := range blockTxs { if tx.IsL1MessageTx() { count++ } } log.Info("retrieved block", "height", block.Header().Number, "hash", block.Header().Hash().String(), "L1 message count", count) + // use original (encrypted) L1 message txs in validium mode + if w.validiumMode { + var txs []*types.Transaction + + if count > 0 { + log.Info("Fetching encrypted messages in validium mode") + txs, err = w.GetL1MessagesInBlock(context.Background(), block.Hash(), eth.QueryModeSynced) + if err != nil { + return fmt.Errorf("failed to get L1 messages: %v, block hash: %v", err, block.Hash().Hex()) + } + } + + // sanity check + if len(txs) != count { + return fmt.Errorf("L1 message count mismatch: expected %d, got %d", count, len(txs)) + } + + for ii := 0; ii < count; ii++ { + // sanity check + if blockTxs[ii].AsL1MessageTx().QueueIndex != txs[ii].AsL1MessageTx().QueueIndex { + return fmt.Errorf("L1 message queue index mismatch at index %d: expected %d, got %d", ii, blockTxs[ii].AsL1MessageTx().QueueIndex, txs[ii].AsL1MessageTx().QueueIndex) + } + + log.Info("Replacing L1 message tx in validium mode", "index", ii, "queueIndex", txs[ii].AsL1MessageTx().QueueIndex, "decryptedTxHash", blockTxs[ii].Hash().Hex(), "originalTxHash", txs[ii].Hash().Hex()) + blockTxs[ii] = txs[ii] + } + } + withdrawRoot, err3 := w.StorageAt(ctx, w.messageQueueAddress, w.withdrawTrieRootSlot, big.NewInt(int64(number))) if err3 != nil { return fmt.Errorf("failed to get withdrawRoot: %v. number: %v", err3, number) } blocks = append(blocks, &encoding.Block{ Header: block.Header(), - Transactions: encoding.TxsToTxsData(block.Transactions()), + Transactions: encoding.TxsToTxsData(blockTxs), WithdrawRoot: common.BytesToHash(withdrawRoot), }) } diff --git a/rollup/internal/utils/utils.go b/rollup/internal/utils/utils.go index 9a55b93e21..3887f9cf01 100644 --- a/rollup/internal/utils/utils.go +++ b/rollup/internal/utils/utils.go @@ -8,6 +8,7 @@ import ( "github.com/scroll-tech/da-codec/encoding" "github.com/scroll-tech/go-ethereum/common" "github.com/scroll-tech/go-ethereum/crypto" + "github.com/scroll-tech/go-ethereum/log" ) // ChunkMetrics indicates the metrics for proposing a chunk. @@ -138,6 +139,26 @@ func encodeBatchHeaderValidium(b *encoding.Batch, codecVersion encoding.CodecVer // TODO: This is a temporary solution, we might use a larger commitment in the future lastBlock := b.Blocks[len(b.Blocks)-1] commitment := lastBlock.Header.Hash() + stateRoot := b.StateRoot() + + // Temporary workaround for the wrong genesis state root configuration issue. + if lastBlock.Header.Number.Uint64() == 0 { + if commitment == common.HexToHash("0x76a8e1359fe1a51ec3917ca98dec95ba005f1a73bcdbc2c7f87c7683e828fbb1") && stateRoot == common.HexToHash("0x08d535cc60f40af5dd3b31e0998d7567c2d568b224bed2ba26070aeb078d1339") { + // cloak-xen/sepolia + stateRoot = common.HexToHash("0x0711f02d6f85b0597c4705298e01ee27159fdd8bd8bdeda670ae8b9073091246") + } else if commitment == common.HexToHash("0x8005a02271085eaded2565f3e252013cd9d3cd0a4775d89f9ba4224289671276") && stateRoot == common.HexToHash("0x08d535cc60f40af5dd3b31e0998d7567c2d568b224bed2ba26070aeb078d1339") { + // cloak-xen/mainnet + stateRoot = common.HexToHash("0x8da1aaf41660ddf7870ab5ff4f6a3ab4b2e652568d341ede87ada56aad5fb097") + } else if commitment == common.HexToHash("0xa7e50dfc812039410c2009c74cdcb0c0797aa5485dec062985eaa43b17d333ea") && stateRoot == common.HexToHash("0x08d535cc60f40af5dd3b31e0998d7567c2d568b224bed2ba26070aeb078d1339") { + // cloak-etherfi/sepolia + stateRoot = common.HexToHash("0x7b44ea23770dda8810801779eb6847d56be0399e35de7c56465ccf8b7578ddf6") + } else if commitment == common.HexToHash("0xeccf4fab24f8b5dd3b72667c6bf5e28b17ccffdea01e3e5c08f393edaa9e7657") && stateRoot == common.HexToHash("0x08d535cc60f40af5dd3b31e0998d7567c2d568b224bed2ba26070aeb078d1339") { + // cloak-shiga/sepolia + stateRoot = common.HexToHash("0x05973227854ac82c22f164ed3d4510b7df516a0eecdfd9bed5f2446efc9994b9") + } + + log.Warn("Using genesis state root", "stateRoot", stateRoot.Hex()) + } // Batch header field sizes const ( @@ -164,10 +185,22 @@ func encodeBatchHeaderValidium(b *encoding.Batch, codecVersion encoding.CodecVer commitmentOffset = withdrawRootOffset + withdrawRootSize ) - batchBytes[versionOffset] = uint8(codecVersion) // version + var version uint8 + if codecVersion == encoding.CodecV8 { + // Validium version line starts with v1, + // but rollup-relayer behavior follows v8. + version = 1 + } else if codecVersion == encoding.CodecV0 { + // Special case for genesis batch + version = 0 + } else { + return nil, common.Hash{}, fmt.Errorf("unexpected codec version %d for batch %v in validium mode", codecVersion, b.Index) + } + + batchBytes[versionOffset] = version // version binary.BigEndian.PutUint64(batchBytes[indexOffset:indexOffset+indexSize], b.Index) // batch index copy(batchBytes[parentHashOffset:parentHashOffset+parentHashSize], b.ParentBatchHash[0:parentHashSize]) // parentBatchHash - copy(batchBytes[stateRootOffset:stateRootOffset+stateRootSize], b.StateRoot().Bytes()[0:stateRootSize]) // postStateRoot + copy(batchBytes[stateRootOffset:stateRootOffset+stateRootSize], stateRoot.Bytes()[0:stateRootSize]) // postStateRoot copy(batchBytes[withdrawRootOffset:withdrawRootOffset+withdrawRootSize], b.WithdrawRoot().Bytes()[0:withdrawRootSize]) // postWithdrawRoot copy(batchBytes[commitmentOffset:commitmentOffset+commitmentSize], commitment[0:commitmentSize]) // data commitment diff --git a/rollup/tests/integration_tool/imports.go b/rollup/tests/integration_tool/imports.go index 48c45f366e..d7edcf5036 100644 --- a/rollup/tests/integration_tool/imports.go +++ b/rollup/tests/integration_tool/imports.go @@ -10,9 +10,11 @@ import ( "github.com/scroll-tech/da-codec/encoding" "github.com/scroll-tech/go-ethereum/common" + "github.com/scroll-tech/go-ethereum/core/types" "github.com/scroll-tech/go-ethereum/log" "scroll-tech/common/database" + ctypes "scroll-tech/common/types" "scroll-tech/rollup/internal/orm" "scroll-tech/rollup/internal/utils" @@ -46,6 +48,7 @@ func importData(ctx context.Context, beginBlk, endBlk uint64, chkNum, batchNum, if err != nil { return nil, err } + ret := &importRecord{} // Create a new random source with the provided seed source := rand.NewSource(seed) @@ -62,6 +65,9 @@ func importData(ctx context.Context, beginBlk, endBlk uint64, chkNum, batchNum, log.Info("separated chunk", "border", chkSep) head := beginBlk lastMsgHash := common.Hash{} + if err := initLeadingChunk(ctx, db, beginBlk, endBlk, lastMsgHash); err != nil { + return nil, err + } ormChks := make([]*orm.Chunk, 0, chkNum) encChks := make([]*encoding.Chunk, 0, chkNum) @@ -118,6 +124,73 @@ func importData(ctx context.Context, beginBlk, endBlk uint64, chkNum, batchNum, return ret, nil } +func initLeadingChunk(ctx context.Context, db *gorm.DB, beginBlk, endBlk uint64, prevMsgQueueHash common.Hash) error { + blockOrm := orm.NewL2Block(db) + if beginBlk <= 1 { + log.Info("start from genesis, no need to insert leading chunk") + return nil + } + + var l1MsgPoppedBefore uint64 + blks, err := blockOrm.GetL2BlocksGEHeight(ctx, beginBlk, int(endBlk-beginBlk+1)) + if err != nil { + return err + } + for i, block := range blks { + for _, tx := range block.Transactions { + if tx.Type == types.L1MessageTxType { + l1MsgPoppedBefore = tx.Nonce + log.Info("search first l1 nonce", "index", l1MsgPoppedBefore, "blk", beginBlk+uint64(i)) + break + } + } + if l1MsgPoppedBefore != 0 { + break + } + } + + if l1MsgPoppedBefore == 0 { + log.Info("no l1 message in target blks, no need for leading chunk") + return nil + } + + prevBlks, err := blockOrm.GetL2BlocksGEHeight(ctx, beginBlk-1, 1) + if err != nil { + log.Error("get prev block fail, we also need at least 1 block before selected range", "need block", beginBlk-1, "err", err) + return err + } + + // we use InsertTestChunkForProposerTool to insert leading chunk, which do not calculate l1 message + // so we simply exclude l1 in this hacked chunk + prevBlk := prevBlks[0] + var trimLen int + for _, tx := range prevBlk.Transactions { + if tx.Type != types.L1MessageTxType { + prevBlk.Transactions[trimLen] = tx + trimLen++ + } + } + prevBlk.Transactions = prevBlk.Transactions[:trimLen] + + postHash, err := encoding.MessageQueueV2ApplyL1MessagesFromBlocks(prevMsgQueueHash, prevBlks) + if err != nil { + return err + } + chunkOrm := orm.NewChunk(db) + + log.Info("Insert leading chunk with prev block", "msgPoppedBefore", l1MsgPoppedBefore) + leadingChunk, err := chunkOrm.InsertTestChunkForProposerTool(ctx, &encoding.Chunk{ + Blocks: prevBlks, + PrevL1MessageQueueHash: prevMsgQueueHash, + PostL1MessageQueueHash: postHash, + }, codecCfg, l1MsgPoppedBefore) + if err != nil { + return err + } + + return chunkOrm.UpdateProvingStatus(ctx, leadingChunk.Hash, ctypes.ProvingTaskProvedDEPRECATED) +} + func importChunk(ctx context.Context, db *gorm.DB, beginBlk, endBlk uint64, prevMsgQueueHash common.Hash) (*orm.Chunk, *encoding.Chunk, error) { nblk := int(endBlk-beginBlk) + 1 blockOrm := orm.NewL2Block(db) @@ -183,9 +256,13 @@ func importBatch(ctx context.Context, db *gorm.DB, chks []*orm.Chunk, encChks [] ParentBatchHash: parentHash, Chunks: encChks, Blocks: blks, + PrevL1MessageQueueHash: encChks[0].PrevL1MessageQueueHash, + PostL1MessageQueueHash: encChks[len(encChks)-1].PostL1MessageQueueHash, } - dbBatch, err := batchOrm.InsertBatch(ctx, batch, codecCfg, utils.BatchMetrics{}) + dbBatch, err := batchOrm.InsertBatch(ctx, batch, codecCfg, utils.BatchMetrics{ + ValidiumMode: cfg.ValidiumMode, + }) if err != nil { return nil, err } diff --git a/rollup/tests/integration_tool/main.go b/rollup/tests/integration_tool/main.go index 1a2a109316..5cb9130ea2 100644 --- a/rollup/tests/integration_tool/main.go +++ b/rollup/tests/integration_tool/main.go @@ -86,7 +86,8 @@ func parseThreeIntegers(value string) (int, int, int, error) { // load a comptabile type of config for rollup type config struct { - DBConfig *database.Config `json:"db_config"` + DBConfig *database.Config `json:"db_config"` + ValidiumMode bool `json:"validium_mode"` } func init() { diff --git a/tests/prover-e2e/00100_import_blocks.sql b/tests/prover-e2e/00100_import_blocks.sql index a3c6a4ee1e..a5d88b2c04 100644 --- a/tests/prover-e2e/00100_import_blocks.sql +++ b/tests/prover-e2e/00100_import_blocks.sql @@ -1,132 +1,205 @@ -- +goose Up -- +goose StatementBegin + +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('1', '0x2cf159ce09014804b2afb1c5d45b6454a9fae06f11b96c45d9230e7f26050ba5', '0x76a8e1359fe1a51ec3917ca98dec95ba005f1a73bcdbc2c7f87c7683e828fbb1', '{"parentHash":"0x76a8e1359fe1a51ec3917ca98dec95ba005f1a73bcdbc2c7f87c7683e828fbb1","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x006197b961e8362f723d6a43a1ceb4d57125febb14b1eb0448fa67b6a874cd87","transactionsRoot":"0x7baeaf7fcd8a8b349b646821774280b5012cb0a1d6bbf5b300af836015c498ec","receiptsRoot":"0x74db219a6d236fc7ab051b5aa129654e6125e7781762f0ca2203293f1361b709","logsBloom":"0x00000000000000000000000000000000040800000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000800000080000020000000020000000000000010","difficulty":"0x1","number":"0x1","gasLimit":"0x130e0b6","gasUsed":"0x68756","timestamp":"0x68cb10d3","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x2cf159ce09014804b2afb1c5d45b6454a9fae06f11b96c45d9230e7f26050ba5","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x006197b961e8362f723d6a43a1ceb4d57125febb14b1eb0448fa67b6a874cd87', '1', '427862', '1758138579', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":1,"txHash":"0x93494c827b9d2c07344546362d1e195b922d61e919e5219841e24b70dde271f1","gas":590983,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0x5b14b4805b5027dfae4a4d961673b305b9ea907f9f536044d08b8f08a208aea9608060405234801561000f575f80fd5b5060405161070838038061070883398101604081905261002e91610095565b61003733610046565b61004081610046565b506100c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100a5575f80fd5b81516001600160a01b03811681146100bb575f80fd5b9392505050565b610639806100cf5f395ff3fe608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010957806399a88ec41461011c578063f2fde38b1461013b578063f3b7dead1461015a575f80fd5b8063204e1c7a1461007d578063715018a6146100b85780637eff275e146100ce5780638da5cb5b146100ed575b5f80fd5b348015610088575f80fd5b5061009c610097366004610479565b610179565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c3575f80fd5b506100cc610204565b005b3480156100d9575f80fd5b506100cc6100e836600461049b565b610217565b3480156100f8575f80fd5b505f546001600160a01b031661009c565b6100cc6101173660046104e6565b61027a565b348015610127575f80fd5b506100cc61013636600461049b565b6102e5565b348015610146575f80fd5b506100cc610155366004610479565b61031b565b348015610165575f80fd5b5061009c610174366004610479565b610399565b5f805f836001600160a01b031660405161019d90635c60da1b60e01b815260040190565b5f60405180830381855afa9150503d805f81146101d5576040519150601f19603f3d011682016040523d82523d5f602084013e6101da565b606091505b5091509150816101e8575f80fd5b808060200190518101906101fc91906105b5565b949350505050565b61020c6103bd565b6102155f610416565b565b61021f6103bd565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b5f604051808303815f87803b158015610260575f80fd5b505af1158015610272573d5f803e3d5ffd5b505050505050565b6102826103bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102b290869086906004016105d0565b5f604051808303818588803b1580156102c9575f80fd5b505af11580156102db573d5f803e3d5ffd5b5050505050505050565b6102ed6103bd565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe690602401610249565b6103236103bd565b6001600160a01b03811661038d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61039681610416565b50565b5f805f836001600160a01b031660405161019d906303e1469160e61b815260040190565b5f546001600160a01b031633146102155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610384565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610396575f80fd5b5f60208284031215610489575f80fd5b813561049481610465565b9392505050565b5f80604083850312156104ac575f80fd5b82356104b781610465565b915060208301356104c781610465565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f606084860312156104f8575f80fd5b833561050381610465565b9250602084013561051381610465565b9150604084013567ffffffffffffffff8082111561052f575f80fd5b818601915086601f830112610542575f80fd5b813581811115610554576105546104d2565b604051601f8201601f19908116603f0116810190838211818310171561057c5761057c6104d2565b81604052828152896020848701011115610594575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f602082840312156105c5575f80fd5b815161049481610465565b60018060a01b03831681525f60206040602084015283518060408501525f5b8181101561060b578581018301518582016060015282016105ef565b505f606082860101526060601f19601f83011685010192505050939250505056fea164736f6c6343000818000a00000000000000000000000064a53e139d11b17b24de4dd0a242a54c37d1c0ff","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xce154d630978e842fcb727636335667007faaea1789245e30ad2a83ee158aafc","s":"0x29b13c22f6799334507212bd7be5c62d85bc1591e5e4d5cf021723db36efaa71"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('2', '0x677df43e4586a28a7ed51c1647feff278522468bf737556a250e536c0c9d4b59', '0x2cf159ce09014804b2afb1c5d45b6454a9fae06f11b96c45d9230e7f26050ba5', '{"parentHash":"0x2cf159ce09014804b2afb1c5d45b6454a9fae06f11b96c45d9230e7f26050ba5","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x42a7257b91e62f9f232d0cc407680cb882a37199551ffbf5a58fccf9127ec4cf","transactionsRoot":"0xd8122d253e929d057f0c4edea0fb5a35c48cc49b6a2e52af6601614c22107d96","receiptsRoot":"0xf6ac418c4e27294eea08b2601cafa749fda84662f6fa715de1b4ff34eb5b15c7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x2","gasLimit":"0x130947f","gasUsed":"0xe4f2","timestamp":"0x68cb1147","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x677df43e4586a28a7ed51c1647feff278522468bf737556a250e536c0c9d4b59","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x42a7257b91e62f9f232d0cc407680cb882a37199551ffbf5a58fccf9127ec4cf', '1', '58610', '1758138695', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":2,"txHash":"0xfc67189c0a29e977b363200542161f8512f3ca75cb09e3c3e0f46f6c7ab4a017","gas":85716,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0x0d69a0387df0eea933e775daba9054e3a4a7381f9a9d0469067f68cd46946f4f6080604052348015600e575f80fd5b50601580601a5f395ff3fe60806040525f80fdfea164736f6c6343000818000a","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xa7b8cae9741f9ef0e049953de32565e5000ac75eb44fcda91cc56e5acf447279","s":"0x1c87072e5365b7add675881353e038ec6d439a0e053019f40deb08953a77288c"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('3', '0xdc112f5fb2209f1b7dd6a532f0462278ddc4a609226d52af891e666c9e87cd7c', '0x677df43e4586a28a7ed51c1647feff278522468bf737556a250e536c0c9d4b59', '{"parentHash":"0x677df43e4586a28a7ed51c1647feff278522468bf737556a250e536c0c9d4b59","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xc48c8aa72bd4591623804df610d018a0acb7b9052dfcece186db10edf92b9bb9","transactionsRoot":"0x5fd995ba2099145c58edc129106d04563b1cc2ec6e0bc6a4d2823b3370e2c3e6","receiptsRoot":"0xa88d45f494c0f3759f14b26b46ee1d6460c5d20fb691d30866cceedb8ae0cc5e","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000010000000000000000000000000010800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000040000000400000000000000000000000000000000000800000000000000000000000000000010000000000000000000","difficulty":"0x1","number":"0x3","gasLimit":"0x130485b","gasUsed":"0x8e512","timestamp":"0x68cb1147","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xdc112f5fb2209f1b7dd6a532f0462278ddc4a609226d52af891e666c9e87cd7c","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xc48c8aa72bd4591623804df610d018a0acb7b9052dfcece186db10edf92b9bb9', '1', '582930', '1758138695', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":3,"txHash":"0xecd67ce1934aa8cc430ca70ef771471a7ac2b7464409de2454008d0f3ba8c8f5","gas":852534,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0x691412000ad3358b1637bc54aeca0bf1b62dca099b911ed23eb5ea002f35b8a7608060405260405162000dcb38038062000dcb833981016040819052620000269162000415565b82816200003582825f6200004c565b50620000439050826200007d565b50505062000540565b6200005783620000ee565b5f82511180620000645750805b1562000078576200007683836200012f565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000be5f8051602062000d84833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000eb816200015e565b50565b620000f981620001fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000157838360405180606001604052806027815260200162000da46027913962000292565b9392505050565b6001600160a01b038116620001c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d848339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c0565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001da565b60605f80856001600160a01b031685604051620002b09190620004ef565b5f60405180830381855af49150503d805f8114620002ea576040519150601f19603f3d011682016040523d82523d5f602084013e620002ef565b606091505b50909250905062000303868383876200030d565b9695505050505050565b60608315620003805782515f0362000378576001600160a01b0385163b620003785760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001c0565b50816200038c565b6200038c838362000394565b949350505050565b815115620003a55781518083602001fd5b8060405162461bcd60e51b8152600401620001c091906200050c565b80516001600160a01b0381168114620003d8575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156200040d578181015183820152602001620003f3565b50505f910152565b5f805f6060848603121562000428575f80fd5b6200043384620003c1565b92506200044360208501620003c1565b60408501519092506001600160401b038082111562000460575f80fd5b818601915086601f83011262000474575f80fd5b815181811115620004895762000489620003dd565b604051601f8201601f19908116603f01168101908382118183101715620004b457620004b4620003dd565b81604052828152896020848701011115620004cd575f80fd5b620004e0836020830160208801620003f1565b80955050505050509250925092565b5f825162000502818460208701620003f1565b9190910192915050565b602081525f82518060208401526200052c816040850160208701620003f1565b601f01601f19169190910160400192915050565b610836806200054e5f395ff3fe60806040523661001357610011610017565b005b6100115b61001f610168565b6001600160a01b0316330361015e5760606001600160e01b03195f35166364d3180d60e11b81016100595761005261019a565b9150610156565b63587086bd60e11b6001600160e01b0319821601610079576100526101ed565b63070d7c6960e41b6001600160e01b031982160161009957610052610231565b621eb96f60e61b6001600160e01b03198216016100b857610052610261565b63a39f25e560e01b6001600160e01b03198216016100d8576100526102a0565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101666102b3565b565b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a46102c3565b5f6101b23660048184610668565b8101906101bf91906106aa565b90506101da8160405180602001604052805f8152505f6102cd565b505060408051602081019091525f815290565b60605f806101fe3660048184610668565b81019061020b91906106d7565b9150915061021b828260016102cd565b60405180602001604052805f8152509250505090565b606061023b6102c3565b5f6102493660048184610668565b81019061025691906106aa565b90506101da816102f8565b606061026b6102c3565b5f610274610168565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102aa6102c3565b5f61027461034f565b6101666102be61034f565b61035d565b3415610166575f80fd5b6102d68361037b565b5f825111806102e25750805b156102f3576102f183836103ba565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610321610168565b604080516001600160a01b03928316815291841660208301520160405180910390a161034c816103e6565b50565b5f61035861048f565b905090565b365f80375f80365f845af43d5f803e808015610377573d5ff35b3d5ffd5b610384816104b6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103df83836040518060600160405280602781526020016108036027913961054a565b9392505050565b6001600160a01b03811661044b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014d565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018b565b6001600160a01b0381163b6105235760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61046e565b60605f80856001600160a01b03168560405161056691906107b5565b5f60405180830381855af49150503d805f811461059e576040519150601f19603f3d011682016040523d82523d5f602084013e6105a3565b606091505b50915091506105b4868383876105be565b9695505050505050565b6060831561062c5782515f03610625576001600160a01b0385163b6106255760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014d565b5081610636565b610636838361063e565b949350505050565b81511561064e5781518083602001fd5b8060405162461bcd60e51b815260040161014d91906107d0565b5f8085851115610676575f80fd5b83861115610682575f80fd5b5050820193919092039150565b80356001600160a01b03811681146106a5575f80fd5b919050565b5f602082840312156106ba575f80fd5b6103df8261068f565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156106e8575f80fd5b6106f18361068f565b9150602083013567ffffffffffffffff8082111561070d575f80fd5b818501915085601f830112610720575f80fd5b813581811115610732576107326106c3565b604051601f8201601f19908116603f0116810190838211818310171561075a5761075a6106c3565b81604052828152886020848701011115610772575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f5b838110156107ad578181015183820152602001610795565b50505f910152565b5f82516107c6818460208701610793565b9190910192915050565b602081525f82518060208401526107ee816040850160208701610793565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000818000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000842e29c8b59b3f081922a87c3397141558c5f71f000000000000000000000000be0fe7e11b10f83e2e3dc2e954798bd1a050723900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x2651f1665d068811f4acf692121a947904be13cfe414f0f4f945a0d5a1486da0","s":"0x3120fb7e80091eb194b8798ad053820935a677e946ed31fcb94e783f13f2fd23"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('4', '0xce0b8c50969a3d182e14bad7cd89d876b5815dcbc2fe680a5dbf34dc8de47686', '0xdc112f5fb2209f1b7dd6a532f0462278ddc4a609226d52af891e666c9e87cd7c', '{"parentHash":"0xdc112f5fb2209f1b7dd6a532f0462278ddc4a609226d52af891e666c9e87cd7c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x6405bcc400e98f154bc7f166e7584b1e3d418ba0948d0906a2f165d39a1df5af","transactionsRoot":"0x616f58b2cda85e01c613c414c54ef91609090f5c965239d35c83f47652a9532c","receiptsRoot":"0xdd82e61a4b5df9251bc9a0103c04d84a4c6533943c00c770c8e14ad9ed946674","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000040000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000000040000000400000000000000000000000000000000000800000000000000000000000000000400000000000000000000","difficulty":"0x1","number":"0x4","gasLimit":"0x12ffc4a","gasUsed":"0x8e52a","timestamp":"0x68cb1148","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xce0b8c50969a3d182e14bad7cd89d876b5815dcbc2fe680a5dbf34dc8de47686","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x6405bcc400e98f154bc7f166e7584b1e3d418ba0948d0906a2f165d39a1df5af', '1', '582954', '1758138696', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":4,"txHash":"0x197100fd8384cde7ad5aaa63baef1312288f280231f255b9120c9e2c3b6d0374","gas":852569,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0x9a82f48cc73de698a232f6b4a0f423a8308cc4cc30f5e7c3d0dc2e097b29acf9608060405260405162000dcb38038062000dcb833981016040819052620000269162000415565b82816200003582825f6200004c565b50620000439050826200007d565b50505062000540565b6200005783620000ee565b5f82511180620000645750805b1562000078576200007683836200012f565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000be5f8051602062000d84833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000eb816200015e565b50565b620000f981620001fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000157838360405180606001604052806027815260200162000da46027913962000292565b9392505050565b6001600160a01b038116620001c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d848339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c0565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001da565b60605f80856001600160a01b031685604051620002b09190620004ef565b5f60405180830381855af49150503d805f8114620002ea576040519150601f19603f3d011682016040523d82523d5f602084013e620002ef565b606091505b50909250905062000303868383876200030d565b9695505050505050565b60608315620003805782515f0362000378576001600160a01b0385163b620003785760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001c0565b50816200038c565b6200038c838362000394565b949350505050565b815115620003a55781518083602001fd5b8060405162461bcd60e51b8152600401620001c091906200050c565b80516001600160a01b0381168114620003d8575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156200040d578181015183820152602001620003f3565b50505f910152565b5f805f6060848603121562000428575f80fd5b6200043384620003c1565b92506200044360208501620003c1565b60408501519092506001600160401b038082111562000460575f80fd5b818601915086601f83011262000474575f80fd5b815181811115620004895762000489620003dd565b604051601f8201601f19908116603f01168101908382118183101715620004b457620004b4620003dd565b81604052828152896020848701011115620004cd575f80fd5b620004e0836020830160208801620003f1565b80955050505050509250925092565b5f825162000502818460208701620003f1565b9190910192915050565b602081525f82518060208401526200052c816040850160208701620003f1565b601f01601f19169190910160400192915050565b610836806200054e5f395ff3fe60806040523661001357610011610017565b005b6100115b61001f610168565b6001600160a01b0316330361015e5760606001600160e01b03195f35166364d3180d60e11b81016100595761005261019a565b9150610156565b63587086bd60e11b6001600160e01b0319821601610079576100526101ed565b63070d7c6960e41b6001600160e01b031982160161009957610052610231565b621eb96f60e61b6001600160e01b03198216016100b857610052610261565b63a39f25e560e01b6001600160e01b03198216016100d8576100526102a0565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101666102b3565b565b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a46102c3565b5f6101b23660048184610668565b8101906101bf91906106aa565b90506101da8160405180602001604052805f8152505f6102cd565b505060408051602081019091525f815290565b60605f806101fe3660048184610668565b81019061020b91906106d7565b9150915061021b828260016102cd565b60405180602001604052805f8152509250505090565b606061023b6102c3565b5f6102493660048184610668565b81019061025691906106aa565b90506101da816102f8565b606061026b6102c3565b5f610274610168565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102aa6102c3565b5f61027461034f565b6101666102be61034f565b61035d565b3415610166575f80fd5b6102d68361037b565b5f825111806102e25750805b156102f3576102f183836103ba565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610321610168565b604080516001600160a01b03928316815291841660208301520160405180910390a161034c816103e6565b50565b5f61035861048f565b905090565b365f80375f80365f845af43d5f803e808015610377573d5ff35b3d5ffd5b610384816104b6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103df83836040518060600160405280602781526020016108036027913961054a565b9392505050565b6001600160a01b03811661044b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014d565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018b565b6001600160a01b0381163b6105235760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61046e565b60605f80856001600160a01b03168560405161056691906107b5565b5f60405180830381855af49150503d805f811461059e576040519150601f19603f3d011682016040523d82523d5f602084013e6105a3565b606091505b50915091506105b4868383876105be565b9695505050505050565b6060831561062c5782515f03610625576001600160a01b0385163b6106255760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014d565b5081610636565b610636838361063e565b949350505050565b81511561064e5781518083602001fd5b8060405162461bcd60e51b815260040161014d91906107d0565b5f8085851115610676575f80fd5b83861115610682575f80fd5b5050820193919092039150565b80356001600160a01b03811681146106a5575f80fd5b919050565b5f602082840312156106ba575f80fd5b6103df8261068f565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156106e8575f80fd5b6106f18361068f565b9150602083013567ffffffffffffffff8082111561070d575f80fd5b818501915085601f830112610720575f80fd5b813581811115610732576107326106c3565b604051601f8201601f19908116603f0116810190838211818310171561075a5761075a6106c3565b81604052828152886020848701011115610772575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f5b838110156107ad578181015183820152602001610795565b50505f910152565b5f82516107c6818460208701610793565b9190910192915050565b602081525f82518060208401526107ee816040850160208701610793565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000818000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000842e29c8b59b3f081922a87c3397141558c5f71f000000000000000000000000be0fe7e11b10f83e2e3dc2e954798bd1a050723900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x5f0bf63f77ca72c28efed0674d6d67a2d75afa890ae33a631ed4c2b8e347fbc5","s":"0x615ad1d2c03e3fa781a179a4e0b31b2d944c726b08a0d82d7a80239f5c9a6d9d"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('5', '0xf34b57b9eaae8b4b2e3ab04ddf781ddaab08239d898a6fcec2f1c69d4298eb74', '0xce0b8c50969a3d182e14bad7cd89d876b5815dcbc2fe680a5dbf34dc8de47686', '{"parentHash":"0xce0b8c50969a3d182e14bad7cd89d876b5815dcbc2fe680a5dbf34dc8de47686","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x7f9805fb4e770cbce5fb9680ee64eee6d5c009d073e923895ec67a39aaf1acd2","transactionsRoot":"0x417610c151ca44905c40a26ae3ca6ae8f31a8c37966863aea8f8160f9576cc86","receiptsRoot":"0xc7f75cc10083ccee34aaa8b596cb8f4f1d12a7b6e54ec3313ba869f76e6f6c08","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000100000000000020000000000000000000000004040000000400000000000000000000000000000000000800000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x5","gasLimit":"0x12fb04c","gasUsed":"0x8e52a","timestamp":"0x68cb1149","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xf34b57b9eaae8b4b2e3ab04ddf781ddaab08239d898a6fcec2f1c69d4298eb74","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x7f9805fb4e770cbce5fb9680ee64eee6d5c009d073e923895ec67a39aaf1acd2', '1', '582954', '1758138697', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":5,"txHash":"0xf535fb3b3d133e965763a4ed1af87dd6a2c32b4dad0acedcefc849f9c49da523","gas":852569,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0xb6ffbb8d741eeb61a673434f821fb2898ef7f6eea35158b1ab8c118f24bbc0fd608060405260405162000dcb38038062000dcb833981016040819052620000269162000415565b82816200003582825f6200004c565b50620000439050826200007d565b50505062000540565b6200005783620000ee565b5f82511180620000645750805b1562000078576200007683836200012f565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000be5f8051602062000d84833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000eb816200015e565b50565b620000f981620001fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000157838360405180606001604052806027815260200162000da46027913962000292565b9392505050565b6001600160a01b038116620001c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d848339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c0565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001da565b60605f80856001600160a01b031685604051620002b09190620004ef565b5f60405180830381855af49150503d805f8114620002ea576040519150601f19603f3d011682016040523d82523d5f602084013e620002ef565b606091505b50909250905062000303868383876200030d565b9695505050505050565b60608315620003805782515f0362000378576001600160a01b0385163b620003785760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001c0565b50816200038c565b6200038c838362000394565b949350505050565b815115620003a55781518083602001fd5b8060405162461bcd60e51b8152600401620001c091906200050c565b80516001600160a01b0381168114620003d8575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156200040d578181015183820152602001620003f3565b50505f910152565b5f805f6060848603121562000428575f80fd5b6200043384620003c1565b92506200044360208501620003c1565b60408501519092506001600160401b038082111562000460575f80fd5b818601915086601f83011262000474575f80fd5b815181811115620004895762000489620003dd565b604051601f8201601f19908116603f01168101908382118183101715620004b457620004b4620003dd565b81604052828152896020848701011115620004cd575f80fd5b620004e0836020830160208801620003f1565b80955050505050509250925092565b5f825162000502818460208701620003f1565b9190910192915050565b602081525f82518060208401526200052c816040850160208701620003f1565b601f01601f19169190910160400192915050565b610836806200054e5f395ff3fe60806040523661001357610011610017565b005b6100115b61001f610168565b6001600160a01b0316330361015e5760606001600160e01b03195f35166364d3180d60e11b81016100595761005261019a565b9150610156565b63587086bd60e11b6001600160e01b0319821601610079576100526101ed565b63070d7c6960e41b6001600160e01b031982160161009957610052610231565b621eb96f60e61b6001600160e01b03198216016100b857610052610261565b63a39f25e560e01b6001600160e01b03198216016100d8576100526102a0565b60405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b815160208301f35b6101666102b3565b565b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606101a46102c3565b5f6101b23660048184610668565b8101906101bf91906106aa565b90506101da8160405180602001604052805f8152505f6102cd565b505060408051602081019091525f815290565b60605f806101fe3660048184610668565b81019061020b91906106d7565b9150915061021b828260016102cd565b60405180602001604052805f8152509250505090565b606061023b6102c3565b5f6102493660048184610668565b81019061025691906106aa565b90506101da816102f8565b606061026b6102c3565b5f610274610168565b604080516001600160a01b03831660208201529192500160405160208183030381529060405291505090565b60606102aa6102c3565b5f61027461034f565b6101666102be61034f565b61035d565b3415610166575f80fd5b6102d68361037b565b5f825111806102e25750805b156102f3576102f183836103ba565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610321610168565b604080516001600160a01b03928316815291841660208301520160405180910390a161034c816103e6565b50565b5f61035861048f565b905090565b365f80375f80365f845af43d5f803e808015610377573d5ff35b3d5ffd5b610384816104b6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606103df83836040518060600160405280602781526020016108036027913961054a565b9392505050565b6001600160a01b03811661044b5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840161014d565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61018b565b6001600160a01b0381163b6105235760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161014d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61046e565b60605f80856001600160a01b03168560405161056691906107b5565b5f60405180830381855af49150503d805f811461059e576040519150601f19603f3d011682016040523d82523d5f602084013e6105a3565b606091505b50915091506105b4868383876105be565b9695505050505050565b6060831561062c5782515f03610625576001600160a01b0385163b6106255760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161014d565b5081610636565b610636838361063e565b949350505050565b81511561064e5781518083602001fd5b8060405162461bcd60e51b815260040161014d91906107d0565b5f8085851115610676575f80fd5b83861115610682575f80fd5b5050820193919092039150565b80356001600160a01b03811681146106a5575f80fd5b919050565b5f602082840312156106ba575f80fd5b6103df8261068f565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156106e8575f80fd5b6106f18361068f565b9150602083013567ffffffffffffffff8082111561070d575f80fd5b818501915085601f830112610720575f80fd5b813581811115610732576107326106c3565b604051601f8201601f19908116603f0116810190838211818310171561075a5761075a6106c3565b81604052828152886020848701011115610772575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f5b838110156107ad578181015183820152602001610795565b50505f910152565b5f82516107c6818460208701610793565b9190910192915050565b602081525f82518060208401526107ee816040850160208701610793565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000818000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000842e29c8b59b3f081922a87c3397141558c5f71f000000000000000000000000be0fe7e11b10f83e2e3dc2e954798bd1a050723900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xed5f00f5e3d29d4c6a759f031ce93c5592e255335408de39573af68827cfc57f","s":"0x41fd9d574e5a82f20e52494013cfe1a9a2200fce830390e9c7e958a5e892acf8"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('6', '0xfd74fda0b44cefae27682247a77667dd9263a2598529e850f2d610cefcda1c66', '0xf34b57b9eaae8b4b2e3ab04ddf781ddaab08239d898a6fcec2f1c69d4298eb74', '{"parentHash":"0xf34b57b9eaae8b4b2e3ab04ddf781ddaab08239d898a6fcec2f1c69d4298eb74","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x1472f4298ee7c3ae248699df1aebaab3b9b1b13569648ee4b6d8514c0fe76f27","transactionsRoot":"0xb99d7fbe6e531dca014f4e91dcef65a67a659254af06e57f333d7907fb1917a1","receiptsRoot":"0xcea390d4cfda7a73375f9d169ed77f541443db834bf451db768d0f4ae888eb6c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000004000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x6","gasLimit":"0x12f6461","gasUsed":"0x6002b","timestamp":"0x68cb114a","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xfd74fda0b44cefae27682247a77667dd9263a2598529e850f2d610cefcda1c66","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x1472f4298ee7c3ae248699df1aebaab3b9b1b13569648ee4b6d8514c0fe76f27', '1', '393259', '1758138698', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":6,"txHash":"0x725f1a3cefe1d5586b04c87be918b01c70be414876e59b73c7aaf4ecc0cb640f","gas":575140,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0x7fed3ef84d18c38968bb7dc328eaee29ab8fba452231d06af9c29a4aa9d3809e608060405234801561000f575f80fd5b5061001861001d565b6100d9565b5f54610100900460ff16156100885760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6105a4806100e65f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c8063a2874a8e11610063578063a2874a8e146100e8578063a830e166146100fb578063c4d66de81461010e578063c598591814610121578063f2fde38b1461012a575f80fd5b80631edf599c14610094578063546301c9146100b0578063715018a6146100c55780638da5cb5b146100cd575b5f80fd5b61009d60655481565b6040519081526020015b60405180910390f35b6100c36100be3660046104ab565b61013d565b005b6100c361018b565b6033546040516001600160a01b0390911681526020016100a7565b6100c36100f63660046104ab565b61019e565b61009d6101093660046104ab565b6101e4565b6100c361011c3660046104c2565b610219565b61009d60665481565b6100c36101383660046104c2565b61032f565b6101456103a8565b606580549082905560408051828152602081018490527f720559f0896d00a5fe572d9997197f603e6aa92efcd7d7b60d27144269755cd391015b60405180910390a15050565b6101936103a8565b61019c5f610402565b565b6101a66103a8565b606680549082905560408051828152602081018490527fa2c22106170d85d811c606d1e20a5504f82e3999daa071281390067e5126ace2910161017f565b5f606554670de0b6b3a7640000606654846101ff9190610503565b610209919061051a565b6102139190610539565b92915050565b5f54610100900460ff161580801561023757505f54600160ff909116105b806102505750303b15801561025057505f5460ff166001145b6102b85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156102d9575f805461ff0019166101001790555b6102e1610453565b6102ea8261032f565b801561032b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161017f565b5050565b6103376103a8565b6001600160a01b03811661039c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102af565b6103a581610402565b50565b6033546001600160a01b0316331461019c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102af565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166104795760405162461bcd60e51b81526004016102af9061054c565b61019c5f54610100900460ff166104a25760405162461bcd60e51b81526004016102af9061054c565b61019c33610402565b5f602082840312156104bb575f80fd5b5035919050565b5f602082840312156104d2575f80fd5b81356001600160a01b03811681146104e8575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610213576102136104ef565b5f8261053457634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610213576102136104ef565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea164736f6c6343000818000a","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xd77cee364c65f858d518fd15479a9f99af55fc574115cd97d1b5c2106edfeaa9","s":"0xada6babdf207730e8287a5f30622e23e538118bac21095acb7437f050d62876"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('7', '0xedd8ef3bcb7c0b8c81c7ebcb1ffe0d3ed181781c5e7b71611d8422d95ec052a4', '0xfd74fda0b44cefae27682247a77667dd9263a2598529e850f2d610cefcda1c66', '{"parentHash":"0xfd74fda0b44cefae27682247a77667dd9263a2598529e850f2d610cefcda1c66","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x99894750793718c5b5bc96e61413fbffd62819b104c3cc085e4f59be3fcd9ca7","transactionsRoot":"0x81048a2f37b0132e81091e9af03c81508daf66af21827dc2237312e119f74b84","receiptsRoot":"0x9934560ddcbf7050861a1758484f7a2734dc160671378f497d6950a576e3295a","logsBloom":"0x00000000000000000000000000000000400000001000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000100000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000","difficulty":"0x1","number":"0x7","gasLimit":"0x12f1889","gasUsed":"0x989b","timestamp":"0x68cb114b","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xedd8ef3bcb7c0b8c81c7ebcb1ffe0d3ed181781c5e7b71611d8422d95ec052a4","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x99894750793718c5b5bc96e61413fbffd62819b104c3cc085e4f59be3fcd9ca7', '1', '39067', '1758138699', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":7,"txHash":"0xc2fb8a2324af8c01729ae63e5f398ed90ed9c5661ac7048f38d6402b5f7041c2","gas":57135,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0xbe0fe7e11b10f83e2e3dc2e954798bd1a0507239","chainId":"0x13e7f8ad5","value":"0x0","data":"0x99a88ec4000000000000000000000000f262ade5841308d4379dc7ffd46a2d13f3d96bfe00000000000000000000000056d373a29d77699eea072ca81518c10a058c9a58","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x7f431e1718ac69266ed55a8df45d5a386c396e09f1cc835b558be24c97b8dca6","s":"0x4aa8ea35860748a5f898b7969cc36a178e5e18c268e3b767fe754ed9644b27a2"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('8', '0x986e9b96e09e2fabf912f0d43ee3cb573aefc4a2bc11f93260480122e67669e6', '0xedd8ef3bcb7c0b8c81c7ebcb1ffe0d3ed181781c5e7b71611d8422d95ec052a4', '{"parentHash":"0xedd8ef3bcb7c0b8c81c7ebcb1ffe0d3ed181781c5e7b71611d8422d95ec052a4","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x50fdcb1800a735e5f639863e67dadd867b244268aa10dba6bc1773ba46a810b7","transactionsRoot":"0x1ff4ac661d0981cbae11f0f4a239f73e1c5202c407141798fa1d38c117dab6bd","receiptsRoot":"0x8938a2872af23953d6fa2bac004f5d2e4239ea5b38256f61f1cce3e04bdecdba","logsBloom":"0x00000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000080000000000000000000000000000100000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x8","gasLimit":"0x12eccc4","gasUsed":"0x16ae60","timestamp":"0x68cb114c","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x986e9b96e09e2fabf912f0d43ee3cb573aefc4a2bc11f93260480122e67669e6","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x50fdcb1800a735e5f639863e67dadd867b244268aa10dba6bc1773ba46a810b7', '1', '1486432', '1758138700', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":8,"txHash":"0x5edc95617abe0c32526342148d2d556032e09f3917f5acc921f4b9fc5cbf2d01","gas":2053134,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0x12c38fe7028dd97d5577efb7e887cc81abb41f95c6ead2424fba407cc964579d608060405234801561000f575f80fd5b5061001861001d565b6100d9565b5f54610100900460ff16156100885760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146100d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61195a806100e65f395ff3fe608060405234801561000f575f80fd5b5060043610610132575f3560e01c806370a08231116100b45780639dc29fac116100795780639dc29fac1461029a578063a457c2d7146102ad578063a9059cbb146102c0578063c820f146146102d3578063d505accf146102e6578063dd62ed3e146102f9575f80fd5b806370a0823114610229578063797594b0146102515780637ecebe001461026457806384b0196e1461027757806395d89b4114610292575f80fd5b8063313ce567116100fa578063313ce567146101c75780633644e515146101e657806339509351146101ee5780634000aea01461020157806340c10f1914610214575f80fd5b806306fdde0314610136578063095ea7b314610154578063116191b61461017757806318160ddd146101a257806323b872dd146101b4575b5f80fd5b61013e61030c565b60405161014b91906113cf565b60405180910390f35b610167610162366004611403565b61039c565b604051901515815260200161014b565b60cc5461018a906001600160a01b031681565b6040516001600160a01b03909116815260200161014b565b6035545b60405190815260200161014b565b6101676101c236600461142b565b6103b5565b60cd54600160a01b900460ff1660405160ff909116815260200161014b565b6101a66103d8565b6101676101fc366004611403565b6103e6565b61016761020f366004611464565b610407565b610227610222366004611403565b610463565b005b6101a66102373660046114e4565b6001600160a01b03165f9081526033602052604090205490565b60cd5461018a906001600160a01b031681565b6101a66102723660046114e4565b6104bf565b61027f6104dc565b60405161014b97969594939291906114fd565b61013e610575565b6102276102a8366004611403565b610584565b6101676102bb366004611403565b6105d7565b6101676102ce366004611403565b610651565b6102276102e1366004611641565b61065e565b6102276102f43660046116d1565b6107c0565b6101a6610307366004611736565b610921565b60606036805461031b90611767565b80601f016020809104026020016040519081016040528092919081815260200182805461034790611767565b80156103925780601f1061036957610100808354040283529160200191610392565b820191905f5260205f20905b81548152906001019060200180831161037557829003601f168201915b5050505050905090565b5f336103a981858561094b565b60019150505b92915050565b5f336103c2858285610a6f565b6103cd858585610ae7565b506001949350505050565b5f6103e1610c90565b905090565b5f336103a98185856103f88383610921565b6104029190611799565b61094b565b5f6104128585610651565b506001600160a01b0385163b156103cd576103cd858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c9992505050565b60cc546001600160a01b031633146104b15760405162461bcd60e51b815260206004820152600c60248201526b4f6e6c79204761746577617960a01b60448201526064015b60405180910390fd5b6104bb8282610cfe565b5050565b6001600160a01b0381165f908152609960205260408120546103af565b5f6060805f805f60606065545f801b1480156104f85750606654155b61053c5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016104a8565b610544610dbd565b61054c610dcc565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606037805461031b90611767565b60cc546001600160a01b031633146105cd5760405162461bcd60e51b815260206004820152600c60248201526b4f6e6c79204761746577617960a01b60448201526064016104a8565b6104bb8282610ddb565b5f33816105e48286610921565b9050838110156106445760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104a8565b6103cd828686840361094b565b5f336103a9818585610ae7565b5f54610100900460ff161580801561067c57505f54600160ff909116105b806106955750303b15801561069557505f5460ff166001145b6106f85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104a8565b5f805460ff191660011790558015610719575f805461ff0019166101001790555b61072286610f0a565b61072c8686610f56565b60cd805460cc80546001600160a01b038088166001600160a01b03199283161790925590851660ff8816600160a01b02919091166001600160a81b03199092169190911717905580156107b8575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b834211156108105760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016104a8565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861083e8c610f86565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61089882610fad565b90505f6108a782878787610fd9565b9050896001600160a01b0316816001600160a01b03161461090a5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016104a8565b6109158a8a8a61094b565b50505050505050505050565b6001600160a01b039182165f90815260346020908152604080832093909416825291909152205490565b6001600160a01b0383166109ad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a8565b6001600160a01b038216610a0e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a8565b6001600160a01b038381165f8181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f610a7a8484610921565b90505f198114610ae15781811015610ad45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104a8565b610ae1848484840361094b565b50505050565b6001600160a01b038316610b4b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a8565b6001600160a01b038216610bad5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a8565b6001600160a01b0383165f9081526033602052604090205481811015610c245760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104a8565b6001600160a01b038085165f8181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c839086815260200190565b60405180910390a3610ae1565b5f6103e1610fff565b604051635260769b60e11b815283906001600160a01b0382169063a4c0ed3690610ccb903390879087906004016117b8565b5f604051808303815f87803b158015610ce2575f80fd5b505af1158015610cf4573d5f803e3d5ffd5b5050505050505050565b6001600160a01b038216610d545760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104a8565b8060355f828254610d659190611799565b90915550506001600160a01b0382165f818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60606067805461031b90611767565b60606068805461031b90611767565b6001600160a01b038216610e3b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104a8565b6001600160a01b0382165f9081526033602052604090205481811015610eae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104a8565b6001600160a01b0383165f8181526033602090815260408083208686039055603580548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610a62565b505050565b5f54610100900460ff16610f305760405162461bcd60e51b81526004016104a8906117e7565b610f5381604051806040016040528060018152602001603160f81b815250611072565b50565b5f54610100900460ff16610f7c5760405162461bcd60e51b81526004016104a8906117e7565b6104bb82826110bf565b6001600160a01b0381165f9081526099602052604090208054600181018255905b50919050565b5f6103af610fb9610c90565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f610fe8878787876110fe565b91509150610ff5816111bb565b5095945050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611029611304565b61103161135c565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f54610100900460ff166110985760405162461bcd60e51b81526004016104a8906117e7565b60676110a4838261187d565b5060686110b1828261187d565b50505f606581905560665550565b5f54610100900460ff166110e55760405162461bcd60e51b81526004016104a8906117e7565b60366110f1838261187d565b506037610f05828261187d565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561113357505f905060036111b2565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611184573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166111ac575f600192509250506111b2565b91505f90505b94509492505050565b5f8160048111156111ce576111ce611939565b036111d65750565b60018160048111156111ea576111ea611939565b036112375760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104a8565b600281600481111561124b5761124b611939565b036112985760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104a8565b60038160048111156112ac576112ac611939565b03610f535760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104a8565b5f8061130e610dbd565b805190915015611325578051602090910120919050565b60655480156113345792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f80611366610dcc565b80519091501561137d578051602090910120919050565b60665480156113345792915050565b5f81518084525f5b818110156113b057602081850181015186830182015201611394565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6113e1602083018461138c565b9392505050565b80356001600160a01b03811681146113fe575f80fd5b919050565b5f8060408385031215611414575f80fd5b61141d836113e8565b946020939093013593505050565b5f805f6060848603121561143d575f80fd5b611446846113e8565b9250611454602085016113e8565b9150604084013590509250925092565b5f805f8060608587031215611477575f80fd5b611480856113e8565b935060208501359250604085013567ffffffffffffffff808211156114a3575f80fd5b818701915087601f8301126114b6575f80fd5b8135818111156114c4575f80fd5b8860208285010111156114d5575f80fd5b95989497505060200194505050565b5f602082840312156114f4575f80fd5b6113e1826113e8565b60ff60f81b881681525f602060e0602084015261151d60e084018a61138c565b838103604085015261152f818a61138c565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b8181101561158257835183529284019291840191600101611566565b50909c9b505050505050505050505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126115b7575f80fd5b813567ffffffffffffffff808211156115d2576115d2611594565b604051601f8301601f19908116603f011681019082821181831017156115fa576115fa611594565b81604052838152866020858801011115611612575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146113fe575f80fd5b5f805f805f60a08688031215611655575f80fd5b853567ffffffffffffffff8082111561166c575f80fd5b61167889838a016115a8565b9650602088013591508082111561168d575f80fd5b5061169a888289016115a8565b9450506116a960408701611631565b92506116b7606087016113e8565b91506116c5608087016113e8565b90509295509295909350565b5f805f805f805f60e0888a0312156116e7575f80fd5b6116f0886113e8565b96506116fe602089016113e8565b9550604088013594506060880135935061171a60808901611631565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215611747575f80fd5b611750836113e8565b915061175e602084016113e8565b90509250929050565b600181811c9082168061177b57607f821691505b602082108103610fa757634e487b7160e01b5f52602260045260245ffd5b808201808211156103af57634e487b7160e01b5f52601160045260245ffd5b60018060a01b0384168152826020820152606060408201525f6117de606083018461138c565b95945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f821115610f0557805f5260205f20601f840160051c810160208510156118575750805b601f840160051c820191505b81811015611876575f8155600101611863565b5050505050565b815167ffffffffffffffff81111561189757611897611594565b6118ab816118a58454611767565b84611832565b602080601f8311600181146118de575f84156118c75750858301515b5f19600386901b1c1916600185901b1785556107b8565b5f85815260208120601f198616915b8281101561190c578886015182559484019460019091019084016118ed565b508582101561192957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52602160045260245ffdfea164736f6c6343000818000a","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xf33e0f2b05f4c71ace32abf339f9f3951968ea368d289caf8043739e026e5772","s":"0x6dbef150857cd416a70593d35f0b46e2f9a50e59d99136feefefb5719d2a2e43"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('9', '0x9addfd69edcab91c3f6d3b57ff8dbf1a96c79992b7b356fabd72ef9a11cc8128', '0x986e9b96e09e2fabf912f0d43ee3cb573aefc4a2bc11f93260480122e67669e6', '{"parentHash":"0x986e9b96e09e2fabf912f0d43ee3cb573aefc4a2bc11f93260480122e67669e6","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x32b6105abfb373ec95a7cee36c4255c35c331dcefb7ebbb3cdca64ef9cd79496","transactionsRoot":"0xecead75134185d1d5279ffd99b7970e0ee27e456a92eb569ff4602c521ebd1ac","receiptsRoot":"0x1ab19143446a32b1517235494fa4215c60a2cb65bffa440006f8fa767e2d9b52","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000004000000000000000000000400000000000000000000000000001000002000000000000000002000000000000020000000000000000000800000000008000000000000000000000402000000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000080000000000000000000000000000000","difficulty":"0x1","number":"0x9","gasLimit":"0x12e8112","gasUsed":"0x5a56c","timestamp":"0x68cb114c","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x9addfd69edcab91c3f6d3b57ff8dbf1a96c79992b7b356fabd72ef9a11cc8128","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x32b6105abfb373ec95a7cee36c4255c35c331dcefb7ebbb3cdca64ef9cd79496', '1', '370028', '1758138700', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":9,"txHash":"0x4794fc2195c0a52c9daf1182e1a50cbcc6390847060e98e2a2148533d5a1a70b","gas":511100,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0x06b761a273cd55ed36b5df3d8dd7efdd4fccaa3208c8c69ae156d36ce85fb8e7608060405234801561000f575f80fd5b5060405161062438038061062483398101604081905261002e9161012c565b80610038336100c2565b6001600160a01b0381166100925760405162461bcd60e51b815260206004820152601b60248201527f7a65726f20696d706c656d656e746174696f6e20616464726573730000000000604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b03929092169190911790556100bb826100c2565b505061015d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114610127575f80fd5b919050565b5f806040838503121561013d575f80fd5b61014683610111565b915061015460208401610111565b90509250929050565b6104ba8061016a5f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80635c60da1b1461006457806361e98ca114610093578063715018a6146100a65780637bdbcbbf146100b05780638da5cb5b146100c3578063f2fde38b146100d3575b5f80fd5b600154610077906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100776100a1366004610463565b6100e6565b6100ae610115565b005b6100776100be366004610463565b610128565b5f546001600160a01b0316610077565b6100ae6100e1366004610494565b6101a1565b5f806100f2848461021f565b60015490915061010b906001600160a01b0316826102a4565b9150505b92915050565b61011d610306565b6101265f61035f565b565b5f610131610306565b5f61013c848461021f565b6001549091505f90610157906001600160a01b0316836103ae565b9050806001600160a01b0316846001600160a01b03167f07ab516ad4f19b4465f15fa7c2dbc064f18e734a0846d6e0932da244aa3d8a7160405160405180910390a3949350505050565b6101a9610306565b6001600160a01b0381166102135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61021c8161035f565b50565b6040516bffffffffffffffffffffffff19606083901b1660208201525f9083906034016040516020818303038152906040528051906020012060405160200161028692919060609290921b6bffffffffffffffffffffffff19168252601482015260340190565b60405160208183030381529060405280519060200120905092915050565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c820120607882015260556043909101205f905b9392505050565b5f546001600160a01b031633146101265760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161020a565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c175f526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760095ff590506001600160a01b03811661010f5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640161020a565b80356001600160a01b038116811461045e575f80fd5b919050565b5f8060408385031215610474575f80fd5b61047d83610448565b915061048b60208401610448565b90509250929050565b5f602082840312156104a4575f80fd5b6102ff8261044856fea164736f6c6343000818000a000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000008c745f90132babce9c1f5aaeb4e7656c695e5326","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x9b3ca6f59474f818f8f930e20c48dc9c2069649f12e261760bd800e88c346471","s":"0x7adcd6a01ecfa57c73cad1a4ee11ee32040f60c776f08db5334377a41718c62e"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973700', '0x29c84f0df09fda2c6c63d314bb6714dbbdeca3b85c91743f9e25d3f81c28b986', '0x01aabb5d1d7edadd10011b4099de7ed703b9ce495717cd48a304ff4db3710d8a', '{"parentHash":"0x01aabb5d1d7edadd10011b4099de7ed703b9ce495717cd48a304ff4db3710d8a","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77204","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36e5","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x29c84f0df09fda2c6c63d314bb6714dbbdeca3b85c91743f9e25d3f81c28b986"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf', '0', '0', '1753167589', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('10', '0x57a7fd639a0a120dd3f7c637653a867985055d36b5964d118a33f9daf0ca1d9d', '0x9addfd69edcab91c3f6d3b57ff8dbf1a96c79992b7b356fabd72ef9a11cc8128', '{"parentHash":"0x9addfd69edcab91c3f6d3b57ff8dbf1a96c79992b7b356fabd72ef9a11cc8128","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x07b6f0de559b949364ac41930fd2f8be2703d21c5f8e8b71453cb71f84f66767","transactionsRoot":"0x4d370bfa0ca1b7aac067fb603bff2a395e1098136095c84e7dd083ca61ca15a5","receiptsRoot":"0x3f6e7f471c8173ffaa93813034357885a741bec73377ecdae946f77286f630c3","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000010000000000000000000000000000000000000000000000000000000000000000000020000200000000000000000000","difficulty":"0x1","number":"0xa","gasLimit":"0x12e3573","gasUsed":"0x118cea","timestamp":"0x68cb114d","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x57a7fd639a0a120dd3f7c637653a867985055d36b5964d118a33f9daf0ca1d9d","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x07b6f0de559b949364ac41930fd2f8be2703d21c5f8e8b71453cb71f84f66767', '1', '1150186', '1758138701', '', '0xa6a01cfc73a0f6e63806f32ca6b3f437641dc800b7d99b7c978b5715c70ece14', '[{"type":2,"nonce":10,"txHash":"0xac9ca5096013ff4acac2aa3ba370bf628aba225c7456697124d7c9d93db37c46","gas":1682146,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0xd0bd40751009321be8ead7b6d5ef303140463246f83faf66818ab1bf48ae6a1460c060405234801562000010575f80fd5b506040516200153238038062001532833981016040819052620000339162000181565b816001600160a01b0381166200005c5760405163a7f9319d60e01b815260040160405180910390fd5b6001600160a01b0390811660805281166200008a5760405163a7f9319d60e01b815260040160405180910390fd5b62000094620000a7565b6001600160a01b031660a05250620001b7565b5f54610100900460ff1615620001135760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161462000163575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200017c575f80fd5b919050565b5f806040838503121562000193575f80fd5b6200019e8362000165565b9150620001ae6020840162000165565b90509250929050565b60805160a05161133d620001f55f395f8181610178015281816107fb0152818161090b0152610a7e01525f818161023f015261047e015261133d5ff3fe6080604052600436106100f2575f3560e01c8063797594b011610087578063bedb86fb11610057578063bedb86fb146102b0578063c4d66de8146102cf578063e70fc93b146102ee578063f2fde38b14610327575f80fd5b8063797594b01461022e5780638da5cb5b146102615780638ef1332e1461027e578063b2267a7b1461029d575f80fd5b80635c975abb116100c25780635c975abb146101d15780635f7b1577146101e85780636e296e45146101fb578063715018a61461021a575f80fd5b806302345b50146101055780632a6cccb2146101485780633b70c18a14610167578063478222c2146101b2575f80fd5b36610101576100ff610346565b005b5f80fd5b348015610110575f80fd5b5061013361011f366004610f80565b60fc6020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b348015610153575f80fd5b506100ff610162366004610fb2565b6103a7565b348015610172575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161013f565b3480156101bd575f80fd5b5060cb5461019a906001600160a01b031681565b3480156101dc575f80fd5b5060655460ff16610133565b6100ff6101f6366004610fd2565b610411565b348015610206575f80fd5b5060c95461019a906001600160a01b031681565b348015610225575f80fd5b506100ff610463565b348015610239575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026c575f80fd5b506033546001600160a01b031661019a565b348015610289575f80fd5b506100ff61029836600461110d565b610474565b6100ff6102ab36600461117a565b6105ab565b3480156102bb575f80fd5b506100ff6102ca3660046111d5565b6105c5565b3480156102da575f80fd5b506100ff6102e9366004610fb2565b6105e6565b3480156102f9575f80fd5b50610319610308366004610f80565b60fb6020525f908152604090205481565b60405190815260200161013f565b348015610332575f80fd5b506100ff610341366004610fb2565b6106f0565b6033546001600160a01b031633146103a55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b565b6103af610346565b60cb80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f4aadc32827849f797733838c61302f7f56d2b6db28caa175eb3f7f8e5aba25f591015b60405180910390a15050565b610419610766565b61045b868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508892506107ac915050565b505050505050565b61046b610346565b6103a55f6109db565b61047c610766565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167311110000000000000000000000000000000011101933016001600160a01b0316146105145760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74204c315363726f6c6c4d657373656e67657200604482015260640161039c565b5f6105228686868686610a2c565b80516020918201205f81815260fc90925260409091205490915060ff161561059e5760405162461bcd60e51b815260206004820152602960248201527f4d6573736167652077617320616c7265616479207375636365737366756c6c7960448201526808195e1958dd5d195960ba1b606482015260840161039c565b61045b8686868585610a7c565b6105b3610766565b6105bf848484846107ac565b50505050565b6105cd610346565b80156105de576105db610c64565b50565b6105db610cbe565b5f54610100900460ff161580801561060457505f54600160ff909116105b8061061d5750303b15801561061d57505f5460ff166001145b6106805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161039c565b5f805460ff1916600117905580156106a1575f805461ff0019166101001790555b6106ab5f80610cf7565b80156106ec575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610405565b5050565b6106f8610346565b6001600160a01b03811661075d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039c565b6105db816109db565b60655460ff16156103a55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161039c565b6107b4610d78565b8234146107f85760405162461bcd60e51b81526020600482015260126024820152710dae6ce5cecc2d8eaca40dad2e6dac2e8c6d60731b604482015260640161039c565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166326aad7b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087991906111f4565b90505f6108893387878588610a2c565b80516020918201205f81815260fb909252604090912054909150156108e55760405162461bcd60e51b81526020600482015260126024820152714475706c696361746564206d65737361676560701b604482015260640161039c565b5f81815260fb6020526040908190204290555163600a2e7760e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063600a2e77906024016020604051808303815f875af1158015610959573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097d91906111f4565b506001600160a01b038616336001600160a01b03167f104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e878587896040516109c79493929190611258565b60405180910390a350506105bf6001609755565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60608585858585604051602401610a47959493929190611286565b60408051601f198184030181529190526020810180516001600160e01b0316634778999760e11b179052905095945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610afd5760405162461bcd60e51b815260206004820152601c60248201527f466f7262696420746f2063616c6c206d65737361676520717565756500000000604482015260640161039c565b610b0684610dd8565b60c9546001600160a01b0390811690861603610b5d5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b21036b2b9b9b0b3b29039b2b73232b960511b604482015260640161039c565b60c980546001600160a01b0319166001600160a01b03878116919091179091556040515f918616908590610b929086906112ca565b5f6040518083038185875af1925050503d805f8114610bcc576040519150601f19603f3d011682016040523d82523d5f602084013e610bd1565b606091505b505060c980546001600160a01b031916600117905590508015610c32575f82815260fc6020526040808220805460ff191660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a261045b565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f905f90a2505050505050565b610c6c610766565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ca13390565b6040516001600160a01b03909116815260200160405180910390a1565b610cc6610e26565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33610ca1565b5f54610100900460ff16610d1d5760405162461bcd60e51b815260040161039c906112e5565b610d25610e6f565b610d2d610e9d565b610d35610ecb565b60c980546001600160a01b03191660011790556001600160a01b038116156106ec5760cb80546001600160a01b0383166001600160a01b03199091161790555050565b600260975403610dca5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161039c565b6002609755565b6001609755565b306001600160a01b038216036105db5760405162461bcd60e51b81526020600482015260136024820152722337b93134b2103a379031b0b6361039b2b63360691b604482015260640161039c565b60655460ff166103a55760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161039c565b5f54610100900460ff16610e955760405162461bcd60e51b815260040161039c906112e5565b6103a5610ef9565b5f54610100900460ff16610ec35760405162461bcd60e51b815260040161039c906112e5565b6103a5610f28565b5f54610100900460ff16610ef15760405162461bcd60e51b815260040161039c906112e5565b6103a5610f5a565b5f54610100900460ff16610f1f5760405162461bcd60e51b815260040161039c906112e5565b6103a5336109db565b5f54610100900460ff16610f4e5760405162461bcd60e51b815260040161039c906112e5565b6065805460ff19169055565b5f54610100900460ff16610dd15760405162461bcd60e51b815260040161039c906112e5565b5f60208284031215610f90575f80fd5b5035919050565b80356001600160a01b0381168114610fad575f80fd5b919050565b5f60208284031215610fc2575f80fd5b610fcb82610f97565b9392505050565b5f805f805f8060a08789031215610fe7575f80fd5b610ff087610f97565b955060208701359450604087013567ffffffffffffffff80821115611013575f80fd5b818901915089601f830112611026575f80fd5b813581811115611034575f80fd5b8a6020828501011115611045575f80fd5b6020830196508095505050506060870135915061106460808801610f97565b90509295509295509295565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112611093575f80fd5b813567ffffffffffffffff808211156110ae576110ae611070565b604051601f8301601f19908116603f011681019082821181831017156110d6576110d6611070565b816040528381528660208588010111156110ee575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f60a08688031215611121575f80fd5b61112a86610f97565b945061113860208701610f97565b93506040860135925060608601359150608086013567ffffffffffffffff811115611161575f80fd5b61116d88828901611084565b9150509295509295909350565b5f805f806080858703121561118d575f80fd5b61119685610f97565b935060208501359250604085013567ffffffffffffffff8111156111b8575f80fd5b6111c487828801611084565b949793965093946060013593505050565b5f602082840312156111e5575f80fd5b81358015158114610fcb575f80fd5b5f60208284031215611204575f80fd5b5051919050565b5f5b8381101561122557818101518382015260200161120d565b50505f910152565b5f815180845261124481602086016020860161120b565b601f01601f19169290920160200192915050565b848152836020820152826040820152608060608201525f61127c608083018461122d565b9695505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f906112bf9083018461122d565b979650505050505050565b5f82516112db81846020870161120b565b9190910192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea164736f6c6343000818000a00000000000000000000000017c095e86e4dabd19b645cef0f04ca583c1782190000000000000000000000005300000000000000000000000000000000000000","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xa56cc910b3865b69547830a6ccc60ddaa247b8de1ea10a526f52074cc6fa99a6","s":"0x7bafd10c77f53bebd5ccf91af159a618df6e1fcd238b3aa46625c88acbdb46e6"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973701', '0x21ad5215b5b51cb5eb5ea6a19444804ca1628cbf8ef8cf1977660d8c468c0151', '0x29c84f0df09fda2c6c63d314bb6714dbbdeca3b85c91743f9e25d3f81c28b986', '{"parentHash":"0x29c84f0df09fda2c6c63d314bb6714dbbdeca3b85c91743f9e25d3f81c28b986","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77205","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36e6","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x21ad5215b5b51cb5eb5ea6a19444804ca1628cbf8ef8cf1977660d8c468c0151"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf', '0', '0', '1753167590', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('11', '0x155cb5df7e5da08dbe9ac5d42cd3a5446753c01f5c25455f907e7db6182f9dbf', '0x57a7fd639a0a120dd3f7c637653a867985055d36b5964d118a33f9daf0ca1d9d', '{"parentHash":"0x57a7fd639a0a120dd3f7c637653a867985055d36b5964d118a33f9daf0ca1d9d","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x741e2fb5eb0497741017c7a059e204cccfc48ff04b6ad823c57199275a27dc31","transactionsRoot":"0x300f8cc3b2f1cd4f84617e437d8a86844f1641e86128ffef1ba5502dcd954d94","receiptsRoot":"0x30cf919796585082586838034adb35e380a89bde35107d6331eac7d791943e4c","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000010000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000100000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000010000000000000000000","difficulty":"0x1","number":"0xb","gasLimit":"0x12de9e7","gasUsed":"0x989b","timestamp":"0x68cb114e","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x155cb5df7e5da08dbe9ac5d42cd3a5446753c01f5c25455f907e7db6182f9dbf","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x741e2fb5eb0497741017c7a059e204cccfc48ff04b6ad823c57199275a27dc31', '1', '39067', '1758138702', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":11,"txHash":"0xcf363ca9d213928a1346f94a28c2ff0004964ed36c5d29796168dd0dc71319f5","gas":57135,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0xbe0fe7e11b10f83e2e3dc2e954798bd1a0507239","chainId":"0x13e7f8ad5","value":"0x0","data":"0x99a88ec4000000000000000000000000502e605862276fa0521ca7390918e42dc78f3cb300000000000000000000000075771e55a0b0a3865dc7b7657c17b20f10619f73","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x53b711aa0e51d6ac200297aa1fcc53e57c8e664d510cf51a244ad6b2c9ba45df","s":"0x1796569dd2980b406ef6cc3e5d77d110d0eda08bac4c3e65e24b19502e1d0838"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973702', '0x8c9ce33a9b62060b193c01f31518f3bfc5d8132c11569a5b4db03a5b0611f30e', '0x21ad5215b5b51cb5eb5ea6a19444804ca1628cbf8ef8cf1977660d8c468c0151', '{"parentHash":"0x21ad5215b5b51cb5eb5ea6a19444804ca1628cbf8ef8cf1977660d8c468c0151","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77206","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36e7","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x8c9ce33a9b62060b193c01f31518f3bfc5d8132c11569a5b4db03a5b0611f30e"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf', '0', '0', '1753167591', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('12', '0x99a97dca7591471c359e9d394f8f45b3dd8ecb1cc0a3d1467b5b52ee43f4bd78', '0x155cb5df7e5da08dbe9ac5d42cd3a5446753c01f5c25455f907e7db6182f9dbf', '{"parentHash":"0x155cb5df7e5da08dbe9ac5d42cd3a5446753c01f5c25455f907e7db6182f9dbf","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xe0fbdf8a8ec330ad8ee37f004dcc2d48208220ded7d5af2bb6a0a103fe1f5584","transactionsRoot":"0x088d19cf25b2ff4e6e52e5585d4746711bbb5e61525d76d5db510b8ec6c3397e","receiptsRoot":"0xcb994afc758c8254ae9d67a2235082457ab82a35006b7cd78aa0c03b0e8da9a9","logsBloom":"0x00000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000080400000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xc","gasLimit":"0x12d9e6e","gasUsed":"0x14260f","timestamp":"0x68cb114f","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x99a97dca7591471c359e9d394f8f45b3dd8ecb1cc0a3d1467b5b52ee43f4bd78","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xe0fbdf8a8ec330ad8ee37f004dcc2d48208220ded7d5af2bb6a0a103fe1f5584', '1', '1320463', '1758138703', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":12,"txHash":"0x77b27e8d2b64bb131e90200120cab372ee88d47e4ed5c2eef9c73ac147c12824","gas":1823888,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c","chainId":"0x13e7f8ad5","value":"0x0","data":"0x31e17a6970bd25390a6e713575395f85557d7b2494d4922e3f3428a7e2eb423f61010060405234801562000011575f80fd5b50604051620018d2380380620018d28339810160408190526200003491620001bc565b8383836001600160a01b03831615806200005557506001600160a01b038116155b15620000745760405163a7f9319d60e01b815260040160405180910390fd5b6001600160a01b0392831660805290821660a052811660c05283161580620000a357506001600160a01b038116155b15620000c25760405163a7f9319d60e01b815260040160405180910390fd5b620000cc620000e2565b6001600160a01b031660e0525062000216915050565b5f54610100900460ff16156200014e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff908116146200019e575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001b7575f80fd5b919050565b5f805f8060808587031215620001d0575f80fd5b620001db85620001a0565b9350620001eb60208601620001a0565b9250620001fb60408601620001a0565b91506200020b60608601620001a0565b905092959194509250565b60805160a05160c05160e05161164a620002885f395f81816102450152818161055a0152818161080e0152610de001525f818160ee01528181610377015281816103bf0152610bc501525f81816102970152610a5b01525f81816101b0015281816104480152610bf4015261164a5ff3fe6080604052600436106100d9575f3560e01c80638da5cb5b1161007c578063e77772fe11610057578063e77772fe14610234578063f2fde38b14610267578063f887ea4014610286578063f8c8765e146102b9575f80fd5b80638da5cb5b146101e5578063a93a4af914610202578063c676ad2914610215575f80fd5b80636c07ea43116100b75780636c07ea4314610178578063715018a61461018b578063797594b01461019f5780638431f5c1146101d2575f80fd5b80633cb747bf146100dd57806354bbd59c1461012c578063575361b614610163575b5f80fd5b3480156100e8575f80fd5b506101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b348015610137575f80fd5b50610110610146366004611026565b6001600160a01b039081165f90815260fb60205260409020541690565b610176610171366004611048565b6102d8565b005b6101766101863660046110ea565b610323565b348015610196575f80fd5b50610176610361565b3480156101aa575f80fd5b506101107f000000000000000000000000000000000000000000000000000000000000000081565b6101766101e0366004611188565b610374565b3480156101f0575f80fd5b506065546001600160a01b0316610110565b610176610210366004611253565b6107d5565b348015610220575f80fd5b5061011061022f366004611026565b6107e7565b34801561023f575f80fd5b506101107f000000000000000000000000000000000000000000000000000000000000000081565b348015610272575f80fd5b50610176610281366004611026565b61087f565b348015610291575f80fd5b506101107f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c4575f80fd5b506101766102d3366004611296565b6108f8565b61031b86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250610a0a915050565b505050505050565b61035c8333845f5b6040519080825280601f01601f191660200182016040528015610355576020820181803683370190505b5085610a0a565b505050565b610369610cb5565b6103725f610d0f565b565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146103bd576040516385bd908d60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610419573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043d91906112ef565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461048e576040516307b140f360e51b815260040160405180910390fd5b610496610d60565b34156104dd5760405162461bcd60e51b81526020600482015260116024820152706e6f6e7a65726f206d73672e76616c756560781b60448201526064015b60405180910390fd5b6001600160a01b0386166105335760405162461bcd60e51b815260206004820152601960248201527f746f6b656e20616464726573732063616e6e6f7420626520300000000000000060448201526064016104d4565b6040516361e98ca160e01b81523060048201526001600160a01b0387811660248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906361e98ca190604401602060405180830381865afa1580156105a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c591906112ef565b9050806001600160a01b0316866001600160a01b03161461061c5760405162461bcd60e51b81526020600482015260116024820152700d86440e8ded6cadc40dad2e6dac2e8c6d607b1b60448201526064016104d4565b505f818060200190518101906106329190611376565b92509050606080821561065c578380602001905181019061065391906113c8565b925090506106c3565b6001600160a01b038881165f90815260fb60205260409020548116908a16146106c05760405162461bcd60e51b81526020600482015260166024820152750e8ded6cadc40dac2e0e0d2dcce40dad2e6dac2e8c6d60531b60448201526064016104d4565b50825b6001600160a01b0388163b610709576001600160a01b038881165f90815260fb6020526040902080546001600160a01b031916918b16919091179055610709828a610db9565b6040516340c10f1960e01b81526001600160a01b038781166004830152602482018790528916906340c10f19906044015f604051808303815f87803b158015610750575f80fd5b505af1158015610762573d5f803e3d5ffd5b505050506107708682610ed4565b866001600160a01b0316886001600160a01b03168a6001600160a01b03167f165ba69f6ab40c50cade6f65431801e5f9c7d7830b7545391920db039133ba348989866040516107c193929190611449565b60405180910390a450505061031b60018055565b6107e18484845f61032b565b50505050565b6040516361e98ca160e01b81523060048201526001600160a01b0382811660248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906361e98ca190604401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087991906112ef565b92915050565b610887610cb5565b6001600160a01b0381166108ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104d4565b6108f581610d0f565b50565b5f54610100900460ff161580801561091657505f54600160ff909116105b8061092f5750303b15801561092f57505f5460ff166001145b6109925760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104d4565b5f805460ff1916600117905580156109b3575f805461ff0019166101001790555b6109be858585610f51565b8015610a03575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610a12610d60565b5f8311610a585760405162461bcd60e51b81526020600482015260146024820152731dda5d1a191c985dc81e995c9bc8185b5bdd5b9d60621b60448201526064016104d4565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316819003610aa35782806020019051810190610a9e9190611478565b935090505b6001600160a01b038087165f90815260fb60205260409020541680610b0a5760405162461bcd60e51b815260206004820152601960248201527f6e6f20636f72726573706f6e64696e67206c3120746f6b656e0000000000000060448201526064016104d4565b604051632770a7eb60e21b81526001600160a01b03838116600483015260248201879052881690639dc29fac906044015f604051808303815f87803b158015610b51575f80fd5b505af1158015610b63573d5f803e3d5ffd5b505050505f818884898989604051602401610b8396959493929190611494565b60408051601f198184030181529181526020820180516001600160e01b031663084bd13b60e41b1790525163b2267a7b60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b2267a7b903490610c22907f0000000000000000000000000000000000000000000000000000000000000000905f9087908b906004016114e2565b5f604051808303818588803b158015610c39575f80fd5b505af1158015610c4b573d5f803e3d5ffd5b5050505050826001600160a01b0316886001600160a01b0316836001600160a01b03167fd8d3a3f4ab95694bef40475997598bcf8acd3ed9617a4c1013795429414c27e88a8a8a604051610ca193929190611449565b60405180910390a4505050610a0360018055565b6065546001600160a01b031633146103725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104d4565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600260015403610db25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104d4565b6002600155565b604051637bdbcbbf60e01b81523060048201526001600160a01b0382811660248301525f917f000000000000000000000000000000000000000000000000000000000000000090911690637bdbcbbf906044016020604051808303815f875af1158015610e28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4c91906112ef565b90505f805f85806020019051810190610e659190611519565b925092509250836001600160a01b031663c820f146838584308a6040518663ffffffff1660e01b8152600401610e9f959493929190611591565b5f604051808303815f87803b158015610eb6575f80fd5b505af1158015610ec8573d5f803e3d5ffd5b50505050505050505050565b5f8151118015610eed57505f826001600160a01b03163b115b15610f475760405163109b953160e01b81526001600160a01b0383169063109b953190610f1e9084906004016115e0565b5f604051808303815f87803b158015610f35575f80fd5b505af115801561031b573d5f803e3d5ffd5b5050565b60018055565b610f59610f61565b61035c610f8f565b5f54610100900460ff16610f875760405162461bcd60e51b81526004016104d4906115f2565b610372610fbd565b5f54610100900460ff16610fb55760405162461bcd60e51b81526004016104d4906115f2565b610372610fe3565b5f54610100900460ff16610f4b5760405162461bcd60e51b81526004016104d4906115f2565b5f54610100900460ff166110095760405162461bcd60e51b81526004016104d4906115f2565b61037233610d0f565b6001600160a01b03811681146108f5575f80fd5b5f60208284031215611036575f80fd5b813561104181611012565b9392505050565b5f805f805f8060a0878903121561105d575f80fd5b863561106881611012565b9550602087013561107881611012565b945060408701359350606087013567ffffffffffffffff8082111561109b575f80fd5b818901915089601f8301126110ae575f80fd5b8135818111156110bc575f80fd5b8a60208285010111156110cd575f80fd5b602083019550809450505050608087013590509295509295509295565b5f805f606084860312156110fc575f80fd5b833561110781611012565b95602085013595506040909401359392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156111595761115961111c565b604052919050565b5f67ffffffffffffffff82111561117a5761117a61111c565b50601f01601f191660200190565b5f805f805f8060c0878903121561119d575f80fd5b86356111a881611012565b955060208701356111b881611012565b945060408701356111c881611012565b935060608701356111d881611012565b92506080870135915060a087013567ffffffffffffffff8111156111fa575f80fd5b8701601f8101891361120a575f80fd5b803561121d61121882611161565b611130565b8181528a6020838501011115611231575f80fd5b816020840160208301375f602083830101528093505050509295509295509295565b5f805f8060808587031215611266575f80fd5b843561127181611012565b9350602085013561128181611012565b93969395505050506040820135916060013590565b5f805f80608085870312156112a9575f80fd5b84356112b481611012565b935060208501356112c481611012565b925060408501356112d481611012565b915060608501356112e481611012565b939692955090935050565b5f602082840312156112ff575f80fd5b815161104181611012565b5f5b8381101561132457818101518382015260200161130c565b50505f910152565b5f82601f83011261133b575f80fd5b815161134961121882611161565b81815284602083860101111561135d575f80fd5b61136e82602083016020870161130a565b949350505050565b5f8060408385031215611387575f80fd5b82518015158114611396575f80fd5b602084015190925067ffffffffffffffff8111156113b2575f80fd5b6113be8582860161132c565b9150509250929050565b5f80604083850312156113d9575f80fd5b825167ffffffffffffffff808211156113f0575f80fd5b6113fc8683870161132c565b93506020850151915080821115611411575f80fd5b506113be8582860161132c565b5f815180845261143581602086016020860161130a565b601f01601f19169290920160200192915050565b60018060a01b0384168152826020820152606060408201525f61146f606083018461141e565b95945050505050565b5f8060408385031215611489575f80fd5b825161139681611012565b6001600160a01b03878116825286811660208301528581166040830152841660608201526080810183905260c060a082018190525f906114d69083018461141e565b98975050505050505050565b60018060a01b0385168152836020820152608060408201525f611508608083018561141e565b905082606083015295945050505050565b5f805f6060848603121561152b575f80fd5b835167ffffffffffffffff80821115611542575f80fd5b61154e8783880161132c565b94506020860151915080821115611563575f80fd5b506115708682870161132c565b925050604084015160ff81168114611586575f80fd5b809150509250925092565b60a081525f6115a360a083018861141e565b82810360208401526115b5818861141e565b60ff96909616604084015250506001600160a01b039283166060820152911660809091015292915050565b602081525f611041602083018461141e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea164736f6c6343000818000a00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000502e605862276fa0521ca7390918e42dc78f3cb3000000000000000000000000c07d5839dac86c1acc9bdfae46cf57993a29d3e8","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x98118b3474bdc441f1e92f1c74cae6e932fee8ea8496e21ba9a14d251d89dd35","s":"0x66848f4f3bfa67b73f79a287cb95ef58de7753fe04a3155645f6d98bfc706fa2"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973703', '0x73eed8060ca9a36fe8bf8c981f0e44425cd69ade00ff986452f1c02d462194fe', '0x8c9ce33a9b62060b193c01f31518f3bfc5d8132c11569a5b4db03a5b0611f30e', '{"parentHash":"0x8c9ce33a9b62060b193c01f31518f3bfc5d8132c11569a5b4db03a5b0611f30e","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77207","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36e8","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x73eed8060ca9a36fe8bf8c981f0e44425cd69ade00ff986452f1c02d462194fe"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf', '0', '0', '1753167592', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('13', '0xe5af630e1c0a3f1283f220d93ed5b2f4d97d5138b7aae28a5274c571747c46f7', '0x99a97dca7591471c359e9d394f8f45b3dd8ecb1cc0a3d1467b5b52ee43f4bd78', '{"parentHash":"0x99a97dca7591471c359e9d394f8f45b3dd8ecb1cc0a3d1467b5b52ee43f4bd78","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x890b83bccd0a4ca1d33bab350ea1a308e86c5259d00cd3b1d2df1d3e748cd2c7","transactionsRoot":"0x3b9e59e87ce4ee06c2990097a6336c0f1f1be4c990085756ca832d3193eed8ce","receiptsRoot":"0xa0f20bde68bbe59b5f4641ba3fb2c147296bcf53e247c80e0462f99f93ab3392","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000008000020000000000000000000000004000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xd","gasLimit":"0x12d5308","gasUsed":"0x989b","timestamp":"0x68cb114f","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xe5af630e1c0a3f1283f220d93ed5b2f4d97d5138b7aae28a5274c571747c46f7","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x890b83bccd0a4ca1d33bab350ea1a308e86c5259d00cd3b1d2df1d3e748cd2c7', '1', '39067', '1758138703', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":13,"txHash":"0x4093500bbc75b881e66c2b0523ad8c4f2a325b511aa2703fa31af5220bf41a85","gas":57135,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0xbe0fe7e11b10f83e2e3dc2e954798bd1a0507239","chainId":"0x13e7f8ad5","value":"0x0","data":"0x99a88ec4000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f000000000000000000000000bc9f930ab6576654f7edece262eb9da62deabb90","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x60b9a6440430f81d514308bc46e8c0a71671105b4e284845c72cea4e0a0b11e9","s":"0x28d4bd245000d8b7496825b2bd18050772f3cbbb3e021ccff99e45d71e323ccf"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973704', '0x7a6a1bede8936cfbd677cf38c43e399c8a2d0b62700caf05513bad540541b1b5', '0x73eed8060ca9a36fe8bf8c981f0e44425cd69ade00ff986452f1c02d462194fe', '{"parentHash":"0x73eed8060ca9a36fe8bf8c981f0e44425cd69ade00ff986452f1c02d462194fe","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77208","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36e9","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x7a6a1bede8936cfbd677cf38c43e399c8a2d0b62700caf05513bad540541b1b5"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf', '0', '0', '1753167593', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('14', '0x9ee2259391290a096f843495fcb464873e88cff23130f1c98fbac617f9035c19', '0xe5af630e1c0a3f1283f220d93ed5b2f4d97d5138b7aae28a5274c571747c46f7', '{"parentHash":"0xe5af630e1c0a3f1283f220d93ed5b2f4d97d5138b7aae28a5274c571747c46f7","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9521de06d8d2b7e833ba18ddea0f87c54004fb7dcd4892a8a44e5037cd07143c","transactionsRoot":"0x0692825a89eb50a808186e0d5dc38d812b672921528fa8fa7c9b969ab3e0ca85","receiptsRoot":"0xdc82549a749888b5140bb98c77d6eec80cb08d46eb4e1c3a0bdc8b6b61b4f788","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xe","gasLimit":"0x12d07b5","gasUsed":"0xe4b3f","timestamp":"0x68cb1150","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x9ee2259391290a096f843495fcb464873e88cff23130f1c98fbac617f9035c19","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x9521de06d8d2b7e833ba18ddea0f87c54004fb7dcd4892a8a44e5037cd07143c', '1', '936767', '1758138704', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":14,"txHash":"0x677c7f17611dd99a9365340a01bada6452e660adfa0204b6f277e4e8061c7389","gas":1293908,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x5300000000000000000000000000000000000000","chainId":"0x13e7f8ad5","value":"0x0","data":"0xc4d66de8000000000000000000000000502e605862276fa0521ca7390918e42dc78f3cb3","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x7e6999136401e6bc00265746ef82f552d82adb546fbea3868c352a0b1c54f8e7","s":"0x29c83e1d9dce1a0d2af0de1ec83f77992c271c2b8985c17e5a1fc34591617c3"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973705', '0x1a5306293b7801a42c4402f9d32e7a45d640c49506ee61452da0120f3e242424', '0x7a6a1bede8936cfbd677cf38c43e399c8a2d0b62700caf05513bad540541b1b5', '{"parentHash":"0x7a6a1bede8936cfbd677cf38c43e399c8a2d0b62700caf05513bad540541b1b5","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77209","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36ea","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x1a5306293b7801a42c4402f9d32e7a45d640c49506ee61452da0120f3e242424"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf', '0', '0', '1753167594', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('15', '0xcff8f1a8c6f4b5a9e2e195277669a9065dba64a82e07d4af1240375524eefda2', '0x9ee2259391290a096f843495fcb464873e88cff23130f1c98fbac617f9035c19', '{"parentHash":"0x9ee2259391290a096f843495fcb464873e88cff23130f1c98fbac617f9035c19","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x97b9bbf841f85eaca35f1b0aa55492ee793cb32a78de158e4f39e0415ea94ca4","transactionsRoot":"0xc32d860dce6816408cad0945d2939d56f0d1766e6757fe713e062bd3269e32d0","receiptsRoot":"0x15ab5487ed3f51e3516cd56d4aedb1c2eb070aedf4395924f88f913d9d800324","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000010000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xf","gasLimit":"0x12cbc75","gasUsed":"0xb85d","timestamp":"0x68cb1151","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xcff8f1a8c6f4b5a9e2e195277669a9065dba64a82e07d4af1240375524eefda2","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x97b9bbf841f85eaca35f1b0aa55492ee793cb32a78de158e4f39e0415ea94ca4', '1', '47197', '1758138705', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":15,"txHash":"0x98ba93424765d6b093beb91e30445981e5a8aa269992bbe9415ccc018875394b","gas":65189,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x5300000000000000000000000000000000000002","chainId":"0x13e7f8ad5","value":"0x0","data":"0x3d0f963e0000000000000000000000005300000000000000000000000000000000000003","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x950d3676894ce64e918f2251aca16c4400d5e3c718a23ddf5bb828c6ae3f9fc7","s":"0x685beec3308774e9c32005116df22236dbbecc6afa975282bb63d39509598833"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973706', '0xc89f391a03c7138f676bd8babed6589035b2b7d8c8b99071cb90661f7f996386', '0x1a5306293b7801a42c4402f9d32e7a45d640c49506ee61452da0120f3e242424', '{"parentHash":"0x1a5306293b7801a42c4402f9d32e7a45d640c49506ee61452da0120f3e242424","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7720a","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36eb","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xc89f391a03c7138f676bd8babed6589035b2b7d8c8b99071cb90661f7f996386"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x347733a157bc7045f6a1d5bfd37d51763f3503b63290576a65b3b83265add2cf', '0', '0', '1753167595', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('16', '0x34468906ea639c013fa13b24ebc2145bbecc64646afc900a5ddb669a1f5da00f', '0xcff8f1a8c6f4b5a9e2e195277669a9065dba64a82e07d4af1240375524eefda2', '{"parentHash":"0xcff8f1a8c6f4b5a9e2e195277669a9065dba64a82e07d4af1240375524eefda2","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9edfcf0414e7f3756d90f004a48475e203660b2e478110fd6f2f57adb78f45c5","transactionsRoot":"0x33137ea938fc379167ab43c39c72340a18d40b9165669630261ca99a41cc933b","receiptsRoot":"0x79834e8de6cc05d1ae4269495378729b04810adc8d74f1cfcd6190e49f8fb62e","logsBloom":"0x00000000000000000000000000000000000800000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000030000000000000000000800000010000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000020000000000000000000000000000000000000000020000010020000000000000000","difficulty":"0x1","number":"0x10","gasLimit":"0x12c7147","gasUsed":"0x1e536","timestamp":"0x68cb1152","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x34468906ea639c013fa13b24ebc2145bbecc64646afc900a5ddb669a1f5da00f","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x9edfcf0414e7f3756d90f004a48475e203660b2e478110fd6f2f57adb78f45c5', '1', '124214', '1758138706', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":16,"txHash":"0x7ce66808a06307d3a1959d3fdb797a068ac0b4a7620542d1116b2c4eed3d11a7","gas":171570,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x13e7f8ad5","value":"0x0","data":"0xc4d66de800000000000000000000000017c095e86e4dabd19b645cef0f04ca583c178219","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xb4b3c4cca7325381f6e1960eb57c7e66759603e66f981be2e704a4d8c3cdaef7","s":"0x627e0a85571f37c65e07f194f27ea6f786ef146238d655846b8f27c6fc80783"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973707', '0x38d72b14ef43e548ab0ffd84892e7c3accdd11e1121c2c7a94b953b4e896eb41', '0xc89f391a03c7138f676bd8babed6589035b2b7d8c8b99071cb90661f7f996386', '{"parentHash":"0xc89f391a03c7138f676bd8babed6589035b2b7d8c8b99071cb90661f7f996386","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb920df561f210a617a0c1567cb2f65350818b96b159f5aa4b9ac7915b7af4946","transactionsRoot":"0xf14cf5134833ddb4f42a017e92af371f0a71eaf5d84cb6e681c81fa023662c5d","receiptsRoot":"0x4008fb883088f1ba377310e15221fffc8e5446faf420d6a28e061e9341beb056","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000900000000000000000000000000000000000000000000000000000000000000000000000001000000008000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000020000000000000000000","difficulty":"0x1","number":"0xa7720b","gasLimit":"0x1312d00","gasUsed":"0x9642","timestamp":"0x687f36ec","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x38d72b14ef43e548ab0ffd84892e7c3accdd11e1121c2c7a94b953b4e896eb41"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xb920df561f210a617a0c1567cb2f65350818b96b159f5aa4b9ac7915b7af4946', '1', '38466', '1753167596', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[{"type":2,"nonce":3392500,"txHash":"0xc15b615906602154131a6c42d7603def4bd2a769881292d831140b0b9b8f8850","gas":45919,"gasPrice":"0x1de8476","gasTipCap":"0x64","gasFeeCap":"0x1de8476","from":"0x0000000000000000000000000000000000000000","to":"0x5300000000000000000000000000000000000002","chainId":"0x8274f","value":"0x0","data":"0x39455d3a0000000000000000000000000000000000000000000000000000000000045b840000000000000000000000000000000000000000000000000000000000000001","isCreate":false,"accessList":[{"address":"0x5300000000000000000000000000000000000003","storageKeys":["0x297c59f20c6b2556a4ed35dccabbdeb8b1cf950f62aefb86b98d19b5a4aff2a2"]}],"authorizationList":null,"v":"0x1","r":"0xa1b888cc9be7990c4f6bd8a9d0d5fa743ea8173196c7ca871464becd133ba0de","s":"0x6bacc3e1a244c62eff3008795e010598d07b95a8bad7a5592ec941e121294885"}]'); + ) VALUES ('17', '0x6bdd2c46472a234f881855083cf03949ee8d6cf4a9ef7cd79a2709c05e209fab', '0x34468906ea639c013fa13b24ebc2145bbecc64646afc900a5ddb669a1f5da00f', '{"parentHash":"0x34468906ea639c013fa13b24ebc2145bbecc64646afc900a5ddb669a1f5da00f","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4a8c7c8bbd8b4a718935cdad54da77363dd95f24e9b69de12f261eabdc2be49f","transactionsRoot":"0xfa1cab99b8945b7de4e954230c9923fb486107c5500750b902ec589157343262","receiptsRoot":"0x41f47429ac687a093c7063623a729bc6f6251e6ebbb3696af2eea0bd3d095751","logsBloom":"0x00000000000000000000000000000000000800000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000020000040000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000100000000000000000000000000000000040000000000000000000000000000000020000000080000000000000000200000000000000020000400020000000000000000","difficulty":"0x1","number":"0x11","gasLimit":"0x12c262c","gasUsed":"0x13457","timestamp":"0x68cb1152","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x6bdd2c46472a234f881855083cf03949ee8d6cf4a9ef7cd79a2709c05e209fab","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x4a8c7c8bbd8b4a718935cdad54da77363dd95f24e9b69de12f261eabdc2be49f', '1', '78935', '1758138706', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":17,"txHash":"0x4d60578ed050fb3d9c96c378b6c3a955b7d386920f10f31e57400a4ce5d950a2","gas":109028,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0xf262ade5841308d4379dc7ffd46a2d13f3d96bfe","chainId":"0x13e7f8ad5","value":"0x0","data":"0xc4d66de8000000000000000000000000b01182bb3f923e7c47bbdfd01641e7d32633410d","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x8cdcbc44d8130f2883140894f405c650f3338bce1669c56f782f1344ed23109a","s":"0x1efcf864f11c5aee89d758015c41886bebe2a9b13a807d84ac20eafa4f8ac766"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973708', '0x230863f98595ba0c83785caf618072ce2a876307102adbeba11b9de9c4af8a08', '0x38d72b14ef43e548ab0ffd84892e7c3accdd11e1121c2c7a94b953b4e896eb41', '{"parentHash":"0x38d72b14ef43e548ab0ffd84892e7c3accdd11e1121c2c7a94b953b4e896eb41","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb920df561f210a617a0c1567cb2f65350818b96b159f5aa4b9ac7915b7af4946","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7720c","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36ed","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x230863f98595ba0c83785caf618072ce2a876307102adbeba11b9de9c4af8a08"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xb920df561f210a617a0c1567cb2f65350818b96b159f5aa4b9ac7915b7af4946', '0', '0', '1753167597', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('18', '0xf1933c4650e88beabebb9f5a2f1e41d2650a70f8cdd894872b89370b20856315', '0x6bdd2c46472a234f881855083cf03949ee8d6cf4a9ef7cd79a2709c05e209fab', '{"parentHash":"0x6bdd2c46472a234f881855083cf03949ee8d6cf4a9ef7cd79a2709c05e209fab","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x77660168a740aae60347d47d1e8044c88732051b50a5dc54eeca8a18e9d98667","transactionsRoot":"0x4ef823df03d4a7e7b7f05c06a9f4d02a24e73508a86bfcfdf65abc07fb6bea5a","receiptsRoot":"0x5ef08258d44fd1b059767873f5f8fda72ba1ffab38768a4211b051a3239e8321","logsBloom":"0x00000000000000000000000000000000000800000000000000800000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000020000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040004000000000000000000000000000020000000000000000000000000000000000000000020000000020000000000000000","difficulty":"0x1","number":"0x12","gasLimit":"0x12bdb24","gasUsed":"0x188ea","timestamp":"0x68cb1153","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xf1933c4650e88beabebb9f5a2f1e41d2650a70f8cdd894872b89370b20856315","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x77660168a740aae60347d47d1e8044c88732051b50a5dc54eeca8a18e9d98667', '1', '100586', '1758138707', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":18,"txHash":"0x2ddc4d3028b85c473d38878d4964d23ecc7590b4b52aec208c9551da342e7cb5","gas":147106,"gasPrice":"0x3","gasTipCap":"0x1","gasFeeCap":"0x3","from":"0x0000000000000000000000000000000000000000","to":"0xc2dac4851a2c29105b923286291ffa64520a234f","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf8c8765e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000502e605862276fa0521ca7390918e42dc78f3cb3000000000000000000000000c07d5839dac86c1acc9bdfae46cf57993a29d3e8","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0xf78fc883858b8f05ab7a0bd432cd4f5535e3c42262433b75efeac00d2f2a3f6b","s":"0x5cdd58cde9c9687a956132689ecb6b096e6de7616703a6066c664d36bda91141"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973709', '0xae4af19a7697c2bb10a641f07269ed7df66775d56414567245adc98befdae557', '0x230863f98595ba0c83785caf618072ce2a876307102adbeba11b9de9c4af8a08', '{"parentHash":"0x230863f98595ba0c83785caf618072ce2a876307102adbeba11b9de9c4af8a08","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb920df561f210a617a0c1567cb2f65350818b96b159f5aa4b9ac7915b7af4946","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7720d","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36ee","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xae4af19a7697c2bb10a641f07269ed7df66775d56414567245adc98befdae557"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xb920df561f210a617a0c1567cb2f65350818b96b159f5aa4b9ac7915b7af4946', '0', '0', '1753167598', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('19', '0xf6da6b01cfdca34a03b9ff58040e498aa051d7db3c0df67b1cd062e76af9ce1a', '0xf1933c4650e88beabebb9f5a2f1e41d2650a70f8cdd894872b89370b20856315', '{"parentHash":"0xf1933c4650e88beabebb9f5a2f1e41d2650a70f8cdd894872b89370b20856315","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xdb373274ecb0839109cd0501f9b3e74cd25fc35c83d859904b4f05e1db979f24","transactionsRoot":"0x80e3f41ae659707efaabdec2a925b3f56bb3b037fafb5dc1fbfb4cd319af69a8","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x13","gasLimit":"0x12b902f","gasUsed":"0x5208","timestamp":"0x68cb1154","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xf6da6b01cfdca34a03b9ff58040e498aa051d7db3c0df67b1cd062e76af9ce1a","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xdb373274ecb0839109cd0501f9b3e74cd25fc35c83d859904b4f05e1db979f24', '1', '21000', '1758138708', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":19,"txHash":"0x536e90d3d706089d6321260b47078aed17a408e67c8ccd7c63c847fcca43e341","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x7d380e127b91ae45a1f0d9fd055fed2c2cbf6d0996fef36cb349216f9778a25b","s":"0x54eae519a2224dd8d2d05385bd3dec94085f56122ab7a941af4a7b348a350c52"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973710', '0xd2bc7e24b66940a767abaee485870e9ebd24ff28e72a3096cdccc55b85f84182', '0xae4af19a7697c2bb10a641f07269ed7df66775d56414567245adc98befdae557', '{"parentHash":"0xae4af19a7697c2bb10a641f07269ed7df66775d56414567245adc98befdae557","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb920df561f210a617a0c1567cb2f65350818b96b159f5aa4b9ac7915b7af4946","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7720e","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36ef","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xd2bc7e24b66940a767abaee485870e9ebd24ff28e72a3096cdccc55b85f84182"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xb920df561f210a617a0c1567cb2f65350818b96b159f5aa4b9ac7915b7af4946', '0', '0', '1753167599', '', '0x206c062cf0991353ba5ebc9888ca224f470ad3edf8e8e01125726a3858ebdd73', '[]'); + ) VALUES ('20', '0x9d08b6b9c072a656ad91bd5c8f26a4ea8b0cbd0897d8712446deee401e034b6c', '0xf6da6b01cfdca34a03b9ff58040e498aa051d7db3c0df67b1cd062e76af9ce1a', '{"parentHash":"0xf6da6b01cfdca34a03b9ff58040e498aa051d7db3c0df67b1cd062e76af9ce1a","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x32c3a1ed6c3f1ff8dac2b843be85fad2e53f75e7509f627390456b46a1f99976","transactionsRoot":"0x32f4f1921dbe602472a6553e75ae4e44e52b81567214d2f63c4ea215f61cff69","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x14","gasLimit":"0x12b454c","gasUsed":"0x5208","timestamp":"0x68cc0da6","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x9d08b6b9c072a656ad91bd5c8f26a4ea8b0cbd0897d8712446deee401e034b6c","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x32c3a1ed6c3f1ff8dac2b843be85fad2e53f75e7509f627390456b46a1f99976', '1', '21000', '1758203302', '', '0x5bf58d9017bdd8290964a245d779e42ea27271363a7dc1d19b90966df7e3b7d5', '[{"type":2,"nonce":20,"txHash":"0x16c51f4bf26ef30942c816f0a087c8f39adbdcb689c4d777c9f1536b8a508013","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xfb222605c22bcc4876a92a83e199dba9a6fc9a396c9cbe318e7de4d2b15be379","s":"0x1a942f62294e372a7ebfb42db20a12b1c0ad7f2e0644099f7da2d37a40f928e9"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973711', '0x1870b94320db154de4702fe6bfb69ebc98fb531b78bf81a69b8ab658ba9d9af5', '0xd2bc7e24b66940a767abaee485870e9ebd24ff28e72a3096cdccc55b85f84182', '{"parentHash":"0xd2bc7e24b66940a767abaee485870e9ebd24ff28e72a3096cdccc55b85f84182","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x2bdf2906a7bbb398419246c3c77804a204641259b2aeb4f4a806eb772d31c480","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7720f","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f0","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4209","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x1870b94320db154de4702fe6bfb69ebc98fb531b78bf81a69b8ab658ba9d9af5"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x2bdf2906a7bbb398419246c3c77804a204641259b2aeb4f4a806eb772d31c480', '0', '0', '1753167600', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('21', '0x643835251a90de72f82cd685c92388d8daa8206a2b9ef3bc55d0a54893f57a12', '0x9d08b6b9c072a656ad91bd5c8f26a4ea8b0cbd0897d8712446deee401e034b6c', '{"parentHash":"0x9d08b6b9c072a656ad91bd5c8f26a4ea8b0cbd0897d8712446deee401e034b6c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x9c8206610c5614f7fcd9f9d434ef1c42069d07f2af1a7b96033c35a87e8b0926","transactionsRoot":"0xb79a9fbbdbda44105c95ee21717ae6e992206d7a5db4a94a824b9f6eb5da23dc","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x15","gasLimit":"0x12afa7c","gasUsed":"0x5208","timestamp":"0x68cc0dad","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x643835251a90de72f82cd685c92388d8daa8206a2b9ef3bc55d0a54893f57a12","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x9c8206610c5614f7fcd9f9d434ef1c42069d07f2af1a7b96033c35a87e8b0926', '1', '21000', '1758203309', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":21,"txHash":"0x671fd2f7a167e1f9efbc47e23d61182683eb2de7c0bc1cc387095eae37dfd9f0","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0xc16b99ead06bb6c5e7f60b37c40d986817fa124f4f4116a7904a707f0d964960","s":"0x400c5bd3dfc1fb821b294d324ab797cde48c9f5e2b823c4decd5a8c4624760b5"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973712', '0x271745e26e3222352fce7052edef9adecba921f4315e48a9d55e46640ac324ce', '0x1870b94320db154de4702fe6bfb69ebc98fb531b78bf81a69b8ab658ba9d9af5', '{"parentHash":"0x1870b94320db154de4702fe6bfb69ebc98fb531b78bf81a69b8ab658ba9d9af5","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x1ec0026bd12fe29d710e5f04e605cdb715d68a2e5bac57416066a7bc6b298762","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77210","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f1","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4208","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x271745e26e3222352fce7052edef9adecba921f4315e48a9d55e46640ac324ce"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x1ec0026bd12fe29d710e5f04e605cdb715d68a2e5bac57416066a7bc6b298762', '0', '0', '1753167601', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('22', '0xba50b2f626268671a532d616954993dedeb8766d407d9ef63979947aa72876d9', '0x643835251a90de72f82cd685c92388d8daa8206a2b9ef3bc55d0a54893f57a12', '{"parentHash":"0x643835251a90de72f82cd685c92388d8daa8206a2b9ef3bc55d0a54893f57a12","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x69ac013c376ac435d159d588662d8561225f2655d67ee8433ecc610589ddac46","transactionsRoot":"0x0f834a03bfe59c839ebbdf2a44b3cbb612b3690204cf786222bdd9f1e8f89d26","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x16","gasLimit":"0x12aafbf","gasUsed":"0x5208","timestamp":"0x68cc0dbd","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xba50b2f626268671a532d616954993dedeb8766d407d9ef63979947aa72876d9","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x69ac013c376ac435d159d588662d8561225f2655d67ee8433ecc610589ddac46', '1', '21000', '1758203325', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":22,"txHash":"0xb3ffeafee35ce0cbf4201d8ae8ca248239a9a1826892bd10fd6851713d6d94fc","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x6c637eedcf8139522f53322bb53f9672545a20f915f984774fe34c4831b5c5f9","s":"0x6e2222a18e8ab0a8099e8b87ab4290e0046b199b8a446b23d89f3306b0439840"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973713', '0xe193fc4298a6beebbc59b83cc7e2bbdace76c24fe9b7bd76aa415159ecb60914', '0x271745e26e3222352fce7052edef9adecba921f4315e48a9d55e46640ac324ce', '{"parentHash":"0x271745e26e3222352fce7052edef9adecba921f4315e48a9d55e46640ac324ce","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x7e29363a63f54a0e03e08cb515a98f3c416a5ade3ec15d29eddd262baf67a2a1","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77211","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f2","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xe193fc4298a6beebbc59b83cc7e2bbdace76c24fe9b7bd76aa415159ecb60914"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x7e29363a63f54a0e03e08cb515a98f3c416a5ade3ec15d29eddd262baf67a2a1', '0', '0', '1753167602', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('23', '0x47ce125aefd8fef5c4ad932b99889f4f80e47433291d6e42fc4efca6957c8af2', '0xba50b2f626268671a532d616954993dedeb8766d407d9ef63979947aa72876d9', '{"parentHash":"0xba50b2f626268671a532d616954993dedeb8766d407d9ef63979947aa72876d9","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xc091d590db3ca95df624242546ea48fa9c229ea9a0252bc6297a83d255ffb1c2","transactionsRoot":"0xa823471847869628564fbb6e465a5c65f63a687bde4588582320f98797780a4b","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x17","gasLimit":"0x12a6515","gasUsed":"0x5208","timestamp":"0x68cc0dbf","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x47ce125aefd8fef5c4ad932b99889f4f80e47433291d6e42fc4efca6957c8af2","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xc091d590db3ca95df624242546ea48fa9c229ea9a0252bc6297a83d255ffb1c2', '1', '21000', '1758203327', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":23,"txHash":"0x06681fe0547308f59c422b346f0c1364d327fa0edcbf70ab3c2d9543b60ac787","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0xa157dc3495b985ee7255eb10a0a381db8d43985782b001f0c9882eb144b1cd23","s":"0x1a670ebba8eb1f730ebacf880e3c428da51d673f937a9c88715a40b040518be5"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973714', '0x8e99d9242315a107492520e9255dd77798adbff81393d3de83960dac361bd838', '0xe193fc4298a6beebbc59b83cc7e2bbdace76c24fe9b7bd76aa415159ecb60914', '{"parentHash":"0xe193fc4298a6beebbc59b83cc7e2bbdace76c24fe9b7bd76aa415159ecb60914","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xd818ac5028fe5aa1abd2d3ffe4693b4e96eabad35e49011e2ce920bcd76d061a","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77212","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f3","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x8e99d9242315a107492520e9255dd77798adbff81393d3de83960dac361bd838"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xd818ac5028fe5aa1abd2d3ffe4693b4e96eabad35e49011e2ce920bcd76d061a', '0', '0', '1753167603', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('24', '0xe3e52530c639398688fe95c4cd9b9452522afc3eed4120106bcc2a17df0a500f', '0x47ce125aefd8fef5c4ad932b99889f4f80e47433291d6e42fc4efca6957c8af2', '{"parentHash":"0x47ce125aefd8fef5c4ad932b99889f4f80e47433291d6e42fc4efca6957c8af2","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x94ac0ae535bd1ce60f1f67f5465f1b0963c65a57f75d23c8838fc2941f51de16","transactionsRoot":"0x87cd9eb257ce578a87ab11a8548cc4eb05968d167e60381b0df75c61e7644a54","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x18","gasLimit":"0x12a1a7d","gasUsed":"0x5208","timestamp":"0x68cc0dc1","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xe3e52530c639398688fe95c4cd9b9452522afc3eed4120106bcc2a17df0a500f","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x94ac0ae535bd1ce60f1f67f5465f1b0963c65a57f75d23c8838fc2941f51de16', '1', '21000', '1758203329', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":24,"txHash":"0x352bd957bf83e7670b695ac4966919b53606ba6bc2fb9c7f9848e3dc18d0fba3","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x9abef47cfce250ec28d176257707a102b30646dabbbedc5f8e31eb2264dca7b1","s":"0x174dd324172889331ec0a33aadfe33e860a6b0868c3e0f12aeb27fc6b36b175"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973715', '0x9ee9d75a25a912e7d3907679a1e588021f4d2040c71d2e1c958538466a4fbbd6', '0x8e99d9242315a107492520e9255dd77798adbff81393d3de83960dac361bd838', '{"parentHash":"0x8e99d9242315a107492520e9255dd77798adbff81393d3de83960dac361bd838","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x233fd85bd753e126e4df23a05c56ccde3eb6ec06ce2565a990af3347dc95b0c5","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77213","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f4","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x9ee9d75a25a912e7d3907679a1e588021f4d2040c71d2e1c958538466a4fbbd6"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x233fd85bd753e126e4df23a05c56ccde3eb6ec06ce2565a990af3347dc95b0c5', '0', '0', '1753167604', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('25', '0x35cb1e7ffafc169d36f69ff6aca141a9ea0595246ab13173d6003a7f03773c5a', '0xe3e52530c639398688fe95c4cd9b9452522afc3eed4120106bcc2a17df0a500f', '{"parentHash":"0xe3e52530c639398688fe95c4cd9b9452522afc3eed4120106bcc2a17df0a500f","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xdb23be37107bfa4bf086dd77d6e95176191192770dd22a609fe87b5b71dcdee0","transactionsRoot":"0x75ac5e2f2336ba866022c8b72e80eee0b0d538d8b22af8bcda9308df9e9ca30f","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x19","gasLimit":"0x129cff8","gasUsed":"0x5208","timestamp":"0x68cc0dd4","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x35cb1e7ffafc169d36f69ff6aca141a9ea0595246ab13173d6003a7f03773c5a","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xdb23be37107bfa4bf086dd77d6e95176191192770dd22a609fe87b5b71dcdee0', '1', '21000', '1758203348', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":25,"txHash":"0xfed093e3973065b41c2baa822903a8fc6ee8e26cd46f6f2e18ab1b060eab1e23","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0xbe46078d20241000020c3490f77e5f1af25fc7bf22f0e7ea0e2cbede6c1d63a9","s":"0xb4ebdc9c4fb711da07c57e472aead48c6fb1ddbc14228e7440a6a35d99918c1"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973716', '0x9b25094db21166930008728c487ca9dbbc1e842701c8573eaa6bea4d41c10a7e', '0x9ee9d75a25a912e7d3907679a1e588021f4d2040c71d2e1c958538466a4fbbd6', '{"parentHash":"0x9ee9d75a25a912e7d3907679a1e588021f4d2040c71d2e1c958538466a4fbbd6","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x12be357fcc1fc28e574a7f95a5f9b3aae7e18d8ab8829c676478b4e8953a8502","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77214","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f5","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x9b25094db21166930008728c487ca9dbbc1e842701c8573eaa6bea4d41c10a7e"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x12be357fcc1fc28e574a7f95a5f9b3aae7e18d8ab8829c676478b4e8953a8502', '0', '0', '1753167605', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('26', '0x168bfa9c70e22639bd6a1a2828b8434b86668dacb546f9b583a03c51e2a30eb7', '0x35cb1e7ffafc169d36f69ff6aca141a9ea0595246ab13173d6003a7f03773c5a', '{"parentHash":"0x35cb1e7ffafc169d36f69ff6aca141a9ea0595246ab13173d6003a7f03773c5a","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x1b16e5749382f5c7eda9a233609f9c91e8aac68480c62d37d123ce1b619645aa","transactionsRoot":"0xadb0d2d20e40ca4a4ce7a9f91745ff3ad47b0da44c813611efaa870e0ab90c82","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x1a","gasLimit":"0x1298586","gasUsed":"0x5208","timestamp":"0x68cc0dee","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x168bfa9c70e22639bd6a1a2828b8434b86668dacb546f9b583a03c51e2a30eb7","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x1b16e5749382f5c7eda9a233609f9c91e8aac68480c62d37d123ce1b619645aa', '1', '21000', '1758203374', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":26,"txHash":"0x458223bdac1d4f321ef32433d60fe624a45f5e51c95d2285e27ed22a2a73910b","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x668a5debb397334faacd83c991ff70ffe84484bea840a19ebd63b691ba7e63ea","s":"0x60d3467a3a15fe93d2f54b5d4f7c850f8f634d825e56219b06b9c2f05e0faa91"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973717', '0xeaab0e07b40720f8e961f28ef665f08e67797428dc1eaccba88d5d4f60341284', '0x9b25094db21166930008728c487ca9dbbc1e842701c8573eaa6bea4d41c10a7e', '{"parentHash":"0x9b25094db21166930008728c487ca9dbbc1e842701c8573eaa6bea4d41c10a7e","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x7e49dc33343a54e9afc285155b8a35575e6924d465fe2dc543b5ea8915eb828a","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77215","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f6","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xeaab0e07b40720f8e961f28ef665f08e67797428dc1eaccba88d5d4f60341284"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x7e49dc33343a54e9afc285155b8a35575e6924d465fe2dc543b5ea8915eb828a', '0', '0', '1753167606', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('27', '0xccf18d3ce189c11d6689fb30dc3f1d68b12d4775d1d68e1eb16417e8704c9ad2', '0x168bfa9c70e22639bd6a1a2828b8434b86668dacb546f9b583a03c51e2a30eb7', '{"parentHash":"0x168bfa9c70e22639bd6a1a2828b8434b86668dacb546f9b583a03c51e2a30eb7","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xecd93d79aa62fa4378bb1fc4093ba04513d2291e933e64a3a513d9ff373a2815","transactionsRoot":"0x4c69d8d178f6716587d6e53fb6d1a85609b12e842f04cb7e516d5fe7b7db2efa","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x1b","gasLimit":"0x1293b26","gasUsed":"0x5208","timestamp":"0x68cc0eac","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xccf18d3ce189c11d6689fb30dc3f1d68b12d4775d1d68e1eb16417e8704c9ad2","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xecd93d79aa62fa4378bb1fc4093ba04513d2291e933e64a3a513d9ff373a2815', '1', '21000', '1758203564', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":27,"txHash":"0x04428c3aabb77082f0b556a355058fdd84e7a6b11484f536a9e918d05c68a4a5","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x44b2cc7e6a7cbdd5b18b691f515e3a7ba3625ddca2509495c8e4fb65c6cf0693","s":"0x552d91d386fad8afd2055e8971663576640a18bab4485a60e1bc82561832aef9"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973718', '0xd6af3c7bf29f3689b516ed5c8fcf885a4e7eb2df751c35d4ebbb19fcc13628d4', '0xeaab0e07b40720f8e961f28ef665f08e67797428dc1eaccba88d5d4f60341284', '{"parentHash":"0xeaab0e07b40720f8e961f28ef665f08e67797428dc1eaccba88d5d4f60341284","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xf1a7db2e4f463fa87e3e65b73d2abc5374302855f6af9735d5a11c94c2d93975","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77216","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f7","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xd6af3c7bf29f3689b516ed5c8fcf885a4e7eb2df751c35d4ebbb19fcc13628d4"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xf1a7db2e4f463fa87e3e65b73d2abc5374302855f6af9735d5a11c94c2d93975', '0', '0', '1753167607', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('28', '0x4e287b8acacbb61049aa22aa5c6f2414060c1c9831bae8c465bc080715c2e9af', '0xccf18d3ce189c11d6689fb30dc3f1d68b12d4775d1d68e1eb16417e8704c9ad2', '{"parentHash":"0xccf18d3ce189c11d6689fb30dc3f1d68b12d4775d1d68e1eb16417e8704c9ad2","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x74c1230e30b6152ef928f8165c9138e5d48e5b3f80fb162c2b7dfee5f3145c65","transactionsRoot":"0xc48f6790414549e51f91992e9455cf3f01a67c6cfe201ddb44fa6da464f2dc17","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x1c","gasLimit":"0x128f0d9","gasUsed":"0x5208","timestamp":"0x68cc0eb3","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x4e287b8acacbb61049aa22aa5c6f2414060c1c9831bae8c465bc080715c2e9af","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x74c1230e30b6152ef928f8165c9138e5d48e5b3f80fb162c2b7dfee5f3145c65', '1', '21000', '1758203571', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":28,"txHash":"0xc8a3ef9d1c7b89a7d9462fe18d8379e49fc2969c7d2433eec20db8e6c36bafad","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x25e07f3f0a9521bf96e63bf4e62b06af01cb6b0e64a393660819d03e4672fca8","s":"0xac0b8b356bc9c80a1341b7d907cc0200a82087bdc6a27e247bb10b0b0513006"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973719', '0x5815f5b91d53d0b5c7d423f06da7cad3d45edeab1c2b590af02ceebfd33b2ce1', '0xd6af3c7bf29f3689b516ed5c8fcf885a4e7eb2df751c35d4ebbb19fcc13628d4', '{"parentHash":"0xd6af3c7bf29f3689b516ed5c8fcf885a4e7eb2df751c35d4ebbb19fcc13628d4","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb5d1f420ddc1edb60c7fc3a06929a2014c548d1ddd52a78ab6984faed53a09d1","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77217","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36f8","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x5815f5b91d53d0b5c7d423f06da7cad3d45edeab1c2b590af02ceebfd33b2ce1"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xb5d1f420ddc1edb60c7fc3a06929a2014c548d1ddd52a78ab6984faed53a09d1', '0', '0', '1753167608', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('29', '0x18b826821a1efe5a8fd248e148c9a40ddb15a9b70c9ee948ec62c1728bd0762d', '0x4e287b8acacbb61049aa22aa5c6f2414060c1c9831bae8c465bc080715c2e9af', '{"parentHash":"0x4e287b8acacbb61049aa22aa5c6f2414060c1c9831bae8c465bc080715c2e9af","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x906830ba0ade94a17557398e9d64d0fc9abfa5f0d96a47d329563d904eca9f57","transactionsRoot":"0x79b96aed394beb3ff2ed3d457b038a603e303999fe816a992c9496e325115247","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x1d","gasLimit":"0x128a69e","gasUsed":"0x5208","timestamp":"0x68cc0eba","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x18b826821a1efe5a8fd248e148c9a40ddb15a9b70c9ee948ec62c1728bd0762d","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x906830ba0ade94a17557398e9d64d0fc9abfa5f0d96a47d329563d904eca9f57', '1', '21000', '1758203578', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":29,"txHash":"0x4538139af82e4ffd38ac48e6321359e882c927c904e2a3f23ef8035b238d97e8","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x91d4c8261033505e4d06d1d27ac3ea05eaa501b618281a8689d2af96873b49bc","s":"0x4e46e605a3a31886c912e8ce92487243afa73c55d238e6af4e6b9e07916d8c59"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973720', '0x4d8bbd6a15515cacf18cf9810ca3867442cefc733e9cdeaa1527a008fbca3bd1', '0x5815f5b91d53d0b5c7d423f06da7cad3d45edeab1c2b590af02ceebfd33b2ce1', '{"parentHash":"0x5815f5b91d53d0b5c7d423f06da7cad3d45edeab1c2b590af02ceebfd33b2ce1","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xf4ca7c941e6ad6a780ad8422a817c6a7916f3f80b5f0d0f95cabcb17b0531299","transactionsRoot":"0x79c3ba4e0fe89ddea0ed8becdbfff86f18dab3ffd21eaf13744b86cb104d664e","receiptsRoot":"0xc8f88931c3c4ca18cb582e490d7acabfbe04fd6fa971549af6bf927aec7bfa1f","logsBloom":"0x00000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77218","gasLimit":"0x1312d00","gasUsed":"0x7623","timestamp":"0x687f36f9","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x4d8bbd6a15515cacf18cf9810ca3867442cefc733e9cdeaa1527a008fbca3bd1"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xf4ca7c941e6ad6a780ad8422a817c6a7916f3f80b5f0d0f95cabcb17b0531299', '1', '30243', '1753167609', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[{"type":0,"nonce":13627,"txHash":"0x539962b9584723f919b9f3a0b454622f5f51c195300564116d0cedfec17a1381","gas":30243,"gasPrice":"0xef426b","gasTipCap":"0xef426b","gasFeeCap":"0xef426b","from":"0x0000000000000000000000000000000000000000","to":"0xf07cc6482a24843efe7b42259acbaf8d0a2a6952","chainId":"0x8274f","value":"0x0","data":"0x91b7f5ed0000000000000000000000000000000000000000000018f4c5be1c1407000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x104ec2","r":"0xaa309d7e218825160be9a87c9e50d3cbfead9c87e90e984ad0ea2441633092a2","s":"0x438f39c0af058794f320e5578720557af07c5397e363f9628a6c4ffee5bd2487"}]'); + ) VALUES ('30', '0x371d78c25429da00861ab320109f611e97523f5eb43c5d5f0dbe8d8a9ee3409a', '0x18b826821a1efe5a8fd248e148c9a40ddb15a9b70c9ee948ec62c1728bd0762d', '{"parentHash":"0x18b826821a1efe5a8fd248e148c9a40ddb15a9b70c9ee948ec62c1728bd0762d","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x72de8bd6a245d9c8dabb91661b027475c4b6dc7f20d991e5e1f8e81b19889890","transactionsRoot":"0x00cfa8e33b6a289346d50954aff8856b55190d01fc46b92bd54f3fd71a0ceafe","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x1e","gasLimit":"0x1285c76","gasUsed":"0x5208","timestamp":"0x68cc0ec1","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x371d78c25429da00861ab320109f611e97523f5eb43c5d5f0dbe8d8a9ee3409a","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x72de8bd6a245d9c8dabb91661b027475c4b6dc7f20d991e5e1f8e81b19889890', '1', '21000', '1758203585', '', '0x7a8cd6d46eb10099a93446c955740dbfe9b161740b9b96fd93c2d85d61d6d953', '[{"type":2,"nonce":30,"txHash":"0x714fbd3217eded5ece32a3cc4ab976efb0025fd7d18fd2fab39e66e2b3e8b67d","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xd679689e366be2bcf13219cfe1de8faf004322d2999f7a0bf81a2b47fde0567b","s":"0x38b9ec36b14adcdff25c4deb0a0896e6ce1d56aed0dc4a154f1807ee6565797e"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973721', '0x84c53d922cfe0558c4be02865af5ebd49efe44a458dabc16aea5584e5e06f346', '0x4d8bbd6a15515cacf18cf9810ca3867442cefc733e9cdeaa1527a008fbca3bd1', '{"parentHash":"0x4d8bbd6a15515cacf18cf9810ca3867442cefc733e9cdeaa1527a008fbca3bd1","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xd4838ba86f5a8e865a41ef7547148b6074235a658dd57ff2296c0badda4760d1","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77219","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36fa","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x84c53d922cfe0558c4be02865af5ebd49efe44a458dabc16aea5584e5e06f346"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xd4838ba86f5a8e865a41ef7547148b6074235a658dd57ff2296c0badda4760d1', '0', '0', '1753167610', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('31', '0x68b59e6851bc97ca889048029b3cf59ef849c3fd80e04f69fc4bce541c76e7af', '0x371d78c25429da00861ab320109f611e97523f5eb43c5d5f0dbe8d8a9ee3409a', '{"parentHash":"0x371d78c25429da00861ab320109f611e97523f5eb43c5d5f0dbe8d8a9ee3409a","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x42dc9881532799049d483d1a1a2c1b0a3b84a1ad1bfd8e79e3be0485b0b6d13b","transactionsRoot":"0x754a213b3c034bffb154cecc98c5fcdfed36c9d06abf2622044aeb6c9fb72283","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0x1f","gasLimit":"0x1281260","gasUsed":"0x5208","timestamp":"0x68cc0ec3","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x68b59e6851bc97ca889048029b3cf59ef849c3fd80e04f69fc4bce541c76e7af","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x42dc9881532799049d483d1a1a2c1b0a3b84a1ad1bfd8e79e3be0485b0b6d13b', '1', '21000', '1758203587', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":2,"nonce":31,"txHash":"0xc72bc73b169a35f4b0e5a3777ac9f9d6edf4f46cf69b9da0aed7b232a6ee943a","gas":21000,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff","chainId":"0x13e7f8ad5","value":"0x0","data":"0x","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x659a3b41266757a01ad8abf87eefe7ba27838ffd1309dffdb3e93a41db82907d","s":"0x68c0fcf75f31bc125994c9bc26f9a250fd918ba41ca5f69355c5a302bdfe0fd1"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973722', '0xe1d601522b08d98852b4c7dc3584f292ac246a3dac3c600ba58bd6c20c97be5b', '0x84c53d922cfe0558c4be02865af5ebd49efe44a458dabc16aea5584e5e06f346', '{"parentHash":"0x84c53d922cfe0558c4be02865af5ebd49efe44a458dabc16aea5584e5e06f346","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x8deede75e20423d0495cbdb493d320dddde6df0459df998608a16f658eb7bec3","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7721a","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36fb","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xe1d601522b08d98852b4c7dc3584f292ac246a3dac3c600ba58bd6c20c97be5b"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x8deede75e20423d0495cbdb493d320dddde6df0459df998608a16f658eb7bec3', '0', '0', '1753167611', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('32', '0xad681b06870a1f68b3916ef1ae46047b33c4cb858530eb087fd139655c0843d4', '0x68b59e6851bc97ca889048029b3cf59ef849c3fd80e04f69fc4bce541c76e7af', '{"parentHash":"0x68b59e6851bc97ca889048029b3cf59ef849c3fd80e04f69fc4bce541c76e7af","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x5964c66e1f109d04cb947dc23795c8703801f44f1b605a0e9251a433ab3d83a3","transactionsRoot":"0x193341036aefd93d5b6395d1ff18a19ccdb9c1c19dc329fecd96552e41f74c4c","receiptsRoot":"0xd4ba905eef1a6abb1b83a7e86355660b2221c4edef10e45f8fcc1584a4d43f69","logsBloom":"0x00000000000004000000000000000000000000000000000000000000000001001000000000000000000008000000000000000000000000044040000000000400000000004000000000000008000000000000000003000000000800000000000020000000030000400000000010000800000010000100010000000018000000002020000000000000000040000000400020000000000080000000020000000000000000100080000000800000000400000000000000000000000000000000000000000002000000000000000000040004000000000000000200000000000020200000000000000040000000000000000000000000040010000000000008000000","difficulty":"0x1","number":"0x20","gasLimit":"0x127c85d","gasUsed":"0x5f045","timestamp":"0x68cc5b63","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xad681b06870a1f68b3916ef1ae46047b33c4cb858530eb087fd139655c0843d4","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x5964c66e1f109d04cb947dc23795c8703801f44f1b605a0e9251a433ab3d83a3', '1', '389189', '1758223203', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":126,"nonce":0,"txHash":"0xec395843831c78f5fb7491273447760c020ebc5b5778a91009a46a7e534e42ce","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a0000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000007504328ccd310a308d8112ac85e82271415bf74b9bd920be7d3d8166d767dc989bb734ef648aa9fb55112464508b184bb2d8db11276d2d5bd40c7c1e9dc746adcdc67be98177cbde1e1f289b4a19e07ab95aca1a9c5d13a9725558c31a3cf16eb9fa146040f8ea5313cbb9c6efaa08772de9607d8b75000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973723', '0x8579712fc434b401f1ecfcf3ae22611be054480fa882e90f8eecb6c5e97534bd', '0xe1d601522b08d98852b4c7dc3584f292ac246a3dac3c600ba58bd6c20c97be5b', '{"parentHash":"0xe1d601522b08d98852b4c7dc3584f292ac246a3dac3c600ba58bd6c20c97be5b","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb4fe51cda0401bb19e8448a2697a49e1fbc25398c2b18a9955d0a8e6f4b153a7","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7721b","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36fc","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x8579712fc434b401f1ecfcf3ae22611be054480fa882e90f8eecb6c5e97534bd"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xb4fe51cda0401bb19e8448a2697a49e1fbc25398c2b18a9955d0a8e6f4b153a7', '0', '0', '1753167612', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('33', '0xde2e7ef2aaab02251d7a7e238c5175b4b6454c7e08a3441380b6e9f3092c2052', '0xad681b06870a1f68b3916ef1ae46047b33c4cb858530eb087fd139655c0843d4', '{"parentHash":"0xad681b06870a1f68b3916ef1ae46047b33c4cb858530eb087fd139655c0843d4","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x4b35eeb8e6d58d46718dc5fa52561a26b8e377eb29f51c5eed279305e916d8ee","transactionsRoot":"0x9dd384c2286199f0b838eaad026122af823c61bbe9899c74bf895ed38f9e362d","receiptsRoot":"0x45a47f2a7c61dae4867ecb788424d33045778ea60d4a17e977132e483c9b5f10","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000001000000000002000000000000000000000000000000000000040040000000000400000000000000000000000008000000000000000001000000000800000000000000800000030000400000000010000800000010000100000000000018000000000000000000000000000040000000400020000000000000000000020000000000000000000080000000800000000000400000000000400000000000000000001000000002000000000000000000000004000000000000000000000000000020200000000000000040000100000000000000000000040010000000000008000000","difficulty":"0x1","number":"0x21","gasLimit":"0x1277e6c","gasUsed":"0x21b8f","timestamp":"0x68cc5bfb","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xde2e7ef2aaab02251d7a7e238c5175b4b6454c7e08a3441380b6e9f3092c2052","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x4b35eeb8e6d58d46718dc5fa52561a26b8e377eb29f51c5eed279305e916d8ee', '1', '138127', '1758223355', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":126,"nonce":1,"txHash":"0x70781b6f6af4758e4d74f1c0bc13665bd52d1369f3534437e035c3eb3798bab6","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a00000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000075041d8e67a2dfdcfe3ed58620d055775d3baf6d43eb26d23202ec4c80144e253e0b88bd9b0fff0b52eb85cd094ae0354b353a12a457163f306c64de6dd5e7105cecb182cd0ce700360fb1171a095e00544a9fe8d19fec841b67a19445789ccdc86d83fb4d5e34fa6da300ecc7db0b0d027d9cc31f54000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973724', '0xe13a0b907e044a9df1952acc31dc08a578fb910a0cc224e11692cb84c9c9a9f7', '0x8579712fc434b401f1ecfcf3ae22611be054480fa882e90f8eecb6c5e97534bd', '{"parentHash":"0x8579712fc434b401f1ecfcf3ae22611be054480fa882e90f8eecb6c5e97534bd","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xcd17c85290d8ec7473357ebe1605f766af6c1356732cc7ad11de0453baca05c6","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7721c","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36fd","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xe13a0b907e044a9df1952acc31dc08a578fb910a0cc224e11692cb84c9c9a9f7"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xcd17c85290d8ec7473357ebe1605f766af6c1356732cc7ad11de0453baca05c6', '0', '0', '1753167613', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('34', '0x8968328756c51d2f57a51edf51fb9e815b6daa916b8ed6ef66cfa843e59f150c', '0xde2e7ef2aaab02251d7a7e238c5175b4b6454c7e08a3441380b6e9f3092c2052', '{"parentHash":"0xde2e7ef2aaab02251d7a7e238c5175b4b6454c7e08a3441380b6e9f3092c2052","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x13840ef104260ad9d7011c75ec04881edce47a3ff4da290fcbb8e71e56429e38","transactionsRoot":"0xb94355284b8dc60b0e97b80ceb174f94454a16264f87ef778be45978d408f2a7","receiptsRoot":"0x066cd743082076486283220fd95eb1589aeadc3f9d12800522162b3c5eba5002","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000221000000000000000000000000000000000000000000000000040040000000040400000000000000000000000008000000000000000001000000000800000000000000000000030000400000000010000800000010004100000000000018080000000000000000000000000040000000400020000000000000000000020000000000000000000080000000800000000000000000000000000000000000000000000000000002000000000000000000000004000000000000000000000000000020200000000000000040000000020000000000000000040010000000000008000000","difficulty":"0x1","number":"0x22","gasLimit":"0x127348e","gasUsed":"0x21b8f","timestamp":"0x68cc5c3a","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x8968328756c51d2f57a51edf51fb9e815b6daa916b8ed6ef66cfa843e59f150c","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x13840ef104260ad9d7011c75ec04881edce47a3ff4da290fcbb8e71e56429e38', '1', '138127', '1758223418', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":126,"nonce":2,"txHash":"0xc38ef15e3e2cb02e67c1cc802a7ba21b92b89b0558a1768f17cb1e2fe5587fc0","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a0000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000007504214b8df3d4caee417556da2db78936ade3ce4051ef5d3c467ea39c76bcf795d2e28571d45f4c241f106d16939273fde43bad5908f60b89447bbff48f38d50807a1f83f844c6cda2b03bfe1af3d11ec7e7c88f4fd73164003afe3816000697e4b4dea3629924fbb9aabca50ef4442ac701f43c8c5000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973725', '0x2e26fb489f8644b3b5c44cd493ebc140ba3bc716588f37a71b8ba6dc504ccb5f', '0xe13a0b907e044a9df1952acc31dc08a578fb910a0cc224e11692cb84c9c9a9f7', '{"parentHash":"0xe13a0b907e044a9df1952acc31dc08a578fb910a0cc224e11692cb84c9c9a9f7","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xfd321f4a3e2bc757df89162f730a2e37519dcb29cdb63019665c1fe4dbceeb00","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7721d","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36fe","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x2e26fb489f8644b3b5c44cd493ebc140ba3bc716588f37a71b8ba6dc504ccb5f"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xfd321f4a3e2bc757df89162f730a2e37519dcb29cdb63019665c1fe4dbceeb00', '0', '0', '1753167614', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('35', '0xc80cf12883341827d71c08f734ba9a9d6da7e59eb16921d26e6706887e552c74', '0x8968328756c51d2f57a51edf51fb9e815b6daa916b8ed6ef66cfa843e59f150c', '{"parentHash":"0x8968328756c51d2f57a51edf51fb9e815b6daa916b8ed6ef66cfa843e59f150c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xbbe424d7e24ceff9d9b9924d2876baceaf4efce36e260d666f992ee1eeb80f1c","transactionsRoot":"0x10c469b9a65488c55759b133fd85d296f93673d3bb46d166df8659002bbedce0","receiptsRoot":"0x927c64c95b8db2c474618420d2761bb4912de83f27391a846cffb8883a86f40a","logsBloom":"0x00000002000000000000000000000000000000000000000000000000000001000000000000000000002000000000000000000000000000440040000000000400000000000000000000000008000000000000000001000000000800000000000000000100030000400000000010000800000010000100000100000018000000000000000000000000000040000000400020000000000000000000020000000000000000000080000000800000000000000000000000000000000000000000000000000002000000000000000000000004000000000000000000000000000020200000000000000040000000000000000000000000040010000000000008000000","difficulty":"0x1","number":"0x23","gasLimit":"0x126eac2","gasUsed":"0x21b8f","timestamp":"0x68cc5c41","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xc80cf12883341827d71c08f734ba9a9d6da7e59eb16921d26e6706887e552c74","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xbbe424d7e24ceff9d9b9924d2876baceaf4efce36e260d666f992ee1eeb80f1c', '1', '138127', '1758223425', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":126,"nonce":3,"txHash":"0xec18c8b5d6cb41ecf44652e96beb4edee5413227972cf6638e4ce744d2a1348b","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000750433f4cf9e6a07b9e3ba8948f61be2518e7d7e36b6fbd79b2a79647e64bc431ddbc2236f067c87baaef57e248569585c4b313434248f3b89f0d39a26f006f11e9b83d7040e90a7da4f903f9f781ea5e5a102dd971ab96d134f078621a8f2dc43e742246033be24f676c5788b489af48bc277d7e8f1000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973726', '0x313b0fbb7cbb8bc1ba4fbc50684b516d31f9f7ee6f66d919da01328537a4b0a1', '0x2e26fb489f8644b3b5c44cd493ebc140ba3bc716588f37a71b8ba6dc504ccb5f', '{"parentHash":"0x2e26fb489f8644b3b5c44cd493ebc140ba3bc716588f37a71b8ba6dc504ccb5f","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x1a24ed5ee5e8ca354f583b28bd7f2c4c6fe4dca59fef476578eddab17b857471","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa7721e","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f36ff","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x313b0fbb7cbb8bc1ba4fbc50684b516d31f9f7ee6f66d919da01328537a4b0a1"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x1a24ed5ee5e8ca354f583b28bd7f2c4c6fe4dca59fef476578eddab17b857471', '0', '0', '1753167615', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('36', '0x453f65ac2a3d04d910a56ff35ebab0404371d77bacaadf683ef0285e1263ba72', '0xc80cf12883341827d71c08f734ba9a9d6da7e59eb16921d26e6706887e552c74', '{"parentHash":"0xc80cf12883341827d71c08f734ba9a9d6da7e59eb16921d26e6706887e552c74","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x0daa3060b0725b11841ab666cf210d0cb8ffa4b0f67773bbfceaf6cc4eca7414","transactionsRoot":"0xa4952683bb1c1dcf3fd534a4717ba8704f8845ad6cbe06d7225b7e5763b6c574","receiptsRoot":"0x3d4abceae4bef736275adbf8712b184e62f8965f41a8ac3fcbf2713b953a07e1","logsBloom":"0x00000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000010000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000080000000000000000000000000000040000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000080000000000000000000000000010000000000000000000","difficulty":"0x1","number":"0x24","gasLimit":"0x126a109","gasUsed":"0xf545","timestamp":"0x68cc5c53","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x453f65ac2a3d04d910a56ff35ebab0404371d77bacaadf683ef0285e1263ba72","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0daa3060b0725b11841ab666cf210d0cb8ffa4b0f67773bbfceaf6cc4eca7414', '1', '62789', '1758223443', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":126,"nonce":4,"txHash":"0x86a8c2062295f8d9ec12b5366a725fc2cee4655c9608797bf6d2922a08300ccb","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a0000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000007704410c184a7cab08566646b6a7902f7600ba08017ce75d476f41428658507d1788fad5d3e7c0f3206476aa5cf5c7c036cb52e3bb84617835ff5d1562d085cc82bc10f1e176a9ac9cd8ffbb7bf6247ce829baaeab159ea8a2d578de0ae124047411418845175c1abaa0dd9a42fa756bd1bb7b32bb7dabc000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973727', '0xf9039c9c24ab919066f2eb6f97360cfb727ed032c9e6142ea45e784b19894560', '0x313b0fbb7cbb8bc1ba4fbc50684b516d31f9f7ee6f66d919da01328537a4b0a1', '{"parentHash":"0x313b0fbb7cbb8bc1ba4fbc50684b516d31f9f7ee6f66d919da01328537a4b0a1","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x2927f53f1eaaeaa17a80f048f10474a7cc3b2c96547cc47caad33ff9e5b38da6","transactionsRoot":"0x80fd441b38b6ffb8f9369d8a5179356f9bf5ad332db0da99f7c6efdb90939cd2","receiptsRoot":"0xa262cee7ba62c004c6554e9cf378512a868346c24f8cafc1ac1954250339149e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000900000000000000000000000000000000000000000000000000000000000000000000000001000000008000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000020000000000000000000","difficulty":"0x1","number":"0xa7721f","gasLimit":"0x1312d00","gasUsed":"0x9642","timestamp":"0x687f3700","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xf9039c9c24ab919066f2eb6f97360cfb727ed032c9e6142ea45e784b19894560"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x2927f53f1eaaeaa17a80f048f10474a7cc3b2c96547cc47caad33ff9e5b38da6', '1', '38466', '1753167616', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[{"type":2,"nonce":3392501,"txHash":"0xa5231ea1b94eb516575807531763b312d250ee5ad4dfbeea66beab5f448c32b6","gas":45919,"gasPrice":"0x1de8472","gasTipCap":"0x64","gasFeeCap":"0x1de8472","from":"0x0000000000000000000000000000000000000000","to":"0x5300000000000000000000000000000000000002","chainId":"0x8274f","value":"0x0","data":"0x39455d3a000000000000000000000000000000000000000000000000000000000004580f0000000000000000000000000000000000000000000000000000000000000001","isCreate":false,"accessList":[{"address":"0x5300000000000000000000000000000000000003","storageKeys":["0x297c59f20c6b2556a4ed35dccabbdeb8b1cf950f62aefb86b98d19b5a4aff2a2"]}],"authorizationList":null,"v":"0x1","r":"0xa09a97c38c7a58f40ff39ca74f938c63f1ef822cf91926d4fff96b7dc818d3f3","s":"0x77ee7453096794d9cbb206f26077f23b4cc88fe51893cb5eab46714e379ac833"}]'); + ) VALUES ('37', '0x0067c4bf2d87c54c529df8a1e68a2481a61956ff52f9626231fb34936ddc0cdd', '0x453f65ac2a3d04d910a56ff35ebab0404371d77bacaadf683ef0285e1263ba72', '{"parentHash":"0x453f65ac2a3d04d910a56ff35ebab0404371d77bacaadf683ef0285e1263ba72","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xa05c04bafc3b24749d322d72627cf90171629b9a883bdd759ca1fde15dd1228a","transactionsRoot":"0x4e99f969a1ceff8300b97b78f87775dcfa4ff389c9319357e0f8062cfbe5f07a","receiptsRoot":"0x3f72afe37df8b79e2ade4c8d10915b79f1bfa75f8300daf435b6c3abb49b1ef2","logsBloom":"0x00000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000200000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000008010000000000000000000","difficulty":"0x1","number":"0x25","gasLimit":"0x1265762","gasUsed":"0xf551","timestamp":"0x68cc5c60","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x0067c4bf2d87c54c529df8a1e68a2481a61956ff52f9626231fb34936ddc0cdd","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xa05c04bafc3b24749d322d72627cf90171629b9a883bdd759ca1fde15dd1228a', '1', '62801', '1758223456', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":126,"nonce":5,"txHash":"0x3f5e30036014057d3a31c319e2785473d6eac0c7a7342762fe46fc05514b916d","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a0000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000007704b06abe559887bccf46d198fd2c97c4fd91f00bccc7343468c8c35148a79edacb8eaa862a21f0df90cce2b469b690a138db9702ab1e90ab25bf7d9a34cf1efccdcc0d6415f178bba9d6b84f4571ebf59666e6175e22db0fc096ce7d36046e7ebda06b31bf6fa8d70f98b8e1ae8cf32a20e306ff1babc000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973728', '0xf27ff9223f6bf9a964737d50cb7c005f049cf0f4edfd16d24178a798c21716d6', '0xf9039c9c24ab919066f2eb6f97360cfb727ed032c9e6142ea45e784b19894560', '{"parentHash":"0xf9039c9c24ab919066f2eb6f97360cfb727ed032c9e6142ea45e784b19894560","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x0dbe54818526afaabbce83765eabcd4ec4d437a3497e5d046d599af862ea9850","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77220","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f3701","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0xf27ff9223f6bf9a964737d50cb7c005f049cf0f4edfd16d24178a798c21716d6"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0x0dbe54818526afaabbce83765eabcd4ec4d437a3497e5d046d599af862ea9850', '0', '0', '1753167617', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('38', '0x0cd729ee6c62afd733fad72e68ae161b74dc4c13c16d05d1372fa730a07e46b9', '0x0067c4bf2d87c54c529df8a1e68a2481a61956ff52f9626231fb34936ddc0cdd', '{"parentHash":"0x0067c4bf2d87c54c529df8a1e68a2481a61956ff52f9626231fb34936ddc0cdd","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x193a08080dc20c9b5b72719ee0607e478e588578b520cdfabc9fceca891e58a3","transactionsRoot":"0x1d5b63dc156287f84dafc6663dd3b2cb68a0cdaa1796ea0ded99a0396f4bd7e1","receiptsRoot":"0x48317503b1075a596ea07a1d4ee62b38076433c14eb7c8cd9840419914cfde31","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000001000000000000200000000000000000000000000000800000040040000000000400000000000000000400000008008000000000000001000000000800000000000000000000030000400000000010000800000010000100000000080018000000000000000000000000000040000000400020000000000000000000020000000000000000000080000000800000000000000000000000000000000000000000000000000002000000000000000000000004000000000000000000000000000020200000000000000040000010000000000000000000040010000000000008000000","difficulty":"0x1","number":"0x26","gasLimit":"0x1260dce","gasUsed":"0x21b83","timestamp":"0x68cc5fc5","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x0cd729ee6c62afd733fad72e68ae161b74dc4c13c16d05d1372fa730a07e46b9","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x193a08080dc20c9b5b72719ee0607e478e588578b520cdfabc9fceca891e58a3', '1', '138115', '1758224325', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":126,"nonce":6,"txHash":"0x2aaa87fdbd4335c79c25e57d3406df87572de00cbfe7035042d8a1de3ed805a9","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a0000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000007504a68f46bb3fb166c4915cde5190663f8a5d6cda4711d569a46afbdeff15bbb9edbbe11698fbec3d27c8ccd46907bc5ef55fdd1f5f56a0963fa2bf78b1fd4848818da7671eef0a18861c4aa193746197fc61a57f1719d05560d8408c0206863fa4a9b66c511cec80b378f80d90f998be1ccf16d65f000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973729', '0x2b7777eb3ffe5939d6b70883cef69250ef5a2ed62a8b378973e0c3fe84707137', '0xf27ff9223f6bf9a964737d50cb7c005f049cf0f4edfd16d24178a798c21716d6', '{"parentHash":"0xf27ff9223f6bf9a964737d50cb7c005f049cf0f4edfd16d24178a798c21716d6","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xb89ed319fb9dcaed2df7e72223683cf255f6c1e45742e6caa810938871ce53bf","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77221","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f3702","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x2b7777eb3ffe5939d6b70883cef69250ef5a2ed62a8b378973e0c3fe84707137"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xb89ed319fb9dcaed2df7e72223683cf255f6c1e45742e6caa810938871ce53bf', '0', '0', '1753167618', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('39', '0x95a20561042c77d9000779b8a978bdc87133c9b71a1034ca322b8a207afeab59', '0x0cd729ee6c62afd733fad72e68ae161b74dc4c13c16d05d1372fa730a07e46b9', '{"parentHash":"0x0cd729ee6c62afd733fad72e68ae161b74dc4c13c16d05d1372fa730a07e46b9","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x22e09326d6f526d6aba5d3f1009dd0abc8199ac551f685f6591b84101ff9c4fa","transactionsRoot":"0x8e63b1203bbe480d5eb10c6874b13e543c887e8996a0ef91d4b7dd6bf3f1bf19","receiptsRoot":"0xa83404490690fee295ff1fc03fb8b94d07fcbadfa090a4e0ca39a05bb64e0c40","logsBloom":"0x00000000000000000000000000000000000800000200100000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000400001000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000020000000020000000000000000","difficulty":"0x1","number":"0x27","gasLimit":"0x125c44c","gasUsed":"0x6fb2","timestamp":"0x68cc5fc5","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x95a20561042c77d9000779b8a978bdc87133c9b71a1034ca322b8a207afeab59","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x22e09326d6f526d6aba5d3f1009dd0abc8199ac551f685f6591b84101ff9c4fa', '1', '28594', '1758224325', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":2,"nonce":32,"txHash":"0xa70a18c08c96f71a157cbd07089d2270c648a9656f0f7da44e55ea33ee5bc695","gas":28594,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x5300000000000000000000000000000000000000","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf2fde38b0000000000000000000000001fa44677b53bc766ec6e2d11837add5110f94a49","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xad599f761743106708cab44e923b0a6298369c1336cb51ea2551808c00bfc28c","s":"0x45d8b6f79d97d20113f60827a40d30b594b1cee957d1792c9f095d9415247079"}]'); INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions - ) VALUES ('10973730', '0x56318f0a941611fc22640ea7f7d0308ab88a9e23059b5c6983bafc2402003d13', '0x2b7777eb3ffe5939d6b70883cef69250ef5a2ed62a8b378973e0c3fe84707137', '{"parentHash":"0x2b7777eb3ffe5939d6b70883cef69250ef5a2ed62a8b378973e0c3fe84707137","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xe603d341e958521d3f5df8f37b5144b3c003214c481716cffa4e8d6303d9734f","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x1","number":"0xa77222","gasLimit":"0x1312d00","gasUsed":"0x0","timestamp":"0x687f3703","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xef4207","withdrawalsRoot":null,"blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null,"requestsHash":null,"hash":"0x56318f0a941611fc22640ea7f7d0308ab88a9e23059b5c6983bafc2402003d13"}', '0x5a9bd7f5f6723ce51c03beffa310a5bf79c2cf261ddb8622cf407b41d968ef91', '0xe603d341e958521d3f5df8f37b5144b3c003214c481716cffa4e8d6303d9734f', '0', '0', '1753167619', '', '0x2f73e96335a43b678e107b2ef57c7ec0297d88d4a9986c1d6f4e31f1d11fb4f4', '[]'); + ) VALUES ('40', '0xf8c64c5acd09c0d392967f281998a893d5bd0f4bccf28b6f414d5184a640c553', '0x95a20561042c77d9000779b8a978bdc87133c9b71a1034ca322b8a207afeab59', '{"parentHash":"0x95a20561042c77d9000779b8a978bdc87133c9b71a1034ca322b8a207afeab59","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x3ce47ec407886011e368dec678455d62eb7a6e04c18ffa94b8224e86fb337e85","transactionsRoot":"0x2b048eb83354f493cbfad2fe75a11e146a259cc76b6b0715588263149c9d17f2","receiptsRoot":"0xd69128d509a68cad333ecc42f58b57fb2ddd2ad11f68ec30971aa990b559c2e2","logsBloom":"0x00000000000000000000000000000000040800000000100000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000800000000000020000000020000000000000010","difficulty":"0x1","number":"0x28","gasLimit":"0x1257adc","gasUsed":"0x6fb7","timestamp":"0x68cd0cbc","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xf8c64c5acd09c0d392967f281998a893d5bd0f4bccf28b6f414d5184a640c553","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x3ce47ec407886011e368dec678455d62eb7a6e04c18ffa94b8224e86fb337e85', '1', '28599', '1758268604', '', '0x40f9f9268612c9c1d7b82526246e5a5e41aa3d979896d32292daffa1c0a14bcb', '[{"type":2,"nonce":33,"txHash":"0x5ba2bf46a6eb9ddf5010fdaaabb85dfa8dede91f04db61a68f78c4d20a602eb6","gas":28599,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0xbe0fe7e11b10f83e2e3dc2e954798bd1a0507239","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf2fde38b0000000000000000000000001fa44677b53bc766ec6e2d11837add5110f94a49","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x49389ccec36b01cf7ff3447084d7840a8d4823b5da66a3ffe3e5798024df989c","s":"0x10779505c1944d73b57f0ee4eb8105be13782b74d6d5aff20868a20f42c6b8d1"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('41', '0x4a658e28ecfeab3ac5811b227016ffb2880a5301e8471e561aa11a4e85597e5b', '0xf8c64c5acd09c0d392967f281998a893d5bd0f4bccf28b6f414d5184a640c553', '{"parentHash":"0xf8c64c5acd09c0d392967f281998a893d5bd0f4bccf28b6f414d5184a640c553","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x41be9b75e716d9a759414b19c8e33c68d9cef866860e343c84d20fbd83b5fdf9","transactionsRoot":"0xba773c37e801ecde2b96941fdf4fb94f5d2cc21651c4868e984e049f06559890","receiptsRoot":"0x12741c97965e815ac537eb088bb9a0d22d012bc49753add79cba89649677ef78","logsBloom":"0x00000000000000000000000000000000000800000000100000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000020000000000000000001000000400000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000010000000000000000000020000000020000000000000000","difficulty":"0x1","number":"0x29","gasLimit":"0x125317f","gasUsed":"0x6f98","timestamp":"0x68cd15bf","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x4a658e28ecfeab3ac5811b227016ffb2880a5301e8471e561aa11a4e85597e5b","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x41be9b75e716d9a759414b19c8e33c68d9cef866860e343c84d20fbd83b5fdf9', '1', '28568', '1758270911', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":2,"nonce":34,"txHash":"0xacfc9934363917571a05dbca72ed4981ca6c0e0ce69d02d1b060c03840a210fc","gas":28568,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x5300000000000000000000000000000000000002","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf2fde38b0000000000000000000000001fa44677b53bc766ec6e2d11837add5110f94a49","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x2b0fc4763e9c197d9ea50f3a485ca9a8ebf317391cf0775b13295cbd82a1dd87","s":"0x6a8a368e1861613c986a208d70144616ac08c378c939e209151081f206d04521"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('42', '0x9237f95202106998a8a4467cae1b879621d219110c145495d9723506ee2baf00', '0x4a658e28ecfeab3ac5811b227016ffb2880a5301e8471e561aa11a4e85597e5b', '{"parentHash":"0x4a658e28ecfeab3ac5811b227016ffb2880a5301e8471e561aa11a4e85597e5b","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xe517a517656df5a216999396c1ec1c9609e2a66a1ee08a5a1d7ed3053afd9f2b","transactionsRoot":"0xc75de389e1c1dc6293c16b13e47a99acffec7a7bfd42174df4284f35577c0a1c","receiptsRoot":"0x3ffc30aa04dd3ce65add98fac0444bb44284d1e6e109430409b821e669625403","logsBloom":"0x00000000000000000000000000000000000800000000100000800000000000000000000000000000000000000000000400000000000040000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000010000000001000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000020000000020000000000000000","difficulty":"0x1","number":"0x2a","gasLimit":"0x124e834","gasUsed":"0x6fbb","timestamp":"0x68cd15d2","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x9237f95202106998a8a4467cae1b879621d219110c145495d9723506ee2baf00","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xe517a517656df5a216999396c1ec1c9609e2a66a1ee08a5a1d7ed3053afd9f2b', '1', '28603', '1758270930', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":2,"nonce":35,"txHash":"0x68193aab5c522fd2be5f90f31b018e4b413a092b44bf1863a9559403a0e3873b","gas":28603,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x5300000000000000000000000000000000000003","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf2fde38b0000000000000000000000001fa44677b53bc766ec6e2d11837add5110f94a49","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0xf199d224b08662e43d38257f9fc7bade68ba7e3caf9ee3c3f30dd6b25d364ca5","s":"0x70d3d39d1112be88e48a5faab4f1225a315fa7692a74357c082f09f8a482fe0a"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('43', '0xecf66f00ec7ae34d967191285b7b676b26e32cacc0b3ae4e2df0cae798af7ca0', '0x9237f95202106998a8a4467cae1b879621d219110c145495d9723506ee2baf00', '{"parentHash":"0x9237f95202106998a8a4467cae1b879621d219110c145495d9723506ee2baf00","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x3b7a918725d9b7901b94e475e86320d935881d3b965bc9fe07fd43106b2d8e59","transactionsRoot":"0x4f8a8532ec785aee5e024597ba227d041a42aa4737edffd9627652ecd161980e","receiptsRoot":"0x05026cbd7dfb3de95d536182f9c5cfe15d71bed983e82a5e9f85e996e8bd1dd5","logsBloom":"0x00000000000000000000000000000000000800000000100000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000040000001000000000020000000000000000000000000000000000000000001000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000020000000020000000000000000","difficulty":"0x1","number":"0x2b","gasLimit":"0x1249efb","gasUsed":"0x6f98","timestamp":"0x68cd15df","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xecf66f00ec7ae34d967191285b7b676b26e32cacc0b3ae4e2df0cae798af7ca0","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x3b7a918725d9b7901b94e475e86320d935881d3b965bc9fe07fd43106b2d8e59', '1', '28568', '1758270943', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":2,"nonce":36,"txHash":"0xd279d73909adfa46272f4f7ed44fc907170e10d40bcfa8cc62c52297d096a852","gas":28568,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x5300000000000000000000000000000000000005","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf2fde38b0000000000000000000000001fa44677b53bc766ec6e2d11837add5110f94a49","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0xfdc2588bffece63beb54fafce65494c4ca89f96d6a4d4835488b166bae091cc0","s":"0x2321b136b02f5b7a559983b2ff7c699768c35e84c462f36fd3b26bf138934e5d"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('44', '0x6989bf0c354c6d81ef72fb2fe987ea4e417c82635c30b67206c5c847f9be85be', '0xecf66f00ec7ae34d967191285b7b676b26e32cacc0b3ae4e2df0cae798af7ca0', '{"parentHash":"0xecf66f00ec7ae34d967191285b7b676b26e32cacc0b3ae4e2df0cae798af7ca0","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xce8cb9c067c6be4d93d5ddac32c0cdf6e1e17c8ca276c451f2a4c0637854ca83","transactionsRoot":"0xf5d3eb86c7daa5d4d7f53fed8c89cfe399b638753d3baa3ba52256ba0f572634","receiptsRoot":"0x8244cfe70bfe489e62095cde3581a79975f54f0b8dd9bb53488eb99e2c49d2f3","logsBloom":"0x00000000000000000000000000000000000800000000100000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000010000000000000000001000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000020000010020000000000000000","difficulty":"0x1","number":"0x2c","gasLimit":"0x12455d5","gasUsed":"0x8bc5","timestamp":"0x68cd15ea","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x6989bf0c354c6d81ef72fb2fe987ea4e417c82635c30b67206c5c847f9be85be","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xce8cb9c067c6be4d93d5ddac32c0cdf6e1e17c8ca276c451f2a4c0637854ca83', '1', '35781', '1758270954', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":2,"nonce":37,"txHash":"0x4c47d8a5925f65862d8d5de434b6dda43675cbddaa5d3137496393015b26b700","gas":35859,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf2fde38b0000000000000000000000001fa44677b53bc766ec6e2d11837add5110f94a49","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0xa0c7f0eb05287a193b96888e8e495d5c31e1e46ac49c563bae38b2d70e5e43df","s":"0x7d0682fc594995c62c447a565b413b2759c90d04c6da6e64adfaf5166a8a415e"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('45', '0x2e8e5551360bb2d7faba1d97dba32b198673b57fd22babd4f7976cfaa2860ce5', '0x6989bf0c354c6d81ef72fb2fe987ea4e417c82635c30b67206c5c847f9be85be', '{"parentHash":"0x6989bf0c354c6d81ef72fb2fe987ea4e417c82635c30b67206c5c847f9be85be","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xf509d08f188aaa2ad1542a5cd02715d66ef829e54598fd495407e01f1c28f29d","transactionsRoot":"0x7f7c1ffe2e7578fc77a9af2208293aafbdfff240b810b223928c1678b1b90f06","receiptsRoot":"0x14ea73d256ddcf58dce5ed93835b9ecc46ce586be8f2ede7e15b57849e9f8583","logsBloom":"0x00000000000000000000000000000000000800000000100000800000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000400000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000004000000000000000000000000000000000000000000000000000000000000020000000020000000000000000","difficulty":"0x1","number":"0x2d","gasLimit":"0x1240cc1","gasUsed":"0x8b93","timestamp":"0x68cd15f9","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x2e8e5551360bb2d7faba1d97dba32b198673b57fd22babd4f7976cfaa2860ce5","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xf509d08f188aaa2ad1542a5cd02715d66ef829e54598fd495407e01f1c28f29d', '1', '35731', '1758270969', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":2,"nonce":38,"txHash":"0x4fddaf85ae1ab29774fc984fb6c289593351331132f84e5bdf7d459a52a06d13","gas":35808,"gasPrice":"0x64","gasTipCap":"0x64","gasFeeCap":"0x64","from":"0x0000000000000000000000000000000000000000","to":"0xc2dac4851a2c29105b923286291ffa64520a234f","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf2fde38b0000000000000000000000001fa44677b53bc766ec6e2d11837add5110f94a49","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x1","r":"0x657355f1a8b4137b430ceeeb84893862f396b77851ba6fd262fa942e307360cc","s":"0x9160197f8ad95b2fa68e8e666f2d4c8832e6ef5e921bd9bd05311b7d5a2abb8"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('46', '0xde1fa92a153856b24fd0a4ef9246116c883c938a0b149099c506703613dc9082', '0x2e8e5551360bb2d7faba1d97dba32b198673b57fd22babd4f7976cfaa2860ce5', '{"parentHash":"0x2e8e5551360bb2d7faba1d97dba32b198673b57fd22babd4f7976cfaa2860ce5","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x55290968bb3cc794ba7a57afe1cf48cfeadc19a9c9d964ed83a25666da89ad3f","transactionsRoot":"0xb07eb108cea0b7f0264f6afb9cc0b0a6d537a88a9d19f4735df4ac1c51ed9ea2","receiptsRoot":"0x4edfe5834f5abecd4002893a27072d55430c130740cd59e3b3a342f6d4222535","logsBloom":"0x00000000000000000000000000000000000000000000100000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000400000000000000000020000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000004000000000000000000000000000080000000000000000200000000000000000000400000000000000000000","difficulty":"0x1","number":"0x2e","gasLimit":"0x123c3bf","gasUsed":"0x8ba2","timestamp":"0x68cd160b","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xde1fa92a153856b24fd0a4ef9246116c883c938a0b149099c506703613dc9082","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x55290968bb3cc794ba7a57afe1cf48cfeadc19a9c9d964ed83a25666da89ad3f', '1', '35746', '1758270987', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":0,"nonce":0,"txHash":"0x02d3124242f6a13ab09289e1dfcc71b3de5ff87a4f167d60bd902a03be0bae47","gas":100000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x0000000000000000000000000000000000000000","to":"0xf262ade5841308d4379dc7ffd46a2d13f3d96bfe","chainId":"0x13e7f8ad5","value":"0x0","data":"0xf2fde38b0000000000000000000000001fa44677b53bc766ec6e2d11837add5110f94a49","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x27cff15cd","r":"0x9bf703ec40634f332a1d87f07a4792b58c08f1aa5e0aca8c713897dbc233fafd","s":"0x7eb841618919369ff1ee1bd235bf820cbe705a57aa8db5c748bb960faa6d82b5"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('47', '0x78788035f6a7691a58fcf65fb1e935333480346d686f17b7a34ee9ee3067d38b', '0xde1fa92a153856b24fd0a4ef9246116c883c938a0b149099c506703613dc9082', '{"parentHash":"0xde1fa92a153856b24fd0a4ef9246116c883c938a0b149099c506703613dc9082","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x2a14beb81bbf81a90416d8b01211fc7ea7f6c751ab6becc95871668550027c4a","transactionsRoot":"0xcd2387ddf64bbe95306ad5123224b4c9979d7b3b0bd789362207daddc8f4df99","receiptsRoot":"0xcbc08f0c4749f5fd1e8583e9217fe8679d19c67e758ad6b3fed3db8b1aa7e6d3","logsBloom":"0x00000800000000000000000000000000000000000000000000000000000001000000000000000000000200000000000000000000000000040040000000000400000000000000000000000008000000000000000001000000000800000002000000000000030000400000000010000800000010000100000000000018000000000000000000000000000040000000400020000000000000000000020000000000000000000080000000800000000000000000000080000000000000000000000000000002000000000000000000000004000000000000000000000000000020200000000000000040000000000020000000000000040010000800000008000000","difficulty":"0x1","number":"0x2f","gasLimit":"0x1237ad0","gasUsed":"0x21b8f","timestamp":"0x68d6da46","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x78788035f6a7691a58fcf65fb1e935333480346d686f17b7a34ee9ee3067d38b","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x2a14beb81bbf81a90416d8b01211fc7ea7f6c751ab6becc95871668550027c4a', '1', '138127', '1758911046', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":126,"nonce":7,"txHash":"0xced0773b77b04d255aaf81a1bb5d18354311c61924c59adf4331baaf03eedcc0","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000750462f1ac4686ae83e5bbbc218fdcd34e39c71ce0e7763bff17d251563de0fa341d89ea8186f96018367231f362657e4df16c09fdc9714e2ad96d00f389ff823c27649030c9fa7e150d1e247ab3c1a0df1fef3309d48772b564da3a34d7eb841087d1a6eecea28f2a16cb2fa6e4c19f825be1cfe2e0000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('48', '0x0e68988dc98115157317a8f24cbf932e5f1e97af9b870a48b21dc80079499f20', '0x78788035f6a7691a58fcf65fb1e935333480346d686f17b7a34ee9ee3067d38b', '{"parentHash":"0x78788035f6a7691a58fcf65fb1e935333480346d686f17b7a34ee9ee3067d38b","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0x0af79fa274191420bc26fbfdc90dfd1fc8c5e51135e6e24a1520fe288fa50dc8","transactionsRoot":"0x7074742670a4b86baec6bb28d731aec9cf7e6d3407549bec0b4b6575f539a842","receiptsRoot":"0x3a15e7239bec5e41de820bffa7df92fa2f7627aba51b3f9a230a9c786c8d6b05","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000040040000000000400000000000000000000400008000000000000000001000000000800000000008000000000030000400000000010000800000010000100000000000018000000000000000000000000000040000000400020000000000000000000020000000000000000000080000000800000000000000000000000000000000000000000000000000002000000000000000000000004000000000000000000000000000020200000000000000040000000000000000000000000040010000080000008000000","difficulty":"0x1","number":"0x30","gasLimit":"0x12331f3","gasUsed":"0x21b8f","timestamp":"0x68d6da5d","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0x0e68988dc98115157317a8f24cbf932e5f1e97af9b870a48b21dc80079499f20","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0af79fa274191420bc26fbfdc90dfd1fc8c5e51135e6e24a1520fe288fa50dc8', '1', '138127', '1758911069', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":126,"nonce":8,"txHash":"0x05786b6721d901ec476b53d01ba20b4bb13647ad2b7539c4ea6491ed70943609","gas":1000000,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x28d195e86e4dabd19b645cef0f04ca583c17932a","to":"0x502e605862276fa0521ca7390918e42dc78f3cb3","chainId":"0x0","value":"0x0","data":"0x8ef1332e00000000000000000000000025a5f0f1bf1fca96c2cd55e5c0855f3b92a8b1c7000000000000000000000000c2dac4851a2c29105b923286291ffa64520a234f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000344f839517f0000000000000000000000005300000000000000000000000000000000000004000000000000000000000000389cae009b61d3a94ceff927dffdd812bb61ccda000000000000000000000000253169d91a93faf675de1b7ab382330196a7059200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000009184e72a0000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000007504a42dac8783c4d70556722c424dc7457ade4ffd143e12e4fd887f38ede2355d47a79ea36a5e015d9c17935f329c213abc83b8227c779f7d767fff30be4a0c90ae76767de646ee33b2ec0900ec4a44f6a0057c3a672b70997e940da6cfc5caa136ef103d0ed189cf1fd7308ae8c8d6c96086f64a6e000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000045745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d577261707065642045746865720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","isCreate":false,"accessList":null,"authorizationList":null,"v":"0x0","r":"0x0","s":"0x0"}]'); +INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, + state_root, tx_num, gas_used, block_timestamp, row_consumption, + chunk_hash, transactions + ) VALUES ('49', '0xba8a553a3741e28ac257814cad6b74f2b6301454aa0e149b5a6ea9a82be29a33', '0x0e68988dc98115157317a8f24cbf932e5f1e97af9b870a48b21dc80079499f20', '{"parentHash":"0x0e68988dc98115157317a8f24cbf932e5f1e97af9b870a48b21dc80079499f20","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xdb47f64d6d2e50d9af851ca8d74514c0a80450aeb8a8640a89bca972cdc2a9c5","transactionsRoot":"0xab23d2c6f547c0dbe7988fb8240f2302ce9bf88c029de6d5a1c502e4c9e9f660","receiptsRoot":"0x7f016b6aef5cefb83038df302e960f7ab6f0b8f1eed87bb5567d012097daa3bc","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000010000000000000000000000000000100000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000002000000000010000000000000000000000000000000000000000000200000000000000040000000000000000000000000040000000000000000000000","difficulty":"0x1","number":"0x31","gasLimit":"0x122e928","gasUsed":"0xd35a","timestamp":"0x68d6da5d","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x0","withdrawalsRoot":null,"hash":"0xba8a553a3741e28ac257814cad6b74f2b6301454aa0e149b5a6ea9a82be29a33","blobGasUsed":null,"excessBlobGas":null,"parentBeaconBlockRoot":null}', '0x0000000000000000000000000000000000000000000000000000000000000000', '0xdb47f64d6d2e50d9af851ca8d74514c0a80450aeb8a8640a89bca972cdc2a9c5', '1', '54106', '1758911069', '', '0x9ee6b9f39fbf271a5bba3d11954f1e98bdf6bfc6a8bbc152206f0d0b0fbfb8b4', '[{"type":2,"nonce":0,"txHash":"0x1b923444c0ef1f7bc15e496e1d218afcbde91a5639ce16f2e7e4ca7b20998d94","gas":54543,"gasPrice":"0x0","gasTipCap":"0x0","gasFeeCap":"0x0","from":"0x0000000000000000000000000000000000000000","to":"0x389cae009b61d3a94ceff927dffdd812bb61ccda","chainId":"0x13e7f8ad5","value":"0x0","data":"0xa9059cbb000000000000000000000000faeb44e16c303e1cb27c0938676f010de16058c8000000000000000000000000000000000000000000000000000000174876e800","isCreate":false,"accessList":[],"authorizationList":null,"v":"0x0","r":"0x7c422e502b453e925867e971f39ab29539d6e6a263bf19340026dd9931ce5254","s":"0x4eca62bdb88c42c770a1961e9c9373af091fe3fc69f5bb3dd58c233ba7ad8a10"}]'); -- +goose StatementEnd -- +goose Down -- +goose StatementBegin DELETE FROM l2_block; --- +goose StatementEnd \ No newline at end of file +-- +goose StatementEnd diff --git a/tests/prover-e2e/Makefile b/tests/prover-e2e/Makefile index b5ffe4cdf3..dd208b7d68 100644 --- a/tests/prover-e2e/Makefile +++ b/tests/prover-e2e/Makefile @@ -1,7 +1,8 @@ .PHONY: clean setup_db test_tool all check_vars GOOSE_CMD?=goose - +BEGIN_BLOCK?=35 +END_BLOCK?=49 all: setup_db test_tool import_data diff --git a/tests/prover-e2e/config.json b/tests/prover-e2e/config.json index 731e471e58..69e8a8e9d8 100644 --- a/tests/prover-e2e/config.json +++ b/tests/prover-e2e/config.json @@ -4,5 +4,6 @@ "dsn": "postgres://dev:dev@localhost:5432/scroll?sslmode=disable", "maxOpenNum": 5, "maxIdleNum": 1 - } + }, + "validium_mode": true } \ No newline at end of file diff --git a/tests/prover-e2e/prepare/dump_block_records.sql b/tests/prover-e2e/prepare/dump_block_records.sql index 40477e762a..eb6d036efe 100644 --- a/tests/prover-e2e/prepare/dump_block_records.sql +++ b/tests/prover-e2e/prepare/dump_block_records.sql @@ -1,7 +1,12 @@ -- Create a file with INSERT statements for the specific records -\o block_export.sql +\o 00100_import_blocks.sql \t on \a +-- Write header comment +SELECT '-- +goose Up'; +SELECT '-- +goose StatementBegin'; +SELECT ''; + SELECT 'INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, state_root, tx_num, gas_used, block_timestamp, row_consumption, chunk_hash, transactions @@ -20,8 +25,17 @@ SELECT 'INSERT INTO l2_block (number, hash, parent_hash, header, withdraw_root, quote_literal(transactions) || ');' FROM l2_block -WHERE number >= 10973700 and number <= 10973730 +WHERE number >= 1 and number <= 49 ORDER BY number ASC; + +-- Write footer +SELECT ''; +SELECT '-- +goose StatementEnd'; +SELECT '-- +goose Down'; +SELECT '-- +goose StatementBegin'; +SELECT 'DELETE FROM l2_block;'; +SELECT '-- +goose StatementEnd'; + \t off \a \o \ No newline at end of file diff --git a/tests/prover-e2e/prepare/dump_chunk_records.sql b/tests/prover-e2e/prepare/dump_chunk_records.sql new file mode 100644 index 0000000000..faeed80a2b --- /dev/null +++ b/tests/prover-e2e/prepare/dump_chunk_records.sql @@ -0,0 +1,56 @@ +-- Create a file with INSERT statements for the specific records +\o 00102_import_chunks.sql +\t on +\a +-- Write header comment +SELECT '-- +goose Up'; +SELECT '-- +goose StatementBegin'; +SELECT ''; + +SELECT + 'INSERT INTO chunk (' || + 'index, hash, start_block_number, start_block_hash, end_block_number, end_block_hash, ' || + 'start_block_time, total_l1_messages_popped_before, total_l1_messages_popped_in_chunk, ' || + 'prev_l1_message_queue_hash, post_l1_message_queue_hash, parent_chunk_hash, state_root, ' || + 'parent_chunk_state_root, withdraw_root, codec_version, enable_compress, ' || + 'total_l2_tx_gas, total_l2_tx_num, total_l1_commit_calldata_size, total_l1_commit_gas, ' || + 'created_at, updated_at' || + ') VALUES (' || + quote_literal(index) || ', ' || + quote_literal(hash) || ', ' || + quote_literal(start_block_number) || ', ' || + quote_literal(start_block_hash) || ', ' || + quote_literal(end_block_number) || ', ' || + quote_literal(end_block_hash) || ', ' || + quote_literal(start_block_time) || ', ' || + quote_literal(total_l1_messages_popped_before) || ', ' || + quote_literal(total_l1_messages_popped_in_chunk) || ', ' || + quote_literal(prev_l1_message_queue_hash) || ', ' || + quote_literal(post_l1_message_queue_hash) || ', ' || + quote_literal(parent_chunk_hash) || ', ' || + quote_literal(state_root) || ', ' || + quote_literal(parent_chunk_state_root) || ', ' || + quote_literal(withdraw_root) || ', ' || + quote_literal(codec_version) || ', ' || + quote_literal(enable_compress) || ', ' || + quote_literal(total_l2_tx_gas) || ', ' || + quote_literal(total_l2_tx_num) || ', ' || + quote_literal(total_l1_commit_calldata_size) || ', ' || + quote_literal(total_l1_commit_gas) || ', ' || + quote_literal(created_at) || ', ' || + quote_literal(updated_at) || + ');' +FROM chunk +ORDER BY index ASC; + +-- Write footer +SELECT ''; +SELECT '-- +goose StatementEnd'; +SELECT '-- +goose Down'; +SELECT '-- +goose StatementBegin'; +SELECT 'DELETE FROM chunk;'; +SELECT '-- +goose StatementEnd'; + +\t off +\a +\o \ No newline at end of file