From e69c4b62f1593d3b924be6b33e972b2f6a565ed7 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:26:55 +0000 Subject: [PATCH 01/11] Reference apps (8 Oct 2026): the light wallet (/light), the payment receipt (/receipt) and the Sepolia state oracle page (/oracle), each on Devnet 3; site/light/core.js verifies certificate, header path, coinbase merkle inclusion, segment record (aggregator BLS) and the MPT account proof in the browser; the read service tools/reference-apps/light-service (behind rpc.devnet.igneum.network/light); the one-file offline receipt verifier (site/receipt/verify-receipt.js); /api/checkpoint?source=dn3; the negative cases in verify.test.mjs and /light/test; nav routes Co-Authored-By: Claude Fable 5.1 --- site/404.html | 6 + site/address.html | 6 + site/api/checkpoint.mjs | 19 +- site/app.html | 6 + site/bench.html | 28 +- site/block.html | 6 + site/build.mjs | 4 +- site/claims.html | 6 + site/dev-fee.html | 6 + site/download.html | 14 +- site/evidence.html | 6 + site/explorer.html | 6 + site/faucet.html | 6 + site/income.html | 6 + site/index.html | 6 + site/journey.html | 16 +- site/journey.json | 22 +- site/ledger.html | 12 +- site/light.html | 344 ++ site/light/app.js | 116 + site/light/core.js | 378 ++ site/light/test.html | 85 + site/litepaper.html | 6 + site/live.html | 6 + site/metamask.html | 6 + site/miner.html | 12 +- site/miners.html | 6 + site/oracle.html | 342 ++ site/partials/nav.html | 6 + site/provenance.html | 6 + site/randomx.html | 6 + site/receipt.html | 345 ++ site/receipt/verify-receipt.js | 5322 +++++++++++++++++ site/scenes.html | 6 + site/sitemap.xml | 3 + site/wallet.html | 6 + tools/ci/site-nav-check.mjs | 2 +- .../fixtures/dn3-checkpoint.json | 1 + .../reference-apps/fixtures/dn3-receipt.json | 1 + tools/reference-apps/light-service/.gitignore | 1 + .../light-service/package-lock.json | 43 + .../reference-apps/light-service/package.json | 8 + tools/reference-apps/light-service/serve.mjs | 265 + .../light-service/verify.test.mjs | 64 + .../oracle/contracts/Blake2b.sol | 85 + .../contracts/IIgneumCertificateVerifier.sol | 19 + tools/reference-apps/oracle/contracts/Mpt.sol | 170 + .../contracts/StubCertificateVerifier.sol | 56 + tools/reference-apps/receipt/bundle.sh | 18 + .../receipt/verify-receipt.src.mjs | 33 + 50 files changed, 7912 insertions(+), 36 deletions(-) create mode 100644 site/light.html create mode 100644 site/light/app.js create mode 100644 site/light/core.js create mode 100644 site/light/test.html create mode 100644 site/oracle.html create mode 100644 site/receipt.html create mode 100644 site/receipt/verify-receipt.js create mode 100644 tools/reference-apps/fixtures/dn3-checkpoint.json create mode 100644 tools/reference-apps/fixtures/dn3-receipt.json create mode 100644 tools/reference-apps/light-service/.gitignore create mode 100644 tools/reference-apps/light-service/package-lock.json create mode 100644 tools/reference-apps/light-service/package.json create mode 100644 tools/reference-apps/light-service/serve.mjs create mode 100644 tools/reference-apps/light-service/verify.test.mjs create mode 100644 tools/reference-apps/oracle/contracts/Blake2b.sol create mode 100644 tools/reference-apps/oracle/contracts/IIgneumCertificateVerifier.sol create mode 100644 tools/reference-apps/oracle/contracts/Mpt.sol create mode 100644 tools/reference-apps/oracle/contracts/StubCertificateVerifier.sol create mode 100644 tools/reference-apps/receipt/bundle.sh create mode 100644 tools/reference-apps/receipt/verify-receipt.src.mjs diff --git a/site/404.html b/site/404.html index 4020c5c81..5cd99d47d 100644 --- a/site/404.html +++ b/site/404.html @@ -88,6 +88,9 @@ main{flex:1} The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/address.html b/site/address.html index 1b21eab43..de5bad59f 100644 --- a/site/address.html +++ b/site/address.html @@ -136,6 +136,9 @@ main{padding-bottom:100px}.card{background:var(--row);border:1px solid var(--lin The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/api/checkpoint.mjs b/site/api/checkpoint.mjs index fc94a9920..8d5509075 100644 --- a/site/api/checkpoint.mjs +++ b/site/api/checkpoint.mjs @@ -6,6 +6,7 @@ // // ?source=live the live devnet (default; falls back to the test network while the live chain has no lock yet) // ?source=test tonight's finality test network (igneum-devnet-7) +// ?source=dn3 Devnet 3 (igneum-devnet-3, the dn3_ tables the Devnet 3 observer writes; the reference apps read it) // // Zero dependencies: Neon's HTTP SQL endpoint over Node's built-in fetch, like live.mjs. @@ -72,6 +73,16 @@ function shape(row, source) { }; } +/** The latest certified checkpoint of `want` ('live', 'test' or 'dn3') through `sql`, shaped for the verifier, or null. */ +export async function readCheckpoint(sql, want = 'live') { + let row = null, source = null; + if (want === 'dn3') { row = await latest(sql, 'dn3_live_certificates'); if (row) source = 'dn3'; } + if (!row && want !== 'test' && want !== 'dn3') { row = await latest(sql, 'live_certificates'); if (row) source = 'live'; } + if (!row && want !== 'dn3') { row = await latest(sql, 'fintest_live_certificates'); if (row) source = 'test'; } + return row ? shape(row, source) : null; +} +export { neon }; + export default async function handler(req, res) { res.setHeader('Cache-Control', 'public, max-age=5'); res.setHeader('Access-Control-Allow-Origin', '*'); @@ -82,14 +93,12 @@ export default async function handler(req, res) { try { const sql = neon(); const want = String((req.query && req.query.source) || 'live'); - let row = null, source = null; - if (want !== 'test') { row = await latest(sql, 'live_certificates'); if (row) source = 'live'; } - if (!row) { row = await latest(sql, 'fintest_live_certificates'); if (row) source = 'test'; } - if (!row) { + const cp = await readCheckpoint(sql, want); + if (!cp) { res.setHeader('Cache-Control', 'no-store'); return res.status(404).json({ ok: false, error: 'no certified checkpoint stored yet' }); } - return res.status(200).json({ ok: true, now: new Date().toISOString(), ...shape(row, source) }); + return res.status(200).json({ ok: true, now: new Date().toISOString(), ...cp }); } catch (e) { res.setHeader('Cache-Control', 'no-store'); return res.status(500).json({ ok: false, error: String(e.message || e) }); diff --git a/site/app.html b/site/app.html index 143257d2b..e589a469a 100644 --- a/site/app.html +++ b/site/app.html @@ -110,6 +110,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/bench.html b/site/bench.html index 3559f6c31..2b5dd2ee5 100644 --- a/site/bench.html +++ b/site/bench.html @@ -115,6 +115,9 @@ table{min-width:560px} The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. @@ -213,7 +219,7 @@ table{min-width:560px}
-
96 entries, newest at the bottom
+
98 entries, newest at the bottom

Engineering log

Every measurement the project has made, newest at the bottom, written by the people and agents who ran it, with the commands and hardware. Prototype numbers are not mining numbers and say so.

@@ -221,7 +227,7 @@ table{min-width:560px}
- +

Igneum bench log

Append-only. Every number here was measured on the machine named, on the date given.

@@ -962,7 +968,23 @@ table{min-width:560px}

Rented Vast instance 54613164, Intel Core i7-9700K at 4,170 MHz as read, one core, the box-built Linux igneum-pow (sha256 6d286783...), bench --seed igneum-genesis --day 2026-10-03 --warps 50. Ms per warp, cold max / average of 50: v2 1.582 / 1.280; mx8 5.394 / 5.267; mx8+sh256x27 (class v4) 6.334 / 6.006; dr368 5.540 / 5.426; dr736 10.290 / 10.042 (fails the 10 ms gate, the known-fail). Cache fill 276 ms. Log docs/analysis/attack-pass/o114-i7-9700K-2026-10-07.log; record docs/analysis/attack-pass-2026-10.md row F6. Class v4 passes a real 2019-class core with 3.7 ms to spare; the half-core proxy (8.23 ms) stays the standing pessimistic rule for the ladder's ceiling.

F6: the verifier's worst case over 10^5 class v4 programs (attack pass, 7 October 2026, 13:5x UTC)

-

igneum-build-1, cores 40 (one-core proxy) and 88 (the half-core proxy, both SMT siblings busy) under the per-core lease, core 40 at a median 3,799.9 MHz. 100,000 programs ranked by exact op counts; 50,000 timed cold on core 40 (min / median / p99 / max 4.610 / 4.948 / 5.606 / 6.194 ms per warp); the worst 200 re-timed at 10 cold reps on both proxies and the worst 1,000 on the half-core at 2 reps, the worst 10 at 20: worst half-core cold max 8.708 ms (attack-f6/87142), then 8.629 (attack-f6/88521), 8.414 (attack-f6/15781); the genesis program 8.624. Gate 10 ms: PASS by 1.29 ms. Record docs/analysis/attack-pass/f6-verifier.md; logs /srv/builds/igneum-wt-attack/target-attack-f6/phase2b.log, phase2c.log.

+

igneum-build-1, cores 40 (one-core proxy) and 88 (the half-core proxy, both SMT siblings busy) under the per-core lease, core 40 at a median 3,799.9 MHz. 100,000 programs ranked by exact op counts; 50,000 timed cold on core 40 (min / median / p99 / max 4.610 / 4.948 / 5.606 / 6.194 ms per warp); the worst 200 re-timed at 10 cold reps on both proxies and the worst 1,000 on the half-core at 2 reps, the worst 10 at 20: worst half-core cold max 8.708 ms (attack-f6/87142), then 8.629 (attack-f6/88521), 8.414 (attack-f6/15781); the genesis program 8.624. Gate 10 ms: PASS by 1.29 ms. Record docs/analysis/attack-pass/f6-verifier.md; logs /srv/builds/igneum-wt-attack/target-attack-f6/phase2b.log, phase2c.log.

+
+

7 to 8 October 2026, the class v4 efficiency passes: the core clock lock on the RTX 5090 and the RTX 5080 (branch ca3-v4-amend, the hash lane)

+

Main's question of 7 October ("profitable mining is all about efficiency, is there a solution?"): the latency-shadow work hides in the memory wait, so the core clock, and the voltage along the driver's V/F curve, can drop until the work just fits the wait, with no rate loss and the class v4 premium coming back. Measured on the three-card Windows rig (RTX 5090, RTX 4070, RX 9070 XT) (machine ae432dc7, driver 617.14, app 0.3.20) with tools/ca3-v4-amend/pc1-v4-efficiency.ps1: the installed CUDA worker's --bench on the class v4 pack v4-devnet-epoch0 (id a785001687d8688a) and the class v3 control mx8-devnet-epoch0 of the same seed (the two differ by the shadow block alone), the card alone through the runner's card switch, 60 s per step (the batch count sized from a 5-batch probe), the clock lock through the installed app's Power Helper task (nvidia-smi -lgc 0,<MHz>, a cap; no prompt), nvidia-smi at 1 Hz with the mean from 8 s in (power.draw, power.draw.instant and power.draw.average agree within 0.2 W on every row on 617.14), the 2^24 fingerprint at base 0 checked against the Apple M5 Max on every step (every step matched), the clocks reset and read back at the end. Jobs: run-ca3-pc1-v4-eff-5090-20261007-b (18:40 to 19:16 UTC, 2,850 to 1,400 MHz), run-ca3-pc1-v4-eff-5090-floor-20261007 (20:21 to 20:41 UTC, 1,400 to 1,100; the steps below were lost to the helper's sequence rule, see the fud ledger), run-ca3-pc1-v4-eff-5080-20261007-d (8 October, 00:45 to 01:54 UTC, unlocked to 1,000 MHz plus 900 on v4; the 75 min budget ended it there). The memory clock stayed at the driver's default throughout (13,801 MHz on the 5090, 14,801 on the 5080).

+

RTX 5090 (lock MHz: class v4 MH/s / W / MH/W ; class v3 MH/s / W / MH/W; the SM clock read):

+
lockv4 MH/sv4 Wv4 MH/Wv3 MH/sv3 Wv3 MH/Wsm MHz
unlocked136.84475.50.288136.59330.20.4142,838 / 2,850
2850136.89478.90.286136.61330.30.4142,833 / 2,842
2781136.87457.60.299136.62317.90.4302,767
2700136.85443.20.309136.54312.40.4372,692
2550136.77402.90.339136.43288.50.4732,542
2472136.62391.20.349136.38276.00.4942,460
2400136.67382.80.357136.29269.80.5052,392
2250136.43366.50.372136.07255.00.5342,242
2163136.33361.30.377136.11252.40.5392,152
2100136.25359.30.379136.04251.40.5412,092
1950135.99350.10.388135.78244.60.5551,942
1854135.85341.40.398135.56239.60.5661,845
1800135.75337.10.403135.48237.40.5711,792
1650135.37328.10.413135.10235.10.5751,642
1500135.22320.50.422134.90232.10.5811,492
1400134.98316.30.427134.68228.00.5911,387
1300134.76312.50.431134.62223.30.6031,290
1200133.80305.10.439129.54215.70.6011,192
1100122.43287.30.426118.70209.40.5671,087
+

Reading (5090): the rate is memory-bound on the whole grid and holds within 1.5 percent of unlocked down to 1,300 MHz on both classes; it falls past 5 percent at 1,200 on class v3 and past 10 percent at 1,100 on class v4, so the knee is 1,300 MHz (42 percent of the 3,090 MHz maximum). Best MH per watt: class v4 at 1,200 MHz (133.80 MH/s at 305.1 W, 0.439 MH/W; 168.6 W recovered for 2.2 percent rate), class v3 at 1,300 MHz (134.62 at 223.3 W, 0.603; 106.6 W for 1.4 percent). The class v4 premium over class v3 is 145.3 W at the unlocked clock and 81.8 W at the best points: 63 W of the premium is the clock and comes back with the lock, 82 W is the shadow's ALU work and stays. The throttle reason reads the power governor (0x400) from unlocked to 2,163 and the clock lock itself (0x4) below. Consequence per tier: a 5090 owner on class v4 locked at 1,200 to 1,300 MHz draws 305 to 313 W instead of 474 for 1.5 to 2.2 percent less rate (MH per watt up 49 to 52 percent).

+

RTX 5080 (the same shape; 8 October 2026, 00:45 to 01:54 UTC):

+
lockv4 MH/sv4 Wv4 MH/Wv3 MH/sv3 Wv3 MH/Wsm MHz
unlocked71.41253.10.28271.28169.70.4202,963 / 2,977
285071.41229.50.31171.29155.30.4592,842
278171.41223.90.31971.29150.10.4752,767
270071.41209.60.34171.29149.20.4782,692
255071.41193.00.37071.29134.40.5312,542
247271.41182.20.39271.28133.70.5332,460
240071.41176.00.40671.29128.70.5542,392
225071.41165.60.43171.28117.30.6082,242
216371.39161.50.44271.28114.10.6252,147 / 2,152
210071.38157.70.45371.28112.30.6352,085
195071.37154.00.46371.26111.60.6391,942
185471.37153.00.46771.25111.40.6401,845
180071.35150.30.47571.24113.40.6281,777 / 1,785
165071.33151.40.47171.22109.70.6491,635 / 1,642
150071.30149.20.47871.19110.60.6441,492
140071.27149.60.47671.16107.00.6651,387
130071.24147.90.48271.14107.70.6611,275 / 1,282
120071.20149.40.47771.12104.40.6811,192
110071.20146.60.48671.11105.60.6731,087
100071.19149.00.47871.11103.70.686990
90067.66137.80.491not taken (the budget)893
+

Reading (5080): the rate holds within 0.3 percent of unlocked down to 1,000 MHz on both classes and falls 5.2 percent at 900 MHz on class v4, so the knee is between 1,000 and 900 MHz, a third of the 2,963 MHz boost and lower than the 5090's (the 5080's 84 SMs have more compute headroom per unit of its memory bandwidth, so the memory wait hides the shadow down to a lower clock). Best MH per watt within the 1 percent rate tolerance: class v4 at 1,100 MHz (71.20 MH/s at 146.6 W, 0.486 MH/W; 106.5 W recovered for 0.29 percent rate), class v3 at 1,000 MHz (71.11 at 103.7 W, 0.686; 66.0 W for 0.25 percent). The class v4 premium is 83.4 W unlocked and 41 W at the best points (146.6 W against 105.6 W at 1,100). The draw floors from 1,500 MHz down (about 147 W on v4, 104 W on v3) with the power governor as the only throttle reason say the clock lever is spent by 1,500 MHz on this card. Consequence per tier: a 5080 owner on class v4 locked near 1,100 MHz pays 147 W instead of 253 for 0.3 percent less rate (MH per watt up 72 percent).

+

What the lever is and is not: nvidia-smi exposes no voltage offset (that is NVAPI's); the clock lock walks the driver's V/F curve, which is where the watts come from; the Apple M5 Max has no lever (no clock cap on Apple silicon); AMD has the ADLX tune line through igneum-gpu-telemetry or nothing. The knob goes into Ember Tune for 0.3.24 (src/ember.rs: the clock ladder continues below 45 percent of the maximum in 100 MHz steps to a 20 percent floor, the search stops at the first row more than the tolerance under the cap point's rate or on a faulted row, the best MH per watt within tolerance is the point, the fingerprint checked on every step, the result stored per card as the lock_* fields). The 5080 stock rows against the rented 5080 of 7 October (71.16 MH/s at 145 W on driver 580): the rate agrees to 0.4 percent, the watts do not (253 W here); the three-card Windows rig's three power fields agree, so the difference sits with the rented card's sampler or its cap, the fleet lane's re-measure owed.

+
+

8 October 2026, the hot-table packs on the RTX 5090: ld.global.cs against the plain load, unlocked and at the 1,300 MHz lock (branch ca3-v4-amend, the hash lane, job run-ca4-pc1-hot-ldcs-5090-20261008b)

+

the three-card Windows rig (RTX 5090, RTX 4070, RX 9070 XT), RTX 5090 (170 SMs, driver 13.4, NVRTC 12.8), igneum-worker-cuda 1.0 (4 October 2026). The eight 5 October hot-table packs (proto-cuda/packs-ca2-hot) and the mx8-genesis control (proto-cuda/packs-ca2-mixer), each run twice per state: variant base (plain loads) and variant ldcs (ld.global.cs on the hot-table loads). 16,777,216 nonces per run, nvidia-smi 1 Hz sampler (power.draw; instant and average agreed within 0.5 W on every row), 19 to 30 samples per row. Every one of the 36 rows PASS on its pinned fingerprint. Unlocked 06:34 to 06:45 UTC at 2,865 MHz; lock1300 06:45 to 06:56 UTC at 1,290 MHz through the helper; clocks reset (rgc) at the end. The 5090 was switched off in the app by the runner for the job and back on after.

+
packunlocked base MH/sunlocked base Wunlocked ldcs MH/slock1300 base MH/slock1300 base Wlock1300 base MH/Wlock1300 ldcs MH/slock1300 ldcs MH/W
mx8-genesis (control)137.7312.0137.7127.3211.40.602127.30.603
hot32k4147.4318.9147.4144.4215.30.671144.40.672
hot32k4a118.9320.1118.9116.6214.90.542116.60.542
hot64k2137.7318.1137.7135.0214.30.630135.00.630
hot64k4141.0318.8141.0138.2214.40.645138.20.644
hot64k4a115.7319.6115.8113.4214.80.528113.40.528
hot64k8164.2326.4164.2160.9219.20.734160.80.733
hot96k4139.0318.3139.0136.2214.50.635136.30.635
hot96k4a114.6318.8114.5112.3214.80.523112.30.523
+

What the rows say.

+
  1. The ldcs variant changes nothing: every pack reads the same rate and the same watts as its base run within 0.1 MH/s and 1 W, both states. The streaming hint on the hot-table loads is dead as a lever; the table's cache behaviour is already what the hardware gives. No further ldcs rows are owed.
  2. The hot packs hold their rate under the lock far better than mx8: the 1,300 MHz lock costs mx8 7.5 percent of rate (137.7 to 127.3) and costs the hot packs 2 percent (hot32k4 147.4 to 144.4, hot64k8 164.2 to 160.9). The hot packs are bound by the table's latency, not by the core; the lock takes a third of the watts off every pack (319 to 215 W) and the hot packs pay almost no rate for it.
  3. Per watt at the lock the hot family runs 0.52 to 0.73 MH/W against the control's 0.60: hot64k8 is 22 percent cheaper per hash than mx8 on this card, hot32k4 11 percent cheaper, the "a" packs 10 to 13 percent dearer. Whether a cheaper hash on the GPU is a gain or a loss for resistance is the research lane's call: it is a gain only if the saving comes from the memory path an ASIC would have to buy too.
  4. The 5090's locked class v4 reading from the efficiency pass (1,300 MHz: 134.6 MH/s at 223 W, 0.60 MH/W) sits level with the mx8 control here (0.602), so the two passes agree on the control and the hot rows are comparable to the v4 grid.

Generated from the repository at build time. Times are UTC. Machine names are model names.

diff --git a/site/block.html b/site/block.html index 1b1d4e62e..f52cd0ca2 100644 --- a/site/block.html +++ b/site/block.html @@ -136,6 +136,9 @@ main{padding-bottom:100px}.card{background:var(--row);border:1px solid var(--lin The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/build.mjs b/site/build.mjs index ccd3f4571..325649bb5 100644 --- a/site/build.mjs +++ b/site/build.mjs @@ -393,7 +393,9 @@ const PAGES = [['index.html', ''], ['download.html', 'download'], ['income.html' // the DAG explorer (5 Oct 2026): /explorer, /block/ and /address/ (vercel.json rewrites the last two) ['explorer.html', 'live'], ['block.html', 'live'], ['address.html', 'live'], // the scenes lab (6 Oct 2026): three animated views of the live feed, unlinked, noindex - ['scenes.html', '']]; + ['scenes.html', ''], + // the reference apps (8 Oct 2026): the light wallet, the payment receipt, the Sepolia state oracle + ['light.html', 'light'], ['receipt.html', 'receipt'], ['oracle.html', 'oracle']]; for (const [file, active] of PAGES) { const p = join(here, file); if (!existsSync(p)) throw new Error(`missing page ${file}`); diff --git a/site/claims.html b/site/claims.html index f86f4de02..90bc3d39b 100644 --- a/site/claims.html +++ b/site/claims.html @@ -114,6 +114,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/dev-fee.html b/site/dev-fee.html index dc749c60b..4f697dd65 100644 --- a/site/dev-fee.html +++ b/site/dev-fee.html @@ -114,6 +114,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/download.html b/site/download.html index 7c6872ad9..677d6f000 100644 --- a/site/download.html +++ b/site/download.html @@ -104,6 +104,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. @@ -235,16 +241,16 @@

Ember for Linux

one tarball, the miner and the node inside

Unpack it, run igneum with your payout address. The same signed manifest as the desktop apps. NVIDIA through CUDA, AMD through OpenCL.

- Download the tarball v0.3.23 · 28.8 MB -
sha256 0d716ed92560b6b2eccb63ca1bd7a4d9eb64c9b334e8370e1263f0344cee294e
+ Download the tarball v0.3.22 · 28.8 MB +
sha256 8ad6dcef9edc57dcd33e8d5a97cbef5cdda0e384a6e56d3f62f8903029c4c764

Ember on HiveOS

for the rig people, the same tarball
-
Flight Sheet. Miner: Custom. Installation URL: https://dl.igneum.network/dl/public/igneum-hive-0.3.23.tar.gz. Miner name igneum, wallet and worker 0x<your 40-hex payout address>.%WORKER_NAME%. Hive itself is untested on our side: tell us what breaks.
- Download the tarball v0.3.23 · 28.8 MB +
Flight Sheet. Miner: Custom. Installation URL: https://dl.igneum.network/dl/public/igneum-hive-0.3.22.tar.gz. Miner name igneum, wallet and worker 0x<your 40-hex payout address>.%WORKER_NAME%. Hive itself is untested on our side: tell us what breaks.
+ Download the tarball v0.3.22 · 28.8 MB
diff --git a/site/evidence.html b/site/evidence.html index 391c2479c..2693717b9 100644 --- a/site/evidence.html +++ b/site/evidence.html @@ -125,6 +125,9 @@ td.mono{font-family:var(--f-mono);font-size:12.5px;min-width:180px}td.iv{color:v The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/explorer.html b/site/explorer.html index 4dcc62e34..9e03fcfa2 100644 --- a/site/explorer.html +++ b/site/explorer.html @@ -135,6 +135,9 @@ main{padding-bottom:100px}.card{background:var(--row);border:1px solid var(--lin The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/faucet.html b/site/faucet.html index d571e217e..dbf733f8b 100644 --- a/site/faucet.html +++ b/site/faucet.html @@ -117,6 +117,9 @@ dt{color:var(--ash)}dd{margin:0;font-family:var(--f-mono);font-size:14px;overflo The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/income.html b/site/income.html index 5f73c7dbf..b0d53d7fb 100644 --- a/site/income.html +++ b/site/income.html @@ -74,6 +74,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/index.html b/site/index.html index 716624fbb..5e2380be6 100644 --- a/site/index.html +++ b/site/index.html @@ -106,6 +106,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/journey.html b/site/journey.html index a613273f6..951f983dd 100644 --- a/site/journey.html +++ b/site/journey.html @@ -114,6 +114,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. @@ -212,7 +218,7 @@
-
Six phases · updated 7 Oct 2026
+
Six phases · updated 8 Oct 2026

The journey.

Six phases from the specification to a fair launch. Each closes at its gate, a measurement published whether it passes or fails, so there is no date to slip. Below the phases, the latest entries of the engineering log.

@@ -226,7 +232,8 @@
The log, newest first

Lately, in the log.

-
log

The first 16 GB card

The first 16 GB card: an RTX 5060 Ti in a Thunderbolt enclosure on the RTX 5090 Windows rig

+
log

The hot-table packs on the RTX 5090

The hot-table packs on the RTX 5090: ld.global.cs against the plain load, unlocked and at the 1,300 MHz lock

+
log

The first 16 GB card

The first 16 GB card: an RTX 5060 Ti in a Thunderbolt enclosure on the RTX 5090 Windows rig

log

Counter ASIC 3.0

Counter ASIC 3.0: the class v4 rehearsal

log

16:01Z: Ember run 6 on the three-card Windows rig

log

Counter ASIC 3.0 item 2

Counter ASIC 3.0 item 2: the per-day derivation

@@ -259,13 +266,12 @@
log

Live devnet: real transactions, the first non-empty shard proven and…

Live devnet: real transactions, the first non-empty shard proven and paid, and the exporter's block structure fixed

log

The program id split

The program id split: why the Apple M5 Max rejected the RTX 5090 Windows rig's proofs, and the verifier at 114 s

log

Live devnet: the first shards proven, verified and paid

+
log

Devnet v4 live: generator v2, two-thirds floor, fresh chain

Devnet v4 cut-over: generator v2, 2/3 floor, three nodes and a seed on a fresh chain

log

One-click Windows workers

One-click Windows workers: what the Apple M5 Max could measure

log

First live hourly swap: no pause on Mac, NVIDIA or AMD

First hourly program swap on the live devnet: compile-ahead, no pause, two cards

log

Proving: devnet v4 shards on the Apple M5 Max CPU, loaded machine

log

First live finality lock: 77.4% of weight, 17 voters

First finality lock on the live devnet: checkpoint 242 at 77.4% of all weight, two hours after genesis

-
log

The gfx1036 worker fault and what the Apple M5 Max could and could…

The gfx1036 worker fault and what the Apple M5 Max could and could not reproduce

-
log

A node 60 s behind the clock is silently dead

-
log

First machine on the one-click app: a 5090 at 118 MH/s

First machine on the Igneum Miner app: the RTX 5090 Windows rig's RTX 5090 at 118 MH/s, via Setup.exe

+
log

The gfx1036 worker fault and what the Apple M5 Max could and could…

The gfx1036 worker fault and what the Apple M5 Max could and could not reproduce

Every entry is a dated heading of the engineering log, where the commands and the hardware are. The phases and their gates are the litepaper’s roadmap.

diff --git a/site/journey.json b/site/journey.json index 331b53d72..40e99d2b7 100644 --- a/site/journey.json +++ b/site/journey.json @@ -1,5 +1,5 @@ { - "updated": "2026-10-07", + "updated": "2026-10-08", "stage": "phase-3", "phases": [ { @@ -50,6 +50,11 @@ } ], "log": [ + { + "date": "2026-10-08", + "text": "The hot-table packs on the RTX 5090: ld.global.cs against the plain load, unlocked and at the 1,300 MHz lock", + "short": "The hot-table packs on the RTX 5090" + }, { "date": "2026-10-07", "text": "The first 16 GB card: an RTX 5060 Ti in a Thunderbolt enclosure on the RTX 5090 Windows rig", @@ -215,6 +220,11 @@ "text": "Live devnet: the first shards proven, verified and paid", "short": "Live devnet: the first shards proven, verified and paid" }, + { + "date": "2026-10-04", + "text": "Devnet v4 cut-over: generator v2, 2/3 floor, three nodes and a seed on a fresh chain", + "short": "Devnet v4 live: generator v2, two-thirds floor, fresh chain" + }, { "date": "2026-10-04", "text": "One-click Windows workers: what the Apple M5 Max could measure", @@ -239,16 +249,6 @@ "date": "2026-10-04", "text": "The gfx1036 worker fault and what the Apple M5 Max could and could not reproduce", "short": "The gfx1036 worker fault and what the Apple M5 Max could and could…" - }, - { - "date": "2026-10-04", - "text": "A node 60 s behind the clock is silently dead", - "short": "A node 60 s behind the clock is silently dead" - }, - { - "date": "2026-10-04", - "text": "First machine on the Igneum Miner app: the RTX 5090 Windows rig's RTX 5090 at 118 MH/s, via Setup.exe", - "short": "First machine on the one-click app: a 5090 at 118 MH/s" } ] } diff --git a/site/ledger.html b/site/ledger.html index f896139f2..a14160692 100644 --- a/site/ledger.html +++ b/site/ledger.html @@ -89,7 +89,7 @@ blockquote{margin:10px 0;padding:10px 14px;border-left:3px solid var(--line-2);c
- + Specification and test vectors
Learn
LitepaperThe design, as published. diff --git a/site/live.html b/site/live.html index 12c52735c..7c3498c52 100644 --- a/site/live.html +++ b/site/live.html @@ -255,6 +255,9 @@ details.tablebar summary{display:flex;align-items:center} The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/metamask.html b/site/metamask.html index 8f2ef399a..87040678a 100644 --- a/site/metamask.html +++ b/site/metamask.html @@ -116,6 +116,9 @@ ol{margin:0 0 14px;padding-left:22px}li{margin-bottom:6px} The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/miner.html b/site/miner.html index 1a34df3a7..89933c646 100644 --- a/site/miner.html +++ b/site/miner.html @@ -111,6 +111,9 @@ pre b{color:var(--molten-text);font-weight:500} The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. @@ -268,9 +274,9 @@ pre b{color:var(--molten-text);font-weight:500}
diff --git a/site/miners.html b/site/miners.html index be1d30221..8d917192b 100644 --- a/site/miners.html +++ b/site/miners.html @@ -115,6 +115,9 @@ table{min-width:560px} The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/oracle.html b/site/oracle.html new file mode 100644 index 000000000..58bffa1f1 --- /dev/null +++ b/site/oracle.html @@ -0,0 +1,342 @@ + + + + + +Igneum state oracle on Sepolia + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
Reference app 3 · Devnet 3, no value
+

Devnet 3 balances, read from Sepolia.

+
+

A contract on Ethereum Sepolia stores Igneum Devnet 3 finality certificates that anyone submits, checked by a shared certificate verifier, and state roots bound to those checkpoints through the header chain, the coinbase and the segment record. Other contracts then read a proven Devnet 3 balance or storage slot with an ordinary Merkle Patricia proof. No relayer is trusted: a wrong certificate or a wrong proof reverts.

+ +
+

Why this only works on a proven chain. Another chain can only use Igneum state if a contract can check it without running an Igneum node: a weighted certificate over a checkpoint and a state root proven under it are small enough to verify in a few hundred thousand gas. A chain whose state is only "what most nodes say" has nothing a contract can check.

+

Source: tools/reference-apps/oracle/contracts/ (IgneumStateOracle.sol and its libraries), tools/reference-apps/oracle/demo.mjs (the demo that reads a Devnet 3 balance from Sepolia), tools/reference-apps/oracle/test.mjs (the negative cases through eth_call). The shared certificate verifier is the DEX lane's contracts/bridge/src/IgneumCertificateVerifier.sol.

+
+ +
+

On Sepolia

+
+
Oracle
deploying today; the address lands here with its first stored checkpoint
+
Verifier
the shared IgneumCertificateVerifier (DEX lane), or the stand-in until it lands
+
Chain
Sepolia, chain id 11155111; Devnet 3 (igneum-devnet-3), no value
+
+

How to read a balance from another contract: IIgneumStateOracle(oracle).provenBalance(number, account, accountProof), where number is a Devnet 3 chain block whose state root the oracle holds and accountProof is the eth_getProof account proof at that block. A storage slot: provenStorage(number, account, slot, accountProof, storageProof). Both revert on any mismatch.

+
+ +

What the contract checks

+
    +
  1. The certificate, through the shared verifier: the aggregate BLS signature over the checkpoint under the installed voter table and the weight rule.
  2. +
  3. The header path from the carrier block up to the certified checkpoint: BLAKE2b-256 keyed BlockHash through the precompile, every parent link.
  4. +
  5. The coinbase transaction under the carrier's hash_merkle_root, and the segment record parsed out of its extra data: the record's post_root for its block is stored under the certificate's index.
  6. +
  7. Every read: a keccak-keyed Merkle Patricia proof against the stored root, verified on chain.
  8. +
+

Said plainly, on the contract too (trust()): the aggregator's BLS signature on the record is not checked on chain in this slice, and the voter table the verifier holds is installed by its deployer. The negative cases in test.mjs are a flipped proof node, a wrong block number, a header removed from the path, a merkle sibling altered, a record with its post_root altered, a header with its nonce altered: each reverts.

+

Devnet 3, no value. Sepolia, no value. A demonstration of the verification path, not a product.

+
+ + + + + + + + diff --git a/site/partials/nav.html b/site/partials/nav.html index 58fd4456a..b7034ee60 100644 --- a/site/partials/nav.html +++ b/site/partials/nav.html @@ -38,6 +38,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/provenance.html b/site/provenance.html index c303deb48..333ae9749 100644 --- a/site/provenance.html +++ b/site/provenance.html @@ -115,6 +115,9 @@ table{min-width:560px} The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/randomx.html b/site/randomx.html index ebc61f0a5..c95aaebb6 100644 --- a/site/randomx.html +++ b/site/randomx.html @@ -114,6 +114,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/receipt.html b/site/receipt.html new file mode 100644 index 000000000..ca44b083a --- /dev/null +++ b/site/receipt.html @@ -0,0 +1,345 @@ + + + + + +Igneum payment receipt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
Reference app 2 · Devnet 3, no value
+

A receipt any third party re-verifies.

+
+

Paste a Devnet 3 transaction hash. This tab fetches the raw transaction, the including block's merkle path, every header up to the certified checkpoint and the certificate, then proves inclusion and finality itself. Download the receipt as JSON. Anyone checks it later with a one-file verifier, offline, with no node and no network.

+ +
+

Why this only works on a proven chain. A merchant's receipt is only worth something if the payment cannot be undone and the proof of that fits in a file: here the certificate is a weighted BLS signature by the miners over a checkpoint, and the block holding the payment hashes into that checkpoint's past. On a chain with probabilistic finality a receipt is a guess that ages well; here it is a fact that a file carries.

+

Source: site/light/core.js (the checks), site/light/app.js (this page), tools/reference-apps/receipt/verify-receipt.src.mjs (the one-file verifier, bundled to /receipt/verify-receipt.js). Test with the negative cases: /light/test in the browser, tools/reference-apps/light-service/verify.test.mjs under Node.

+
+ +
+

Get a receipt

+
+ +
+
Devnet 3, no value. A transaction is final once a certified checkpoint has it in its past, about 30 to 90 s after it executes.
+
+
+
+ +

Re-verify offline

+

The verifier is one file of plain JavaScript with the hashing and curve code inside it: verify-receipt.js. It runs under Node 18 or later (node verify-receipt.js receipt.json) and prints each check, then VERIFIED or REFUSED with the reason. It fetches nothing. Flip one byte of the file and it is refused: node verify-receipt.js receipt.json --tamper runs that case first so you see the refusal before the verdict.

+

What the receipt proves

+
    +
  1. The transaction hash is keccak256 of the raw signed transaction in the file, so the recipient, the amount and the data are the signed ones.
  2. +
  3. The transaction is a leaf of the including block's hash_merkle_root (BLAKE2b-256 keyed MerkleBranchHash up the path).
  4. +
  5. Every header from the including block to the certified checkpoint recomputes and links to the next by a direct parent.
  6. +
  7. The certificate over that checkpoint verifies: the aggregate BLS signature of the signers, the voter order, two thirds of active weight and 17/30 of total.
  8. +
+

Not proven by the file: the execution result (status, gas) is carried as the node reported it and labelled so; the voter table with weights comes from the node (spec 10.1). Both are named on the result.

+

Devnet 3, no value. The chain may reset. A demonstration of the verification path, not a product.

+
+ + + + + + + + + diff --git a/site/receipt/verify-receipt.js b/site/receipt/verify-receipt.js new file mode 100644 index 000000000..752ea7456 --- /dev/null +++ b/site/receipt/verify-receipt.js @@ -0,0 +1,5322 @@ +#!/usr/bin/env node +// Igneum payment receipt verifier, one file, offline. Source: tools/reference-apps/receipt/verify-receipt.src.mjs and site/light/core.js +// (the same checks the browser page runs), bundled with @noble/hashes 2.4.0 and @noble/curves 2.4.0 (MIT). Usage: node verify-receipt.js receipt.json [--tamper] + +// tools/reference-apps/receipt/verify-receipt.src.mjs +var import_node_fs = require("node:fs"); + +// tools/reference-apps/light-service/node_modules/@noble/hashes/utils.js +function isBytes(a) { + return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array" && "BYTES_PER_ELEMENT" in a && a.BYTES_PER_ELEMENT === 1; +} +var atitle = (title) => title ? `"${title}" ` : ""; +function anumber(n, title = "") { + if (typeof n !== "number") + throw new TypeError(atitle(title) + "expected number, got " + typeof n); + if (!Number.isSafeInteger(n) || n < 0) + throw new RangeError(atitle(title) + "expected integer >= 0, got " + n); + return n; +} +function abool(value, title = "") { + if (typeof value !== "boolean") + throw new TypeError(atitle(title) + "expected boolean, got type=" + typeof value); + return value; +} +function abytes(value, length, title = "") { + if (isBytes(value) && (length === void 0 || value.length === length)) + return value; + if (length !== void 0) + anumber(length, "length"); + const bytes = isBytes(value); + const ofLen = length !== void 0 ? ` of length ${length}` : ""; + const got = bytes ? `length=${value.length}` : `type=${typeof value}`; + const message = atitle(title) + "expected Uint8Array" + ofLen + ", got " + got; + if (!bytes) + throw new TypeError(message); + throw new RangeError(message); +} +function copyBytes(bytes) { + return Uint8Array.from(abytes(bytes)); +} +var aobject = (value, label) => { + if (value === null || typeof value !== "object" || Array.isArray(value)) + throw new TypeError((label === "object" ? "" : `"${label}" `) + "expected object, got type=" + typeof value); +}; +var aopts = (value, label) => { + aobject(value, label); + const proto = Object.getPrototypeOf(value); + if (proto !== Object.prototype && proto !== null) + throw new TypeError(`"${label}" expected plain object`); + if (Object.hasOwn(value, "__proto__")) + throw new TypeError(`"${label}.__proto__" is not allowed`); +}; +function aexists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error("hash was destroyed"); + if (checkFinished && instance.finished) + throw new Error("digest() was already called"); +} +function aoutput(out, instance) { + abytes(out, void 0, "output"); + const min = instance.outputLen; + if (!(out.length >= min)) { + throw new RangeError('"output" expected length >= ' + min); + } +} +function u32(arr) { + return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4)); +} +function clean(...arrays) { + for (let i = 0; i < arrays.length; i++) { + arrays[i].fill(0); + } +} +function createView(arr) { + return new DataView(arr.buffer, arr.byteOffset, arr.byteLength); +} +function rotr(word, shift) { + return word << 32 - shift | word >>> shift; +} +var isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68)(); +function byteSwap(word) { + return word << 24 & 4278190080 | word << 8 & 16711680 | word >>> 8 & 65280 | word >>> 24 & 255; +} +var swap8IfBE = isLE ? (n) => n : (n) => byteSwap(n) >>> 0; +function byteSwap32(arr) { + for (let i = 0; i < arr.length; i++) { + arr[i] = byteSwap(arr[i]); + } + return arr; +} +var swap32IfBE = isLE ? (u) => u : byteSwap32; +var hasHexBuiltin = /* @__PURE__ */ (() => ( + // @ts-ignore + typeof Uint8Array.from([]).toHex === "function" && typeof Uint8Array.fromHex === "function" +))(); +var hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0")); +function bytesToHex(bytes) { + abytes(bytes); + if (hasHexBuiltin) + return bytes.toHex(); + let hex = ""; + for (let i = 0; i < bytes.length; i++) { + hex += hexes[bytes[i]]; + } + return hex; +} +function asciiToBase16(ch) { + return ch >= 48 && ch <= 57 ? ch - 48 : ch >= 65 && ch <= 70 ? ch - (65 - 10) : ch >= 97 && ch <= 102 ? ch - (97 - 10) : void 0; +} +function hexToBytes(hex) { + if (typeof hex !== "string") + throw new TypeError("hex string expected, got " + typeof hex); + if (hasHexBuiltin) { + try { + return Uint8Array.fromHex(hex); + } catch (error) { + if (error instanceof SyntaxError) + throw new RangeError(error.message); + throw error; + } + } + const hl = hex.length; + const al = hl / 2; + if (hl % 2) + throw new RangeError("hex string expected, got unpadded hex of length " + hl); + const array = new Uint8Array(al); + for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) { + const n1 = asciiToBase16(hex.charCodeAt(hi)); + const n2 = asciiToBase16(hex.charCodeAt(hi + 1)); + if (n1 === void 0 || n2 === void 0) { + const char = hex[hi] + hex[hi + 1]; + throw new RangeError('hex string expected, got non-hex character "' + char + '" at index ' + hi); + } + array[ai] = n1 * 16 + n2; + } + return array; +} +function concatBytes(...arrays) { + let sum = 0; + for (let i = 0; i < arrays.length; i++) { + const a = arrays[i]; + abytes(a); + sum += a.length; + } + const res = new Uint8Array(sum); + for (let i = 0, pad = 0; i < arrays.length; i++) { + const a = arrays[i]; + res.set(a, pad); + pad += a.length; + } + return res; +} +function checkOpts(defaults, opts, title = "opts") { + aopts(defaults, "defaults"); + if (opts !== void 0) + aopts(opts, title); + const merged = Object.assign(/* @__PURE__ */ Object.create(null), defaults, opts); + return merged; +} +function createHasher(hashCons, info = {}) { + if (typeof hashCons !== "function") + throw new TypeError('"hashCons" expected function, got type=' + typeof hashCons); + info = checkOpts({}, info, "info"); + const hashC = (msg, opts) => hashCons(opts).update(msg).digest(); + const tmp = hashCons(void 0); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.canXOF = tmp.canXOF; + hashC.create = (opts) => hashCons(opts); + Object.assign(hashC, info); + return Object.freeze(hashC); +} +function randomBytes(bytesLength = 32) { + anumber(bytesLength, "bytesLength"); + const cr = typeof globalThis === "object" ? globalThis.crypto : null; + if (typeof cr?.getRandomValues !== "function") + throw new Error("crypto.getRandomValues must be defined"); + if (bytesLength > 65536) + throw new RangeError(`"bytesLength" expected <= 65536, got ${bytesLength}`); + return cr.getRandomValues(new Uint8Array(bytesLength)); +} +var oidNist = (suffix) => ({ + // Current NIST hashAlgs suffixes used here fit in one DER subidentifier octet. + // Larger suffix values would need base-128 OID encoding and a different length byte. + oid: Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, suffix]) +}); + +// tools/reference-apps/light-service/node_modules/@noble/hashes/_blake.js +var BSIGMA = /* @__PURE__ */ Uint8Array.from([ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 14, + 10, + 4, + 8, + 9, + 15, + 13, + 6, + 1, + 12, + 0, + 2, + 11, + 7, + 5, + 3, + 11, + 8, + 12, + 0, + 5, + 2, + 15, + 13, + 10, + 14, + 3, + 6, + 7, + 1, + 9, + 4, + 7, + 9, + 3, + 1, + 13, + 12, + 11, + 14, + 2, + 6, + 5, + 10, + 4, + 0, + 15, + 8, + 9, + 0, + 5, + 7, + 2, + 4, + 10, + 15, + 14, + 1, + 11, + 12, + 6, + 8, + 3, + 13, + 2, + 12, + 6, + 10, + 0, + 11, + 8, + 3, + 4, + 13, + 7, + 5, + 15, + 14, + 1, + 9, + 12, + 5, + 1, + 15, + 14, + 13, + 4, + 10, + 0, + 7, + 6, + 3, + 9, + 2, + 8, + 11, + 13, + 11, + 7, + 14, + 12, + 1, + 3, + 9, + 5, + 0, + 15, + 4, + 8, + 6, + 2, + 10, + 6, + 15, + 14, + 9, + 11, + 3, + 0, + 8, + 12, + 2, + 13, + 7, + 1, + 4, + 10, + 5, + 10, + 2, + 8, + 4, + 7, + 6, + 1, + 5, + 15, + 11, + 9, + 14, + 3, + 12, + 13, + 0, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 14, + 10, + 4, + 8, + 9, + 15, + 13, + 6, + 1, + 12, + 0, + 2, + 11, + 7, + 5, + 3, + // Blake1, unused in others + 11, + 8, + 12, + 0, + 5, + 2, + 15, + 13, + 10, + 14, + 3, + 6, + 7, + 1, + 9, + 4, + 7, + 9, + 3, + 1, + 13, + 12, + 11, + 14, + 2, + 6, + 5, + 10, + 4, + 0, + 15, + 8, + 9, + 0, + 5, + 7, + 2, + 4, + 10, + 15, + 14, + 1, + 11, + 12, + 6, + 8, + 3, + 13, + 2, + 12, + 6, + 10, + 0, + 11, + 8, + 3, + 4, + 13, + 7, + 5, + 15, + 14, + 1, + 9 +]); + +// tools/reference-apps/light-service/node_modules/@noble/hashes/_u64.js +var U32_MASK64 = /* @__PURE__ */ (() => BigInt(2 ** 32 - 1))(); +var _32n = /* @__PURE__ */ BigInt(32); +function fromBig(n, le = false) { + if (le) + return { h: Number(n & U32_MASK64), l: Number(n >> _32n & U32_MASK64) }; + return { h: Number(n >> _32n & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 }; +} +function split(lst, le = false) { + const len = lst.length; + let Ah = new Uint32Array(len); + let Al = new Uint32Array(len); + for (let i = 0; i < len; i++) { + const { h, l } = fromBig(lst[i], le); + [Ah[i], Al[i]] = [h, l]; + } + return [Ah, Al]; +} +var fromNumH = (n) => n / 2 ** 32 | 0; +var fromNumL = (n) => n >>> 0; +function setU64FromNum(view, byteOffset, n, isLE2) { + const h = fromNumH(n); + const l = fromNumL(n); + view.setUint32(byteOffset, isLE2 ? l : h, isLE2); + view.setUint32(byteOffset + 4, isLE2 ? h : l, isLE2); +} +var rotrSH = (h, l, s) => h >>> s | l << 32 - s; +var rotrSL = (h, l, s) => h << 32 - s | l >>> s; +var rotrBH = (h, l, s) => h << 64 - s | l >>> s - 32; +var rotrBL = (h, l, s) => h >>> s - 32 | l << 64 - s; +var rotr32H = (_h, l) => l; +var rotr32L = (h, _l) => h; +function add(Ah, Al, Bh, Bl) { + const l = (Al >>> 0) + (Bl >>> 0); + return { h: Ah + Bh + (l / 2 ** 32 | 0) | 0, l: l | 0 }; +} +var add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0); +var add3H = (low, Ah, Bh, Ch) => Ah + Bh + Ch + (low / 2 ** 32 | 0) | 0; + +// tools/reference-apps/light-service/node_modules/@noble/hashes/_md.js +function Chi(a, b, c) { + return a & b ^ ~a & c; +} +function Maj(a, b, c) { + return a & b ^ a & c ^ b & c; +} +var HashMD = class { + blockLen; + outputLen; + canXOF = false; + padOffset; + isLE; + // For partial updates less than block size + buffer; + view; + finished = false; + length = 0; + pos = 0; + destroyed = false; + constructor(blockLen, outputLen, padOffset, isLE2) { + this.blockLen = blockLen; + this.outputLen = outputLen; + this.padOffset = padOffset; + this.isLE = isLE2; + this.buffer = new Uint8Array(blockLen); + this.view = createView(this.buffer); + } + update(data) { + aexists(this); + abytes(data); + const { view, buffer, blockLen } = this; + const len = data.length; + let processed = false; + for (let pos = 0; pos < len; ) { + const take = Math.min(blockLen - this.pos, len - pos); + if (take === blockLen) { + const dataView = createView(data); + for (; blockLen <= len - pos; pos += blockLen) + this.process(dataView, pos); + processed = true; + continue; + } + buffer.set(pos === 0 && take === len ? data : data.subarray(pos, pos + take), this.pos); + this.pos += take; + pos += take; + if (this.pos === blockLen) { + this.process(view, 0); + this.pos = 0; + processed = true; + } + } + this.length += data.length; + if (processed) + this.roundClean(); + return this; + } + digestInto(out) { + aexists(this); + aoutput(out, this); + this.finished = true; + const { buffer, view, blockLen, isLE: isLE2 } = this; + let { pos } = this; + buffer[pos++] = 128; + buffer.fill(0, pos); + if (this.padOffset > blockLen - pos) { + this.process(view, 0); + buffer.fill(0); + } + setU64FromNum(view, blockLen - 8, this.length * 8, isLE2); + this.process(view, 0); + this.roundClean(); + const oview = out === buffer ? view : createView(out); + const len = this.outputLen; + const outLen = len / 4; + const state = this.get(); + if (len % 4 || outLen > state.length) + throw new Error("invalid outputLen"); + for (let i = 0; i < outLen; i++) + oview.setUint32(4 * i, state[i], isLE2); + } + digest() { + const { buffer, outputLen } = this; + this.digestInto(buffer); + const res = buffer.slice(0, outputLen); + this.destroy(); + return res; + } + _cloneIntoMeta(to) { + const { buffer, length, finished, destroyed, pos } = this; + to.destroyed = destroyed; + to.finished = finished; + to.length = length; + to.pos = pos; + if (pos) + to.buffer.set(buffer); + return to; + } + clone() { + return this._cloneInto(); + } +}; +var SHA256_IV = /* @__PURE__ */ Uint32Array.from([ + 1779033703, + 3144134277, + 1013904242, + 2773480762, + 1359893119, + 2600822924, + 528734635, + 1541459225 +]); + +// tools/reference-apps/light-service/node_modules/@noble/hashes/blake2.js +var B2B_IV = /* @__PURE__ */ Uint32Array.from([ + 4089235720, + 1779033703, + 2227873595, + 3144134277, + 4271175723, + 1013904242, + 1595750129, + 2773480762, + 2917565137, + 1359893119, + 725511199, + 2600822924, + 4215389547, + 528734635, + 327033209, + 1541459225 +]); +var BBUF = /* @__PURE__ */ new Uint32Array(32); +function G1b(a, b, c, d, msg, x) { + const Xl = msg[x], Xh = msg[x + 1]; + let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; + let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; + let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; + let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; + const ll = add3L(Al, Bl, Xl); + Ah = add3H(ll, Ah, Bh, Xh); + Al = ll | 0; + let xh = Dh ^ Ah, xl = Dl ^ Al; + Dh = rotr32H(xh, xl); + Dl = rotr32L(xh, xl); + ({ h: Ch, l: Cl } = add(Ch, Cl, Dh, Dl)); + xh = Bh ^ Ch; + xl = Bl ^ Cl; + Bh = rotrSH(xh, xl, 24); + Bl = rotrSL(xh, xl, 24); + BBUF[2 * a] = Al; + BBUF[2 * a + 1] = Ah; + BBUF[2 * b] = Bl; + BBUF[2 * b + 1] = Bh; + BBUF[2 * c] = Cl; + BBUF[2 * c + 1] = Ch; + BBUF[2 * d] = Dl; + BBUF[2 * d + 1] = Dh; +} +function G2b(a, b, c, d, msg, x) { + const Xl = msg[x], Xh = msg[x + 1]; + let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; + let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; + let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; + let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; + const ll = add3L(Al, Bl, Xl); + Ah = add3H(ll, Ah, Bh, Xh); + Al = ll | 0; + let xh = Dh ^ Ah, xl = Dl ^ Al; + Dh = rotrSH(xh, xl, 16); + Dl = rotrSL(xh, xl, 16); + ({ h: Ch, l: Cl } = add(Ch, Cl, Dh, Dl)); + xh = Bh ^ Ch; + xl = Bl ^ Cl; + Bh = rotrBH(xh, xl, 63); + Bl = rotrBL(xh, xl, 63); + BBUF[2 * a] = Al; + BBUF[2 * a + 1] = Ah; + BBUF[2 * b] = Bl; + BBUF[2 * b + 1] = Bh; + BBUF[2 * c] = Cl; + BBUF[2 * c + 1] = Ch; + BBUF[2 * d] = Dl; + BBUF[2 * d + 1] = Dh; +} +function checkBlake2Opts(outputLen, opts = {}, keyLen, saltLen, persLen) { + anumber(keyLen); + if (outputLen <= 0 || outputLen > keyLen) + throw new Error('"dkLen" must be 1..' + keyLen + ", got " + outputLen); + const { key, salt, personalization } = opts; + if (key !== void 0 && (key.length < 1 || key.length > keyLen)) + throw new Error('"key" expected to be undefined or of length=1..' + keyLen); + if (salt !== void 0) + abytes(salt, saltLen, "salt"); + if (personalization !== void 0) + abytes(personalization, persLen, "personalization"); +} +var _BLAKE2 = class { + buffer; + buffer32; + finished = false; + destroyed = false; + length = 0; + pos = 0; + blockLen; + outputLen; + canXOF = false; + constructor(blockLen, outputLen) { + anumber(blockLen); + anumber(outputLen); + this.blockLen = blockLen; + this.outputLen = outputLen; + this.buffer = new Uint8Array(blockLen); + this.buffer32 = u32(this.buffer); + } + update(data) { + aexists(this); + abytes(data); + const { blockLen, buffer, buffer32 } = this; + const len = data.length; + const offset = data.byteOffset; + const buf = data.buffer; + for (let pos = 0; pos < len; ) { + if (this.pos === blockLen) { + swap32IfBE(buffer32); + this.compress(buffer32, 0, false); + swap32IfBE(buffer32); + this.pos = 0; + } + const take = Math.min(blockLen - this.pos, len - pos); + const dataOffset = offset + pos; + if (take === blockLen && !(dataOffset % 4) && pos + take < len) { + const data32 = new Uint32Array(buf, dataOffset, Math.floor((len - pos) / 4)); + swap32IfBE(data32); + for (let pos32 = 0; pos + blockLen < len; pos32 += buffer32.length, pos += blockLen) { + this.length += blockLen; + this.compress(data32, pos32, false); + } + swap32IfBE(data32); + continue; + } + buffer.set(pos === 0 && take === len ? data : data.subarray(pos, pos + take), this.pos); + this.pos += take; + this.length += take; + pos += take; + } + return this; + } + digestInto(out) { + aexists(this); + aoutput(out, this); + if (out.byteOffset & 3) + throw new RangeError('"output" expected 4-byte aligned byteOffset, got ' + out.byteOffset); + const { pos, buffer32 } = this; + this.finished = true; + this.buffer.fill(0, pos); + swap32IfBE(buffer32); + this.compress(buffer32, 0, true); + swap32IfBE(buffer32); + const state = this.get(); + const out32 = out === this.buffer ? buffer32 : u32(out); + const full = Math.floor(this.outputLen / 4); + for (let i = 0; i < full; i++) + out32[i] = swap8IfBE(state[i]); + const tail = this.outputLen % 4; + if (!tail) + return; + const off = full * 4; + const word = state[full]; + for (let i = 0; i < tail; i++) + out[off + i] = word >>> 8 * i; + } + digest() { + const { buffer, outputLen } = this; + this.digestInto(buffer); + const res = buffer.slice(0, outputLen); + this.destroy(); + return res; + } + _cloneInto(to) { + const { buffer, length, finished, destroyed, outputLen, pos } = this; + to ||= new this.constructor({ dkLen: outputLen }); + to.set(...this.get()); + to.buffer.set(buffer); + to.destroyed = destroyed; + to.finished = finished; + to.length = length; + to.pos = pos; + to.outputLen = outputLen; + return to; + } + clone() { + return this._cloneInto(); + } +}; +var _BLAKE2b = class extends _BLAKE2 { + // Same IV words as SHA-512 / BLAKE2b, encoded as LE u32 low/high halves. + v0l = B2B_IV[0] | 0; + v0h = B2B_IV[1] | 0; + v1l = B2B_IV[2] | 0; + v1h = B2B_IV[3] | 0; + v2l = B2B_IV[4] | 0; + v2h = B2B_IV[5] | 0; + v3l = B2B_IV[6] | 0; + v3h = B2B_IV[7] | 0; + v4l = B2B_IV[8] | 0; + v4h = B2B_IV[9] | 0; + v5l = B2B_IV[10] | 0; + v5h = B2B_IV[11] | 0; + v6l = B2B_IV[12] | 0; + v6h = B2B_IV[13] | 0; + v7l = B2B_IV[14] | 0; + v7h = B2B_IV[15] | 0; + constructor(opts = {}) { + opts = checkOpts({}, opts); + const olen = opts.dkLen === void 0 ? 64 : opts.dkLen; + super(128, olen); + checkBlake2Opts(olen, opts, 64, 16, 16); + let { key, personalization, salt } = opts; + let keyLength = 0; + if (key !== void 0) { + abytes(key, void 0, "key"); + keyLength = key.length; + } + this.v0l ^= this.outputLen | keyLength << 8 | 1 << 16 | 1 << 24; + if (salt !== void 0) { + abytes(salt, void 0, "salt"); + const slt = u32(copyBytes(salt)); + this.v4l ^= swap8IfBE(slt[0]); + this.v4h ^= swap8IfBE(slt[1]); + this.v5l ^= swap8IfBE(slt[2]); + this.v5h ^= swap8IfBE(slt[3]); + } + if (personalization !== void 0) { + abytes(personalization, void 0, "personalization"); + const pers = u32(copyBytes(personalization)); + this.v6l ^= swap8IfBE(pers[0]); + this.v6h ^= swap8IfBE(pers[1]); + this.v7l ^= swap8IfBE(pers[2]); + this.v7h ^= swap8IfBE(pers[3]); + } + if (key !== void 0) { + const tmp = new Uint8Array(this.blockLen); + tmp.set(key); + this.update(tmp); + clean(tmp); + } + } + // prettier-ignore + get() { + let { v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h } = this; + return [v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h]; + } + // prettier-ignore + set(v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h) { + this.v0l = v0l | 0; + this.v0h = v0h | 0; + this.v1l = v1l | 0; + this.v1h = v1h | 0; + this.v2l = v2l | 0; + this.v2h = v2h | 0; + this.v3l = v3l | 0; + this.v3h = v3h | 0; + this.v4l = v4l | 0; + this.v4h = v4h | 0; + this.v5l = v5l | 0; + this.v5h = v5h | 0; + this.v6l = v6l | 0; + this.v6h = v6h | 0; + this.v7l = v7l | 0; + this.v7h = v7h | 0; + } + compress(msg, offset, isLast) { + const { v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h } = this; + { + BBUF[0] = v0l; + BBUF[1] = v0h; + BBUF[2] = v1l; + BBUF[3] = v1h; + BBUF[4] = v2l; + BBUF[5] = v2h; + BBUF[6] = v3l; + BBUF[7] = v3h; + BBUF[8] = v4l; + BBUF[9] = v4h; + BBUF[10] = v5l; + BBUF[11] = v5h; + BBUF[12] = v6l; + BBUF[13] = v6h; + BBUF[14] = v7l; + BBUF[15] = v7h; + } + BBUF.set(B2B_IV, 16); + const l = fromNumL(this.length); + const h = fromNumH(this.length); + BBUF[24] = B2B_IV[8] ^ l; + BBUF[25] = B2B_IV[9] ^ h; + if (isLast) { + BBUF[28] = ~BBUF[28]; + BBUF[29] = ~BBUF[29]; + } + let j = 0; + const s = BSIGMA; + for (let i = 0; i < 12; i++) { + G1b(0, 4, 8, 12, msg, offset + 2 * s[j++]); + G2b(0, 4, 8, 12, msg, offset + 2 * s[j++]); + G1b(1, 5, 9, 13, msg, offset + 2 * s[j++]); + G2b(1, 5, 9, 13, msg, offset + 2 * s[j++]); + G1b(2, 6, 10, 14, msg, offset + 2 * s[j++]); + G2b(2, 6, 10, 14, msg, offset + 2 * s[j++]); + G1b(3, 7, 11, 15, msg, offset + 2 * s[j++]); + G2b(3, 7, 11, 15, msg, offset + 2 * s[j++]); + G1b(0, 5, 10, 15, msg, offset + 2 * s[j++]); + G2b(0, 5, 10, 15, msg, offset + 2 * s[j++]); + G1b(1, 6, 11, 12, msg, offset + 2 * s[j++]); + G2b(1, 6, 11, 12, msg, offset + 2 * s[j++]); + G1b(2, 7, 8, 13, msg, offset + 2 * s[j++]); + G2b(2, 7, 8, 13, msg, offset + 2 * s[j++]); + G1b(3, 4, 9, 14, msg, offset + 2 * s[j++]); + G2b(3, 4, 9, 14, msg, offset + 2 * s[j++]); + } + this.v0l ^= BBUF[0] ^ BBUF[16]; + this.v0h ^= BBUF[1] ^ BBUF[17]; + this.v1l ^= BBUF[2] ^ BBUF[18]; + this.v1h ^= BBUF[3] ^ BBUF[19]; + this.v2l ^= BBUF[4] ^ BBUF[20]; + this.v2h ^= BBUF[5] ^ BBUF[21]; + this.v3l ^= BBUF[6] ^ BBUF[22]; + this.v3h ^= BBUF[7] ^ BBUF[23]; + this.v4l ^= BBUF[8] ^ BBUF[24]; + this.v4h ^= BBUF[9] ^ BBUF[25]; + this.v5l ^= BBUF[10] ^ BBUF[26]; + this.v5h ^= BBUF[11] ^ BBUF[27]; + this.v6l ^= BBUF[12] ^ BBUF[28]; + this.v6h ^= BBUF[13] ^ BBUF[29]; + this.v7l ^= BBUF[14] ^ BBUF[30]; + this.v7h ^= BBUF[15] ^ BBUF[31]; + clean(BBUF); + } + destroy() { + this.destroyed = true; + clean(this.buffer32); + this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + } +}; +var blake2b = /* @__PURE__ */ createHasher((opts) => new _BLAKE2b(opts)); + +// tools/reference-apps/light-service/node_modules/@noble/hashes/sha3.js +var _0n = BigInt(0); +var _1n = BigInt(1); +var _2n = BigInt(2); +var _7n = BigInt(7); +var _256n = BigInt(256); +var _0x71n = BigInt(113); +var SHA3_PI = []; +var SHA3_ROTL = []; +var _SHA3_IOTA = []; +for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) { + [x, y] = [y, (2 * x + 3 * y) % 5]; + SHA3_PI.push(2 * (5 * y + x)); + SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64); + let t2 = _0n; + for (let j = 0; j < 7; j++) { + R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n; + if (R & _2n) + t2 ^= _1n << (_1n << BigInt(j)) - _1n; + } + _SHA3_IOTA.push(t2); +} +var IOTAS = split(_SHA3_IOTA, true); +var SHA3_IOTA_H = IOTAS[0]; +var SHA3_IOTA_L = IOTAS[1]; +var rotlSH = (h, l, s) => h << s | l >>> 32 - s; +var rotlSL = (h, l, s) => l << s | h >>> 32 - s; +var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s; +var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s; +var rotlH = (h, l, s) => s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s); +var rotlL = (h, l, s) => s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s); +var B = new Uint32Array(5 * 2); +function keccakP(s, rounds = 24) { + if (!(s instanceof Uint32Array)) + throw new TypeError('"s" expected Uint32Array(50), got type=' + typeof s); + if (s.length !== 50) + throw new RangeError('"s" expected Uint32Array(50), got length=' + s.length); + anumber(rounds, "rounds"); + if (rounds < 1 || rounds > 24) + throw new Error('"rounds" expected integer 1..24'); + for (let round = 24 - rounds; round < 24; round++) { + for (let x = 0; x < 10; x++) + B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40]; + for (let x = 0; x < 10; x += 2) { + const idx1 = (x + 8) % 10; + const idx0 = (x + 2) % 10; + const B0 = B[idx0]; + const B1 = B[idx0 + 1]; + const Th = rotlH(B0, B1, 1) ^ B[idx1]; + const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1]; + for (let y = 0; y < 50; y += 10) { + s[x + y] ^= Th; + s[x + y + 1] ^= Tl; + } + } + let curH = s[2]; + let curL = s[3]; + for (let t2 = 0; t2 < 24; t2++) { + const shift = SHA3_ROTL[t2]; + const Th = rotlH(curH, curL, shift); + const Tl = rotlL(curH, curL, shift); + const PI = SHA3_PI[t2]; + curH = s[PI]; + curL = s[PI + 1]; + s[PI] = Th; + s[PI + 1] = Tl; + } + for (let y = 0; y < 50; y += 10) { + const b0 = s[y], b1 = s[y + 1], b2 = s[y + 2], b3 = s[y + 3]; + s[y] ^= ~s[y + 2] & s[y + 4]; + s[y + 1] ^= ~s[y + 3] & s[y + 5]; + s[y + 2] ^= ~s[y + 4] & s[y + 6]; + s[y + 3] ^= ~s[y + 5] & s[y + 7]; + s[y + 4] ^= ~s[y + 6] & s[y + 8]; + s[y + 5] ^= ~s[y + 7] & s[y + 9]; + s[y + 6] ^= ~s[y + 8] & b0; + s[y + 7] ^= ~s[y + 9] & b1; + s[y + 8] ^= ~b0 & b2; + s[y + 9] ^= ~b1 & b3; + } + s[0] ^= SHA3_IOTA_H[round]; + s[1] ^= SHA3_IOTA_L[round]; + } + clean(B); +} +var Keccak = class _Keccak { + state; + pos = 0; + posOut = 0; + finished = false; + state32; + destroyed = false; + blockLen; + suffix; + outputLen; + canXOF; + enableXOF = false; + rounds; + // NOTE: we accept arguments in bytes instead of bits here. + constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) { + anumber(blockLen, "blockLen"); + anumber(suffix, "suffix"); + anumber(rounds, "rounds"); + abool(enableXOF, "enableXOF"); + this.blockLen = blockLen; + this.suffix = suffix; + this.outputLen = outputLen; + this.enableXOF = enableXOF; + this.canXOF = enableXOF; + this.rounds = rounds; + anumber(outputLen, "outputLen"); + if (!(0 < blockLen && blockLen < 200)) + throw new Error('"blockLen" must be 1..199'); + this.state = new Uint8Array(200); + this.state32 = u32(this.state); + } + clone() { + return this._cloneInto(); + } + keccak() { + swap32IfBE(this.state32); + keccakP(this.state32, this.rounds); + swap32IfBE(this.state32); + this.posOut = 0; + this.pos = 0; + } + update(data) { + aexists(this); + abytes(data); + const { blockLen, state, state32 } = this; + const len = data.length; + const canUseU32 = blockLen % 4 === 0 && data.byteOffset % 4 === 0; + const blockLen32 = blockLen / 4; + const data32 = canUseU32 && len >= blockLen ? u32(data) : void 0; + for (let pos = 0; pos < len; ) { + if (data32 !== void 0 && this.pos === 0 && pos % 4 === 0 && len - pos >= blockLen) { + for (let i = 0, o = pos / 4; i < blockLen32; i++) + state32[i] ^= data32[o + i]; + pos += blockLen; + this.pos = blockLen; + this.keccak(); + continue; + } + const take = Math.min(blockLen - this.pos, len - pos); + for (let i = 0; i < take; i++) + state[this.pos++] ^= data[pos++]; + if (this.pos === blockLen) + this.keccak(); + } + return this; + } + finish() { + if (this.finished) + return; + this.finished = true; + const { state, suffix, pos, blockLen } = this; + state[pos] ^= suffix; + if ((suffix & 128) !== 0 && pos === blockLen - 1) + this.keccak(); + state[blockLen - 1] ^= 128; + this.keccak(); + } + writeInto(out) { + aexists(this, false); + abytes(out); + this.finish(); + const bufferOut = this.state; + const { blockLen } = this; + for (let pos = 0, len = out.length; pos < len; ) { + if (this.posOut >= blockLen) + this.keccak(); + const take = Math.min(blockLen - this.posOut, len - pos); + out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos); + this.posOut += take; + pos += take; + } + return out; + } + xofInto(out) { + if (!this.enableXOF) + throw new Error("XOF is not enabled"); + return this.writeInto(out); + } + xof(bytes) { + anumber(bytes); + return this.xofInto(new Uint8Array(bytes)); + } + digestInto(out) { + aoutput(out, this); + if (this.finished) + throw new Error("digest() was already called"); + this.writeInto(out.length === this.outputLen ? out : out.subarray(0, this.outputLen)); + this.destroy(); + } + digest() { + const out = new Uint8Array(this.outputLen); + this.digestInto(out); + return out; + } + destroy() { + this.destroyed = true; + clean(this.state); + } + _cloneInto(to) { + const { blockLen, suffix, outputLen, rounds, enableXOF } = this; + to ||= new _Keccak(blockLen, suffix, outputLen, enableXOF, rounds); + to.blockLen = blockLen; + to.state32.set(this.state32); + to.pos = this.pos; + to.posOut = this.posOut; + to.finished = this.finished; + to.rounds = rounds; + to.suffix = suffix; + to.outputLen = outputLen; + to.enableXOF = enableXOF; + to.canXOF = this.canXOF; + to.destroyed = this.destroyed; + return to; + } +}; +var genKeccak = (suffix, blockLen, outputLen, info = {}) => createHasher(() => new Keccak(blockLen, suffix, outputLen), info); +var keccak_256 = /* @__PURE__ */ genKeccak(1, 136, 32); + +// tools/reference-apps/light-service/node_modules/@noble/hashes/sha2.js +var SHA256_K = /* @__PURE__ */ Uint32Array.from([ + 1116352408, + 1899447441, + 3049323471, + 3921009573, + 961987163, + 1508970993, + 2453635748, + 2870763221, + 3624381080, + 310598401, + 607225278, + 1426881987, + 1925078388, + 2162078206, + 2614888103, + 3248222580, + 3835390401, + 4022224774, + 264347078, + 604807628, + 770255983, + 1249150122, + 1555081692, + 1996064986, + 2554220882, + 2821834349, + 2952996808, + 3210313671, + 3336571891, + 3584528711, + 113926993, + 338241895, + 666307205, + 773529912, + 1294757372, + 1396182291, + 1695183700, + 1986661051, + 2177026350, + 2456956037, + 2730485921, + 2820302411, + 3259730800, + 3345764771, + 3516065817, + 3600352804, + 4094571909, + 275423344, + 430227734, + 506948616, + 659060556, + 883997877, + 958139571, + 1322822218, + 1537002063, + 1747873779, + 1955562222, + 2024104815, + 2227730452, + 2361852424, + 2428436474, + 2756734187, + 3204031479, + 3329325298 +]); +var SHA256_W = /* @__PURE__ */ new Uint32Array(64); +var SHA2_32B = class extends HashMD { + // We cannot use array here since array allows indexing by variable + // which means optimizer/compiler cannot use registers. + // Numeric initializers matter: starting the fields as `undefined` changes + // V8's field representation and makes sha256 3x slower (measured). + A = 0; + B = 0; + C = 0; + D = 0; + E = 0; + F = 0; + G = 0; + H = 0; + constructor(outputLen, IV) { + super(64, outputLen, 8, false); + this.A = IV[0] | 0; + this.B = IV[1] | 0; + this.C = IV[2] | 0; + this.D = IV[3] | 0; + this.E = IV[4] | 0; + this.F = IV[5] | 0; + this.G = IV[6] | 0; + this.H = IV[7] | 0; + } + get() { + const { A, B: B2, C, D, E, F, G, H } = this; + return [A, B2, C, D, E, F, G, H]; + } + // prettier-ignore + set(A, B2, C, D, E, F, G, H) { + this.A = A | 0; + this.B = B2 | 0; + this.C = C | 0; + this.D = D | 0; + this.E = E | 0; + this.F = F | 0; + this.G = G | 0; + this.H = H | 0; + } + _cloneInto(to) { + (to ||= new this.constructor()).set(...this.get()); + return this._cloneIntoMeta(to); + } + process(view, offset) { + for (let i = 0; i < 16; i++, offset += 4) + SHA256_W[i] = view.getUint32(offset, false); + for (let i = 16; i < 64; i++) { + const W15 = SHA256_W[i - 15]; + const W2 = SHA256_W[i - 2]; + const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ W15 >>> 3; + const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ W2 >>> 10; + SHA256_W[i] = s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16] | 0; + } + let { A, B: B2, C, D, E, F, G, H } = this; + for (let i = 0; i < 64; i++) { + const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25); + const T1 = H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i] | 0; + const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22); + const T2 = sigma0 + Maj(A, B2, C) | 0; + H = G; + G = F; + F = E; + E = D + T1 | 0; + D = C; + C = B2; + B2 = A; + A = T1 + T2 | 0; + } + A = A + this.A | 0; + B2 = B2 + this.B | 0; + C = C + this.C | 0; + D = D + this.D | 0; + E = E + this.E | 0; + F = F + this.F | 0; + G = G + this.G | 0; + H = H + this.H | 0; + this.set(A, B2, C, D, E, F, G, H); + } + roundClean() { + clean(SHA256_W); + } + destroy() { + this.destroyed = true; + this.set(0, 0, 0, 0, 0, 0, 0, 0); + clean(this.buffer); + } +}; +var _SHA256 = class extends SHA2_32B { + constructor() { + super(32, SHA256_IV); + } +}; +var sha256 = /* @__PURE__ */ createHasher( + () => new _SHA256(), + /* @__PURE__ */ oidNist(1) +); + +// tools/reference-apps/light-service/node_modules/@noble/curves/utils.js +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +function aarray(item, title, inner = () => { +}) { + if (!Array.isArray(item)) + throw new TypeError(`"${title}" expected array, got type=${typeof item}`); + for (let i = 0; i < item.length; i++) + inner(item[i], `${title}[${i}]`); + return item; +} +var abytes2 = (value, length, title) => abytes(value, length, title); +var anumber2 = anumber; +function aobject2(value, title = "object") { + if (value === null || typeof value !== "object" || Array.isArray(value)) + throw new TypeError(title === "object" ? "expected valid options object" : `"${title}" expected object, got type=${typeof value}`); + return value; +} +function afunction(value, title) { + if (typeof value !== "function") + throw new TypeError(`"${title}" is invalid: expected function, got ${typeof value}`); + return value; +} +var bytesToHex2 = bytesToHex; +var concatBytes2 = (...arrays) => concatBytes(...arrays); +var hexToBytes2 = (hex) => hexToBytes(hex); +var isBytes2 = isBytes; +var randomBytes2 = (bytesLength) => randomBytes(bytesLength); +var _0n2 = /* @__PURE__ */ BigInt(0); +var _1n2 = /* @__PURE__ */ BigInt(1); +var atitle2 = (title) => title ? `"${title}" ` : ""; +function abool2(value, title = "") { + if (typeof value !== "boolean") + throw new TypeError(atitle2(title) + "expected boolean, got type=" + typeof value); + return value; +} +function abignumber(n) { + if (typeof n === "bigint") { + if (!isPosBig(n)) + throw new RangeError("positive bigint expected, got " + n); + } else + anumber2(n); + return n; +} +function asafenumber(value, title = "") { + if (typeof value !== "number") { + const prefix = title && `"${title}" `; + throw new TypeError(prefix + "expected number, got type=" + typeof value); + } + if (!Number.isSafeInteger(value)) { + const prefix = title && `"${title}" `; + throw new RangeError(prefix + "expected safe integer, got " + value); + } +} +function hexToNumber(hex) { + if (typeof hex !== "string") + throw new TypeError("hex string expected, got " + typeof hex); + return hex === "" ? _0n2 : BigInt("0x" + hex); +} +function bytesToNumberBE(bytes) { + return hexToNumber(bytesToHex(bytes)); +} +function bytesToNumberLE(bytes) { + return hexToNumber(bytesToHex(copyBytes2(abytes(bytes)).reverse())); +} +function numberToBytesBE(n, len) { + anumber(len); + if (len === 0) + throw new Error("zero output length is invalid"); + n = abignumber(n); + const expectedLen = len * 2; + const hex = n.toString(16); + if (hex.length > expectedLen) + throw new RangeError("number is too large"); + return hexToBytes(hex.padStart(expectedLen, "0")); +} +function numberToBytesLE(n, len) { + return numberToBytesBE(n, len).reverse(); +} +function copyBytes2(bytes) { + return Uint8Array.from(abytes2(bytes)); +} +function asciiToBytes(ascii) { + if (typeof ascii !== "string") + throw new TypeError("ascii string expected, got " + typeof ascii); + return Uint8Array.from(ascii, (c, i) => { + const charCode = c.charCodeAt(0); + if (c.length !== 1 || charCode > 127) { + throw new RangeError(`string contains non-ASCII character "${ascii[i]}" with code ${charCode} at position ${i}`); + } + return charCode; + }); +} +function isPosBig(n) { + return typeof n === "bigint" && _0n2 <= n; +} +function inRange(n, min, max) { + return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max; +} +function aInRange(title, n, min, max) { + if (!inRange(n, min, max)) + throw new RangeError("expected valid " + title + ": " + min + " <= n < " + max + ", got " + n); +} +function bitLen(n) { + if (n < _0n2) + throw new Error("expected non-negative bigint, got " + n); + return n === _0n2 ? 0 : n.toString(2).length; +} +function bitGet(n, pos) { + if (typeof n !== "bigint") + throw new TypeError('"n" expected bigint, got type=' + typeof n); + asafenumber(pos, "pos"); + return n >> BigInt(pos) & _1n2; +} +var bitMask = (n) => { + asafenumber(n, "n"); + return (_1n2 << BigInt(n)) - _1n2; +}; +function validateObject(object, fields2 = {}, optFields = {}, title = "object") { + aobject2(object, title); + aobject2(fields2, "fields"); + aobject2(optFields, "optFields"); + function checkField(fieldName, expectedType, isOpt) { + const label = title === "object" ? `param "${String(fieldName)}"` : `"${title}.${String(fieldName)}"`; + const val = object[fieldName]; + if (!Object.hasOwn(object, fieldName) && (isOpt ? val !== void 0 : expectedType !== "function")) { + throw new TypeError(`${label} is invalid: expected own property`); + } + if (isOpt && val === void 0) + return; + const current = typeof val; + if (current !== expectedType || val === null) + throw new TypeError(`${label} is invalid: expected ${expectedType}, got ${current}`); + } + const iter = (f, isOpt) => Object.entries(f).forEach(([k, v]) => checkField(k, v, isOpt)); + iter(fields2, false); + iter(optFields, true); +} +var notImplemented = () => { + throw new Error("not implemented"); +}; + +// tools/reference-apps/light-service/node_modules/@noble/curves/abstract/modular.js +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +var _0n3 = /* @__PURE__ */ BigInt(0); +var _1n3 = /* @__PURE__ */ BigInt(1); +var _2n2 = /* @__PURE__ */ BigInt(2); +var _3n = /* @__PURE__ */ BigInt(3); +var _4n = /* @__PURE__ */ BigInt(4); +var _5n = /* @__PURE__ */ BigInt(5); +var _7n2 = /* @__PURE__ */ BigInt(7); +var _8n = /* @__PURE__ */ BigInt(8); +var _9n = /* @__PURE__ */ BigInt(9); +var _15n = /* @__PURE__ */ BigInt(15); +var _16n = /* @__PURE__ */ BigInt(16); +var POW_WINDOWED_MIN = /* @__PURE__ */ BigInt("0x10000000000000000"); +function mod(a, b) { + if (b <= _0n3) + throw new Error("mod: expected positive modulus, got " + b); + const result = a % b; + return result >= _0n3 ? result : b + result; +} +function pow(num, power, modulo) { + if (modulo <= _1n3) + throw new Error("pow: expected modulus > 1, got " + modulo); + if (typeof power !== "bigint") + throw new TypeError("invalid exponent: expected bigint, got " + typeof power); + if (power < _0n3) + throw new Error("invalid exponent, negatives unsupported"); + if (power === _0n3) + return _1n3; + if (power === _1n3) + return num; + let d = num % modulo; + if (d < _0n3) + d += modulo; + if (power < POW_WINDOWED_MIN) { + let p2 = _1n3; + while (power > _0n3) { + if (power & _1n3) + p2 = p2 * d % modulo; + d = d * d % modulo; + power >>= _1n3; + } + return p2; + } + const digits = []; + while (power > _0n3) { + digits.push(Number(power & _15n)); + power >>= _4n; + } + const table = new Array(16); + table[0] = _1n3; + table[1] = d; + for (let i = 2; i < 16; i++) + table[i] = table[i - 1] * d % modulo; + let p = table[digits[digits.length - 1]]; + for (let w = digits.length - 2; w >= 0; w--) { + p = p * p % modulo; + p = p * p % modulo; + p = p * p % modulo; + p = p * p % modulo; + const digit = digits[w]; + if (digit !== 0) + p = p * table[digit] % modulo; + } + return p; +} +function invert(number, modulo) { + if (number === _0n3) + throw new Error("invert: expected non-zero number"); + if (modulo <= _1n3) + throw new Error("invert: expected modulus > 1, got " + modulo); + let a = mod(number, modulo); + let b = modulo; + let x = _0n3, u = _1n3; + while (a !== _0n3) { + const q = b / a; + const r2 = b - a * q; + const m = x - u * q; + b = a, a = r2, x = u, u = m; + } + const gcd = b; + if (gcd !== _1n3) + throw new Error("invert: does not exist"); + return mod(x, modulo); +} +function assertIsSquare(Fp3, root, n) { + const F = Fp3; + if (!F.eql(F.sqr(root), n)) + throw new Error("Cannot find square root"); +} +function aoddModulus(order, fnName) { + if ((order & _1n3) === _0n3) + throw new Error(fnName + ": expected odd modulus, got " + order); +} +function sqrt3mod4(Fp3, n) { + const F = Fp3; + const p1div4 = (F.ORDER + _1n3) / _4n; + const root = F.pow(n, p1div4); + assertIsSquare(F, root, n); + return root; +} +function sqrt5mod8(Fp3, n) { + const F = Fp3; + const p5div8 = (F.ORDER - _5n) / _8n; + const n2 = F.mul(n, _2n2); + const v = F.pow(n2, p5div8); + const nv = F.mul(n, v); + const i = F.mul(F.mul(nv, _2n2), v); + const root = F.mul(nv, F.sub(i, F.ONE)); + assertIsSquare(F, root, n); + return root; +} +function sqrt9mod16(P) { + const Fp_ = Field(P); + const tn = tonelliShanks(P); + const c1 = tn(Fp_, Fp_.neg(Fp_.ONE)); + const c2 = tn(Fp_, c1); + const c3 = tn(Fp_, Fp_.neg(c1)); + const c4 = (P + _7n2) / _16n; + return (Fp3, n) => { + const F = Fp3; + let tv1 = F.pow(n, c4); + let tv2 = F.mul(tv1, c1); + const tv3 = F.mul(tv1, c2); + const tv4 = F.mul(tv1, c3); + const e1 = F.eql(F.sqr(tv2), n); + const e2 = F.eql(F.sqr(tv3), n); + tv1 = F.cmov(tv1, tv2, e1); + tv2 = F.cmov(tv4, tv3, e2); + const e3 = F.eql(F.sqr(tv2), n); + const root = F.cmov(tv1, tv2, e3); + assertIsSquare(F, root, n); + return root; + }; +} +function tonelliShanks(P) { + if (P < _3n) + throw new Error("sqrt is not defined for small field"); + aoddModulus(P, "tonelliShanks"); + let Q = P - _1n3; + let S = 0; + while (Q % _2n2 === _0n3) { + Q /= _2n2; + S++; + } + let Z = _2n2; + const _Fp = Field(P); + while (FpLegendre(_Fp, Z) === 1) { + if (Z++ > 1e3) + throw new Error("Cannot find square root: probably non-prime P"); + } + if (S === 1) + return sqrt3mod4; + let cc = _Fp.pow(Z, Q); + const Q1div2 = (Q + _1n3) / _2n2; + return function tonelliSlow(Fp3, n) { + const F = Fp3; + if (F.is0(n)) + return n; + if (FpLegendre(F, n) !== 1) + throw new Error("Cannot find square root"); + let M = S; + let c = F.mul(F.ONE, cc); + let t2 = F.pow(n, Q); + let R = F.pow(n, Q1div2); + while (!F.eql(t2, F.ONE)) { + if (F.is0(t2)) + throw new Error("Cannot find square root: probably non-prime P"); + let i = 1; + let t_tmp = F.sqr(t2); + while (!F.eql(t_tmp, F.ONE)) { + i++; + t_tmp = F.sqr(t_tmp); + if (i === M) + throw new Error("Cannot find square root"); + } + const exponent = _1n3 << BigInt(M - i - 1); + const b = F.pow(c, exponent); + M = i; + c = F.sqr(b); + t2 = F.mul(t2, c); + R = F.mul(R, b); + } + return R; + }; +} +function FpSqrt(P) { + aoddModulus(P, "Fp.sqrt"); + if (P % _4n === _3n) + return sqrt3mod4; + if (P % _8n === _5n) + return sqrt5mod8; + if (P % _16n === _9n) + return sqrt9mod16(P); + return tonelliShanks(P); +} +var FIELD_FIELDS = [ + "create", + "isValid", + "is0", + "neg", + "inv", + "sqrt", + "sqr", + "eql", + "add", + "sub", + "mul", + "pow", + "div", + "addN", + "subN", + "mulN", + "sqrN" +]; +function validateField(field) { + aobject2(field, "field"); + if (typeof field.ORDER !== "bigint") + throw new TypeError('param "ORDER" is invalid: expected bigint, got ' + typeof field.ORDER); + asafenumber(field.BYTES, "BYTES"); + asafenumber(field.BITS, "BITS"); + for (const name of FIELD_FIELDS) + afunction(field[name], "field." + name); + if (field.BYTES < 1 || field.BITS < 1) + throw new Error("invalid field: expected BYTES/BITS > 0"); + if (field.ORDER <= _1n3) + throw new Error("invalid field: expected ORDER > 1, got " + field.ORDER); + return field; +} +function FpPow(Fp3, num, power) { + validateField(Fp3); + const F = Fp3; + if (typeof power !== "bigint") + throw new TypeError("invalid exponent: expected bigint, got " + typeof power); + if (power < _0n3) + throw new Error("invalid exponent, negatives unsupported"); + if (power === _0n3) + return F.ONE; + if (power === _1n3) + return num; + if (power < POW_WINDOWED_MIN) { + let p2 = F.ONE; + let d = num; + while (power > _0n3) { + if (power & _1n3) + p2 = F.mul(p2, d); + d = F.sqr(d); + power >>= _1n3; + } + return p2; + } + const digits = []; + while (power > _0n3) { + digits.push(Number(power & _15n)); + power >>= _4n; + } + const table = new Array(16); + table[0] = F.ONE; + table[1] = num; + for (let i = 2; i < 16; i++) + table[i] = F.mul(table[i - 1], num); + let p = table[digits[digits.length - 1]]; + for (let w = digits.length - 2; w >= 0; w--) { + p = F.sqr(F.sqr(F.sqr(F.sqr(p)))); + const digit = digits[w]; + if (digit !== 0) + p = F.mul(p, table[digit]); + } + return p; +} +function FpInvertBatch(Fp3, nums, passZero = false) { + validateField(Fp3); + aarray(nums, "nums"); + abool2(passZero, "passZero"); + const F = Fp3; + const inverted = new Array(nums.length).fill(passZero ? F.ZERO : void 0); + const multipliedAcc = nums.reduce((acc, num, i) => { + if (F.is0(num)) + return acc; + inverted[i] = acc; + return F.mul(acc, num); + }, F.ONE); + const invertedAcc = F.inv(multipliedAcc); + nums.reduceRight((acc, num, i) => { + if (F.is0(num)) + return acc; + inverted[i] = F.mul(acc, inverted[i]); + return F.mul(acc, num); + }, invertedAcc); + return inverted; +} +function FpLegendre(Fp3, n) { + validateField(Fp3); + const F = Fp3; + aoddModulus(F.ORDER, "FpLegendre"); + const p1mod2 = (F.ORDER - _1n3) / _2n2; + const powered = F.pow(n, p1mod2); + const yes = F.eql(powered, F.ONE); + const zero = F.eql(powered, F.ZERO); + const no = F.eql(powered, F.neg(F.ONE)); + if (!yes && !zero && !no) + throw new Error("invalid Legendre symbol result"); + return yes ? 1 : zero ? 0 : -1; +} +function FpIsSquare(Fp3, n) { + const l = FpLegendre(Fp3, n); + return l !== -1; +} +function nLength(n, nBitLength) { + if (nBitLength !== void 0) + anumber2(nBitLength); + if (n <= _0n3) + throw new Error("invalid n length: expected positive n, got " + n); + if (nBitLength !== void 0 && nBitLength < 1) + throw new Error("invalid n length: expected positive bit length, got " + nBitLength); + const bits = bitLen(n); + if (nBitLength !== void 0 && nBitLength < bits) + throw new Error(`invalid n length: expected nBitLength (${nBitLength}) >= bitLen(n) (${bits})`); + const _nBitLength = nBitLength !== void 0 ? nBitLength : bits; + const nByteLength = Math.ceil(_nBitLength / 8); + return { nBitLength: _nBitLength, nByteLength }; +} +var FIELD_SQRT = /* @__PURE__ */ new WeakMap(); +var _Field = class { + ORDER; + BITS; + BYTES; + isLE; + ZERO = _0n3; + ONE = _1n3; + _lengths; + _mod; + constructor(ORDER, opts = {}) { + if (ORDER <= _1n3) + throw new Error("invalid field: expected ORDER > 1, got " + ORDER); + let _nbitLength = void 0; + this.isLE = false; + if (opts != null && typeof opts === "object") { + if (typeof opts.BITS === "number") + _nbitLength = opts.BITS; + if (typeof opts.sqrt === "function") + Object.defineProperty(this, "sqrt", { value: opts.sqrt, enumerable: true }); + if (typeof opts.isLE === "boolean") + this.isLE = opts.isLE; + if (opts.allowedLengths) + this._lengths = Object.freeze(opts.allowedLengths.slice()); + if (typeof opts.modFromBytes === "boolean") + this._mod = opts.modFromBytes; + } + const { nBitLength, nByteLength } = nLength(ORDER, _nbitLength); + if (nByteLength > 2048) + throw new Error("invalid field: expected ORDER of <= 2048 bytes"); + this.ORDER = ORDER; + this.BITS = nBitLength; + this.BYTES = nByteLength; + Object.freeze(this); + } + create(num) { + return mod(num, this.ORDER); + } + isValid(num) { + if (typeof num !== "bigint") + throw new TypeError("invalid field element: expected bigint, got " + typeof num); + return _0n3 <= num && num < this.ORDER; + } + is0(num) { + return num === _0n3; + } + // is valid and invertible + isValidNot0(num) { + return !this.is0(num) && this.isValid(num); + } + isOdd(num) { + return (num & _1n3) === _1n3; + } + neg(num) { + return mod(-num, this.ORDER); + } + eql(lhs, rhs) { + return lhs === rhs; + } + sqr(num) { + return mod(num * num, this.ORDER); + } + add(lhs, rhs) { + return mod(lhs + rhs, this.ORDER); + } + sub(lhs, rhs) { + return mod(lhs - rhs, this.ORDER); + } + mul(lhs, rhs) { + return mod(lhs * rhs, this.ORDER); + } + pow(num, power) { + return pow(num, power, this.ORDER); + } + div(lhs, rhs) { + return mod(lhs * invert(rhs, this.ORDER), this.ORDER); + } + // Same as above, but doesn't normalize + sqrN(num) { + return num * num; + } + addN(lhs, rhs) { + return lhs + rhs; + } + subN(lhs, rhs) { + return lhs - rhs; + } + mulN(lhs, rhs) { + return lhs * rhs; + } + inv(num) { + return invert(num, this.ORDER); + } + sqrt(num) { + let sqrt = FIELD_SQRT.get(this); + if (!sqrt) + FIELD_SQRT.set(this, sqrt = FpSqrt(this.ORDER)); + return sqrt(this, num); + } + toBytes(num) { + return this.isLE ? numberToBytesLE(num, this.BYTES) : numberToBytesBE(num, this.BYTES); + } + fromBytes(bytes, skipValidation = false) { + abytes2(bytes); + const { _lengths: allowedLengths, BYTES, isLE: isLE2, ORDER, _mod: modFromBytes } = this; + if (allowedLengths) { + if (bytes.length < 1 || !allowedLengths.includes(bytes.length) || bytes.length > BYTES) { + throw new Error("Field.fromBytes: expected " + allowedLengths + " bytes, got " + bytes.length); + } + const padded = new Uint8Array(BYTES); + padded.set(bytes, isLE2 ? 0 : padded.length - bytes.length); + bytes = padded; + } + if (bytes.length !== BYTES) + throw new Error("Field.fromBytes: expected " + BYTES + " bytes, got " + bytes.length); + let scalar = isLE2 ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes); + if (modFromBytes) + scalar = mod(scalar, ORDER); + if (!skipValidation) { + if (!this.isValid(scalar)) + throw new Error("invalid field element: outside of range 0..ORDER"); + } + return scalar; + } + // TODO: we don't need it here, move out to separate fn + invertBatch(lst) { + return FpInvertBatch(this, lst, true); + } + // We can't move this out because Fp6, Fp12 implement it + // and it's unclear what to return in there. + cmov(a, b, condition) { + abool2(condition, "condition"); + return condition ? b : a; + } +}; +function Field(ORDER, opts = {}) { + Object.freeze(_Field.prototype); + return new _Field(ORDER, opts); +} +function getFieldBytesLength(fieldOrder) { + if (typeof fieldOrder !== "bigint") + throw new Error("field order must be bigint"); + if (fieldOrder <= _1n3) + throw new Error("field order must be greater than 1"); + const bitLength = bitLen(fieldOrder - _1n3); + return Math.ceil(bitLength / 8); +} +function getMinHashLength(fieldOrder) { + const length = getFieldBytesLength(fieldOrder); + return length + Math.ceil(length / 2); +} +function mapHashToField(key, fieldOrder, isLE2 = false) { + abytes2(key); + const len = key.length; + const fieldLen = getFieldBytesLength(fieldOrder); + const minLen = Math.max(getMinHashLength(fieldOrder), 16); + if (len < minLen || len > 1024) + throw new Error("expected " + minLen + "-1024 bytes of input, got " + len); + const num = isLE2 ? bytesToNumberLE(key) : bytesToNumberBE(key); + const reduced = mod(num, fieldOrder - _1n3) + _1n3; + return isLE2 ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen); +} + +// tools/reference-apps/light-service/node_modules/@noble/curves/abstract/curve.js +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +var _0n4 = /* @__PURE__ */ BigInt(0); +var _1n4 = /* @__PURE__ */ BigInt(1); +var _4n2 = /* @__PURE__ */ BigInt(4); +var BLIND_BYTES = 16; +var BLIND_BITS = 128; +var FW_WINDOW = 5; +var TABLE_BYTES_MAX = /* @__PURE__ */ (() => 2 ** 31)(); +function validatePointCons(Point) { + const pc = Point; + if (typeof pc !== "function") + throw new TypeError('"Point" expected constructor, got type=' + typeof Point); + afunction(pc.fromAffine, "Point.fromAffine"); + afunction(pc.fromBytes, "Point.fromBytes"); + afunction(pc.fromHex, "Point.fromHex"); + aobject2(pc.BASE, "Point.BASE"); + aobject2(pc.ZERO, "Point.ZERO"); + validateField(pc.Fp); + validateField(pc.Fn); +} +function normalizeZ(c, points) { + validatePointCons(c); + validateMSMPoints(points, c); + const invertedZs = FpInvertBatch(c.Fp, points.map((p) => p.Z)); + return points.map((p, i) => c.fromAffine(p.toAffine(invertedZs[i]))); +} +function validateW(W, bits, min = 1) { + if (!Number.isSafeInteger(W) || W < min || W > bits) + throw new Error("invalid window size, expected [" + min + ".." + bits + "], got W=" + W); +} +function validateTableBytes(numPoints, fpBytes) { + const bytes = numPoints * (4 * fpBytes + 128); + if (bytes > TABLE_BYTES_MAX) + throw new Error("invalid window size: table would need ~" + Math.ceil(bytes / 2 ** 20) + " MiB, max " + TABLE_BYTES_MAX / 2 ** 20 + " MiB"); +} +function probeRandomBytes(randomBytes3, length) { + if (randomBytes3 === void 0) + return void 0; + afunction(randomBytes3, "randomBytes"); + try { + const probe = randomBytes3(length); + if (!isBytes2(probe) || probe.length !== length) + return void 0; + } catch { + return void 0; + } + return randomBytes3; +} +function validateMSMPoints(points, c) { + aarray(points, "points"); + points.forEach((p, i) => { + if (!(p instanceof c)) + throw new Error("invalid point at index " + i); + }); +} +function validateMSMScalars(scalars, field, maxScalar) { + if (!Array.isArray(scalars)) + throw new Error("array of scalars expected"); + scalars.forEach((s, i) => { + const ok = maxScalar === void 0 ? field.isValid(s) : isPosBig(s) && s < maxScalar; + if (!ok) + throw new Error("invalid scalar at index " + i); + }); +} +var pointWindowSizes = /* @__PURE__ */ new WeakMap(); +function getWindowSize(P) { + return pointWindowSizes.get(P) || 1; +} +function oddMultiples(p, size) { + const dbl = p.double(); + const t2 = [p]; + for (let j = 1; j < size; j++) + t2.push(t2[j - 1].add(dbl)); + return t2; +} +function wnafDigits(n, W) { + const size = 2 ** W; + const half = size / 2; + const mask = BigInt(size - 1); + const d = []; + while (n > _0n4) { + let w = 0; + if (n & _1n4) { + w = Number(n & mask); + if (w >= half) + w -= size; + n -= BigInt(w); + } + d.push(w); + n >>= _1n4; + } + return d; +} +function signedWindowDigits(n, W, windows) { + const size = 2 ** W; + const half = size / 2; + const mask = BigInt(size - 1); + const shiftBy = BigInt(W); + const d = []; + for (let w = 0; w < windows; w++) { + let v = Number(n & mask); + n >>= shiftBy; + if (v > half) { + v -= size; + n += _1n4; + } + d.push(v); + } + if (n !== _0n4) + throw new Error("invalid wnaf"); + return d; +} +function wnafWalk(zero, tables, digits) { + let max = 0; + for (const d of digits) + max = Math.max(max, d.length); + let acc = zero; + for (let bit = max - 1; bit >= 0; bit--) { + if (bit !== max - 1) + acc = acc.double(); + for (let i = 0; i < digits.length; i++) { + const w = digits[i][bit]; + if (w) { + const item = tables[i][Math.abs(w) - 1 >> 1]; + acc = acc.add(w < 0 ? item.negate() : item); + } + } + } + return acc; +} +var ScalarMultiplier = class { + Point; + BASE; + ZERO; + randomBytes; + wnafPrecomputes = /* @__PURE__ */ new WeakMap(); + baseCanBeBlinded; + bits; + // Parametrized with a given Point class (not individual point) + constructor(Point, randomBytes3) { + validatePointCons(Point); + this.randomBytes = probeRandomBytes(randomBytes3, BLIND_BYTES); + this.Point = Point; + this.BASE = Point.BASE; + this.ZERO = Point.ZERO; + this.bits = Point.Fn.BITS; + } + /** + * Creates a signed fixed-window wNAF precomputation table: for every window w, the + * multiples `[1..2^(W−1)]⋅2^(w⋅W)⋅P`, flattened. All doublings are baked into the table, + * so cached multiplication is additions-only. `windows = ceil(bits/W) + 1`: the extra + * window absorbs the final carry of signed-digit recoding. + * For a 256-bit curve and W=6, the table is 44⋅32 = 1408 points. + * @param point - Point instance + * @param W - window size + * @param bits - scalar bitlength the table must cover + */ + buildWnafTable(point, W, bits) { + const windows = Math.ceil(bits / W) + 1; + const half = 2 ** (W - 1); + const comp = []; + let base = point; + for (let w = 0; w < windows; w++) { + let acc = base; + for (let i = 0; i < half; i++) { + comp.push(acc); + acc = acc.add(base); + } + base = comp[comp.length - 1].double(); + } + return { W, bits, windows, comp }; + } + /** + * Implements ec multiplication using precomputed signed fixed-window wNAF tables. + * Constant-time: fixed window count with one table addition per window — zero digits feed + * the fake accumulator — and no doublings; the lookup scans the whole window slice. + * Scalar bounds are validated by the public entry points ({@link ScalarMultiplier.mulCT}, + * {@link ScalarMultiplier.mulCTBlinded}, {@link ScalarMultiplier.mulUnsafe}); + * signedWindowDigits throws if `n` exceeds the table. + * @returns real and fake (for const-time) points + */ + wnafCachedCT(precomputes, n) { + const { W, windows, comp } = precomputes; + const half = 2 ** (W - 1); + const digits = signedWindowDigits(n, W, windows); + let p = this.ZERO; + let f = this.BASE; + for (let w = 0; w < windows; w++) { + const digit = digits[w]; + const start = w * half; + const idx = Math.abs(digit) - 1; + let sel = comp[start]; + for (let i = 1; i < half; i++) + sel = i === idx ? comp[start + i] : sel; + const neg = sel.negate(); + if (digit === 0) + f = f.add(comp[start]); + else + p = p.add(digit < 0 ? neg : sel); + } + return { p, f }; + } + // Cache key is point identity plus (W, bits); at most two entries exist per point (public-width + // `Fn.BITS` and blinded `Fn.BITS + BLIND_BITS`). Callers must not reuse the same point with + // incompatible `transform(...)` layouts and expect a separate cache entry. + getWnafPrecomputes(W, point, bits, transform) { + let entries = this.wnafPrecomputes.get(point); + let comp = entries?.find((entry) => entry.W === W && entry.bits === bits); + if (!comp) { + comp = this.buildWnafTable(point, W, bits); + if (typeof transform === "function") + comp = { ...comp, comp: transform(comp.comp) }; + if (!entries) { + entries = []; + this.wnafPrecomputes.set(point, entries); + } + entries.push(comp); + } + return comp; + } + assertPoint(point) { + if (!(point instanceof this.Point)) + throw new TypeError('"point" expected Point instance, got type=' + typeof point); + } + // Shared prologue of the constant-time entry points. Rejects scalar 0: in key/signature-style + // callers a zero scalar means broken upstream plumbing, and concrete Points already reject it. + // Uses inRange instead of Fn.isValidNot0: validateField() only certifies the arithmetic subset. + validateMulInput(point, scalar) { + this.assertPoint(point); + if (!inRange(scalar, _1n4, this.Point.Fn.ORDER)) + throw new Error("invalid scalar"); + } + // Constant-time dispatch shared by mulCT / mulCTBlinded. Un-precomputed points (W===1, e.g. + // ECDH peer keys) skip building a throwaway cached table in favor of a small fixed-window + // multiply. `n` must be < 2^bits. + runCT(point, n, bits, transform) { + const W = getWindowSize(point); + if (W === 1) + return this.fixedWindowCT(point, n, bits); + return this.wnafCachedCT(this.getWnafPrecomputes(W, point, bits, transform), n); + } + mulCT(point, scalar, transform) { + this.validateMulInput(point, scalar); + return this.runCT(point, scalar, this.bits, transform); + } + mulCTBlinded(point, scalar, transform) { + this.validateMulInput(point, scalar); + if (this.randomBytes === void 0) + throw new Error("randomBytes is required for scalar blinding"); + const bits = this.Point.Fn.BITS + BLIND_BITS; + const blind = this.randomBytes(BLIND_BYTES); + if (!isBytes2(blind) || blind.length !== BLIND_BYTES) + throw new Error("randomBytes returned invalid byte array"); + blind[0] = blind[0] & 63 | 128; + const n = scalar + bytesToNumberBE(blind) * this.Point.Fn.ORDER; + return this.runCT(point, n, bits, transform); + } + /** + * Constant-time multiplication `n*point` for an un-precomputed point, via a small fixed window. + * A cached wNAF table only pays off when reused; a flat 2^FW_WINDOW table (`size-1` adds) is + * far cheaper to build for a single use. The point-operation sequence is independent of `n`: + * build the table, then per window exactly FW_WINDOW doublings, a data-oblivious scan over + * every table entry, and one addition (adds the identity when the window digit is 0 — never + * skipped). + * + * `n` must be `< 2^bits`. Assumes complete addition (adding the identity costs the same as any + * add), which holds for the Weierstrass/Edwards point types used here. The table is left in + * projective form (no normalizeZ): normalizing this small a table costs more than the + * mixed-add savings it would buy for a single multiply. + * @returns real point `p`; `f` duplicates it only to match {@link wnafCachedCT}'s return shape + * (this path needs no fake accumulator — its op-count is already scalar-independent). + */ + fixedWindowCT(point, n, bits) { + const W = FW_WINDOW; + const size = 1 << W; + const mask = bitMask(W); + const table = new Array(size); + table[0] = this.ZERO; + for (let i = 1; i < size; i++) + table[i] = table[i - 1].add(point); + const windows = Math.ceil(bits / W); + let acc = this.ZERO; + for (let window = windows - 1; window >= 0; window--) { + if (window !== windows - 1) + for (let d = 0; d < W; d++) + acc = acc.double(); + const digit = Number(n >> BigInt(window * W) & mask); + let sel = table[0]; + for (let i = 1; i < size; i++) + sel = i === digit ? table[i] : sel; + acc = acc.add(sel); + } + return { p: acc, f: acc }; + } + shouldBlind(point, cofactor) { + if (this.randomBytes === void 0) + return false; + if (cofactor === _1n4) + return true; + if (point !== this.BASE) + return false; + if (this.baseCanBeBlinded === void 0) + this.baseCanBeBlinded = this.mulUnsafe(this.BASE, this.Point.Fn.ORDER).is0(); + return this.baseCanBeBlinded; + } + mulSecret(point, scalar, cofactor, transform) { + return this.shouldBlind(point, cofactor) ? this.mulCTBlinded(point, scalar, transform) : this.mulCT(point, scalar, transform); + } + mulUnsafe(point, scalar, transform) { + this.assertPoint(point); + if (!isPosBig(scalar)) + throw new Error("invalid scalar"); + const W = getWindowSize(point); + if (W === 1 || scalar >= this.Point.Fn.ORDER) + return mulAddUnsafe(this.Point, [point], [scalar], true); + const precomputes = this.getWnafPrecomputes(W, point, this.bits, transform); + return this.wnafCachedCT(precomputes, scalar).p; + } + // Remembers the window size used for precomputed wNAF multiplication of the given point + // and drops any previously built tables. Usually only the base point is precomputed. + // W=1 resets the point to the un-precomputed (table-less) paths. + // W is additionally capped so tables stay under ~2 GiB ({@link TABLE_BYTES_MAX}). + setWindowSize(point, W) { + this.assertPoint(point); + validateW(W, this.bits); + const windows = Math.ceil((this.bits + BLIND_BITS) / W) + 1; + validateTableBytes(windows * 2 ** (W - 1), this.Point.Fp.BYTES); + pointWindowSizes.set(point, W); + this.wnafPrecomputes.delete(point); + } + // True when a window size is set: tables themselves are built lazily on first multiply. + hasWindowSize(point) { + return getWindowSize(point) !== 1; + } +}; +function mulAddUnsafe(c, points, scalars, allowOversized = false) { + validatePointCons(c); + validateMSMPoints(points, c); + abool2(allowOversized, "allowOversized"); + validateMSMScalars(scalars, c.Fn, allowOversized ? c.Fn.ORDER ** _4n2 : void 0); + if (points.length !== scalars.length) + throw new Error("arrays of points and scalars must have equal length"); + const tables = points.map((p) => oddMultiples(p, 4)); + const digits = scalars.map((n) => wnafDigits(n, 4)); + return wnafWalk(c.ZERO, tables, digits); +} +function createField(order, field, isLE2) { + if (field) { + if (field.ORDER !== order) + throw new Error("Field.ORDER must match order: Fp == p, Fn == n"); + validateField(field); + return field; + } else { + return Field(order, { isLE: isLE2 }); + } +} +function createCurveFields(type, CURVE, curveOpts = {}, FpFnLE) { + if (type !== "weierstrass" && type !== "edwards") + throw new Error('expected curve type "weierstrass" or "edwards"'); + if (FpFnLE === void 0) + FpFnLE = type === "edwards"; + if (!CURVE || typeof CURVE !== "object") + throw new Error(`expected valid ${type} CURVE object`); + validateObject(curveOpts); + for (const p of ["p", "n", "h"]) { + const val = CURVE[p]; + if (!(isPosBig(val) && val !== _0n4)) + throw new Error(`CURVE.${p} must be positive bigint`); + } + const Fp3 = createField(CURVE.p, curveOpts.Fp, FpFnLE); + const Fn = createField(CURVE.n, curveOpts.Fn, FpFnLE); + const _b = type === "weierstrass" ? "b" : "d"; + const params = ["Gx", "Gy", "a", _b]; + for (const p of params) { + if (!Fp3.isValid(CURVE[p])) + throw new Error(`CURVE.${p} must be valid field element of CURVE.Fp`); + } + CURVE = Object.freeze(Object.assign({}, CURVE)); + return { CURVE, Fp: Fp3, Fn }; +} + +// tools/reference-apps/light-service/node_modules/@noble/curves/abstract/hash-to-curve.js +var _0n5 = /* @__PURE__ */ BigInt(0); +var _1n5 = /* @__PURE__ */ BigInt(1); +var _2n3 = /* @__PURE__ */ BigInt(2); +var _3n2 = /* @__PURE__ */ BigInt(3); +var _4n3 = /* @__PURE__ */ BigInt(4); +var os2ip = bytesToNumberBE; +function i2osp(value, length) { + asafenumber(value); + asafenumber(length); + if (length < 0 || length > 4) + throw new Error("invalid I2OSP length: " + length); + if (value < 0 || value > 2 ** (8 * length) - 1) + throw new Error("invalid I2OSP input: " + value); + const res = Array.from({ length }).fill(0); + for (let i = length - 1; i >= 0; i--) { + res[i] = value & 255; + value >>>= 8; + } + return new Uint8Array(res); +} +function strxor(a, b) { + const arr = new Uint8Array(a.length); + for (let i = 0; i < a.length; i++) { + arr[i] = a[i] ^ b[i]; + } + return arr; +} +function normDST(DST) { + if (!isBytes2(DST) && typeof DST !== "string") + throw new Error("DST must be Uint8Array or ascii string"); + const dst = typeof DST === "string" ? asciiToBytes(DST) : DST; + if (dst.length === 0) + throw new Error("DST must be non-empty"); + return dst; +} +function expand_message_xmd(msg, DST, lenInBytes, H) { + abytes2(msg); + asafenumber(lenInBytes); + if (typeof H !== "function") + throw new Error("expand_message_xmd: expected hash function"); + asafenumber(H.outputLen, "hash.outputLen"); + asafenumber(H.blockLen, "hash.blockLen"); + DST = normDST(DST); + if (DST.length > 255) + DST = H(concatBytes2(asciiToBytes("H2C-OVERSIZE-DST-"), DST)); + const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H; + const ell = Math.ceil(lenInBytes / b_in_bytes); + if (lenInBytes > 65535 || ell > 255) + throw new Error("expand_message_xmd: invalid lenInBytes"); + const DST_prime = concatBytes2(DST, i2osp(DST.length, 1)); + const Z_pad = new Uint8Array(r_in_bytes); + const l_i_b_str = i2osp(lenInBytes, 2); + const b = new Array(ell); + const b_0 = H(concatBytes2(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime)); + b[0] = H(concatBytes2(b_0, i2osp(1, 1), DST_prime)); + for (let i = 1; i < ell; i++) { + const args2 = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime]; + b[i] = H(concatBytes2(...args2)); + } + const pseudo_random_bytes = concatBytes2(...b); + return pseudo_random_bytes.slice(0, lenInBytes); +} +function expand_message_xof(msg, DST, lenInBytes, k, H) { + abytes2(msg); + asafenumber(lenInBytes); + asafenumber(k, "k"); + if (k < 0) + throw new Error("expand_message_xof: invalid k"); + if (typeof H !== "function") + throw new Error("expand_message_xof: expected XOF function"); + if (typeof H.create !== "function") + throw new Error("expand_message_xof: expected XOF create"); + DST = normDST(DST); + if (lenInBytes < 0 || lenInBytes > 65535) + throw new Error("expand_message_xof: invalid lenInBytes"); + if (DST.length > 255) { + const dkLen = Math.ceil(2 * k / 8); + DST = H.create({ dkLen }).update(asciiToBytes("H2C-OVERSIZE-DST-")).update(DST).digest(); + } + if (DST.length > 255) + throw new Error("expand_message_xof: invalid DST"); + return H.create({ dkLen: lenInBytes }).update(msg).update(i2osp(lenInBytes, 2)).update(DST).update(i2osp(DST.length, 1)).digest(); +} +function hash_to_field(msg, count, options) { + validateObject(options, { + p: "bigint", + m: "number", + k: "number", + hash: "function" + }); + const { p, k, m, hash, expand, DST } = options; + asafenumber(hash.outputLen, "valid hash"); + abytes2(msg); + asafenumber(count); + asafenumber(m, "m"); + asafenumber(k, "k"); + if (p <= BigInt(1)) + throw new Error("hash_to_field: expected valid field characteristic"); + if (count < 1) + throw new Error("hash_to_field: expected count >= 1"); + if (m < 1) + throw new Error("hash_to_field: expected m >= 1"); + if (k < 0) + throw new Error("hash_to_field: invalid k"); + const log2p = p.toString(2).length; + const L = Math.ceil((log2p + k) / 8); + const len_in_bytes = count * m * L; + let prb; + if (expand === "xmd") { + prb = expand_message_xmd(msg, DST, len_in_bytes, hash); + } else if (expand === "xof") { + prb = expand_message_xof(msg, DST, len_in_bytes, k, hash); + } else if (expand === "_internal_pass") { + prb = msg; + } else { + throw new Error('expand must be "xmd" or "xof"'); + } + const u = new Array(count); + for (let i = 0; i < count; i++) { + const e = new Array(m); + for (let j = 0; j < m; j++) { + const elm_offset = L * (j + i * m); + const tv = prb.subarray(elm_offset, elm_offset + L); + e[j] = mod(os2ip(tv), p); + } + u[i] = e; + } + return u; +} +function isogenyMap(field, map) { + validateField(field); + aarray(map, "map"); + const coeff = map.map((i, row) => { + aarray(i, "map[" + row + "]"); + if (i.length < 1) + throw new Error("isogenyMap: expected non-empty coefficients"); + return Array.from(i).reverse(); + }); + return (x, y) => { + const [xn, xd, yn, yd] = coeff.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i))); + const isZero = field.is0(xd) || field.is0(yd); + const [xd_inv, yd_inv] = FpInvertBatch(field, [xd, yd], true); + x = field.mul(xn, xd_inv); + y = field.mul(y, field.mul(yn, yd_inv)); + return isZero ? { x: field.ZERO, y: field.ZERO } : { x, y }; + }; +} +var _DST_scalar = "HashToScalar-"; +function createHasher2(Point, mapToCurve, defaults) { + if (typeof mapToCurve !== "function") + throw new Error("mapToCurve() must be defined"); + validateObject(defaults); + const snapshot = (src) => Object.freeze({ + ...src, + DST: isBytes2(src.DST) ? copyBytes2(src.DST) : src.DST, + ...src.encodeDST === void 0 ? {} : { encodeDST: isBytes2(src.encodeDST) ? copyBytes2(src.encodeDST) : src.encodeDST } + }); + const safeDefaults = snapshot(defaults); + const dstOverride = (options) => options && options.DST !== void 0 ? { DST: options.DST } : void 0; + function map(num) { + return Point.fromAffine(mapToCurve(num)); + } + function clear(initial) { + const P = initial.clearCofactor(); + if (P.equals(Point.ZERO)) + return Point.ZERO; + P.assertValidity(); + return P; + } + return Object.freeze({ + get defaults() { + return snapshot(safeDefaults); + }, + Point, + hashToCurve(msg, options) { + const opts = Object.assign({}, safeDefaults, dstOverride(options)); + const u = hash_to_field(msg, 2, opts); + const u0 = map(u[0]); + const u1 = map(u[1]); + return clear(u0.add(u1)); + }, + encodeToCurve(msg, options) { + const optsDst = safeDefaults.encodeDST === void 0 ? {} : { DST: safeDefaults.encodeDST }; + const opts = Object.assign({}, safeDefaults, optsDst, dstOverride(options)); + const u = hash_to_field(msg, 1, opts); + const u0 = map(u[0]); + return clear(u0); + }, + /** See {@link H2CHasher} */ + mapToCurve(scalars) { + if (safeDefaults.m === 1) { + if (typeof scalars !== "bigint") + throw new Error("expected bigint (m=1)"); + return clear(map([scalars])); + } + if (!Array.isArray(scalars)) + throw new Error("expected array of bigints"); + if (scalars.length !== safeDefaults.m) + throw new Error(`expected array of ${safeDefaults.m} bigints`); + for (const i of scalars) + if (typeof i !== "bigint") + throw new Error("expected array of bigints"); + return clear(map(scalars)); + }, + // hash_to_scalar can produce 0: https://www.rfc-editor.org/errata/eid8393 + // RFC 9380, draft-irtf-cfrg-bbs-signatures-08. Default scalar DST is the shared generic + // `HashToScalar-` prefix above unless the caller overrides it per invocation. + hashToScalar(msg, options) { + const N = Point.Fn.ORDER; + const opts = Object.assign({}, safeDefaults, { DST: _DST_scalar }, dstOverride(options), { + p: N, + m: 1 + }); + return hash_to_field(msg, 1, opts)[0][0]; + } + }); +} +function SWUFpSqrtRatio(Fp3, Z) { + const F = validateField(Fp3); + const q = F.ORDER; + let l = _0n5; + for (let o = q - _1n5; o % _2n3 === _0n5; o /= _2n3) + l += _1n5; + const c1 = l; + const _2n_pow_c1_1 = _2n3 << c1 - _1n5 - _1n5; + const _2n_pow_c1 = _2n_pow_c1_1 * _2n3; + const c2 = (q - _1n5) / _2n_pow_c1; + const c3 = (c2 - _1n5) / _2n3; + const c4 = _2n_pow_c1 - _1n5; + const c5 = _2n_pow_c1_1; + const c6 = F.pow(Z, c2); + const c7 = F.pow(Z, (c2 + _1n5) / _2n3); + let sqrtRatio = (u, v) => { + let tv1 = c6; + let tv2 = F.pow(v, c4); + let tv3 = F.sqr(tv2); + tv3 = F.mul(tv3, v); + let tv5 = F.mul(u, tv3); + tv5 = F.pow(tv5, c3); + tv5 = F.mul(tv5, tv2); + tv2 = F.mul(tv5, v); + tv3 = F.mul(tv5, u); + let tv4 = F.mul(tv3, tv2); + tv5 = F.pow(tv4, c5); + let isQR = F.eql(tv5, F.ONE); + tv2 = F.mul(tv3, c7); + tv5 = F.mul(tv4, tv1); + tv3 = F.cmov(tv2, tv3, isQR); + tv4 = F.cmov(tv5, tv4, isQR); + for (let i = c1; i > _1n5; i--) { + let tv52 = i - _2n3; + tv52 = _2n3 << tv52 - _1n5; + let tvv5 = F.pow(tv4, tv52); + const e1 = F.eql(tvv5, F.ONE); + tv2 = F.mul(tv3, tv1); + tv1 = F.mul(tv1, tv1); + tvv5 = F.mul(tv4, tv1); + tv3 = F.cmov(tv2, tv3, e1); + tv4 = F.cmov(tvv5, tv4, e1); + } + return { isValid: !F.is0(v) && (isQR || F.is0(u)), value: tv3 }; + }; + if (F.ORDER % _4n3 === _3n2) { + const c12 = (F.ORDER - _3n2) / _4n3; + const c22 = F.sqrt(F.neg(Z)); + sqrtRatio = (u, v) => { + let tv1 = F.sqr(v); + const tv2 = F.mul(u, v); + tv1 = F.mul(tv1, tv2); + let y1 = F.pow(tv1, c12); + y1 = F.mul(y1, tv2); + const y2 = F.mul(y1, c22); + const tv3 = F.mul(F.sqr(y1), v); + const isQR = F.eql(tv3, u); + let y = F.cmov(y2, y1, isQR); + return { isValid: !F.is0(v) && isQR, value: y }; + }; + } + return sqrtRatio; +} +function mapToCurveSimpleSWU(Fp3, opts) { + const F = validateField(Fp3); + validateObject(opts, {}, {}, "opts"); + const { A, B: B2, Z } = opts; + if (!F.isValidNot0(A) || !F.isValidNot0(B2) || !F.isValid(Z)) + throw new Error("mapToCurveSimpleSWU: invalid opts"); + if (F.eql(Z, F.neg(F.ONE)) || FpIsSquare(F, Z)) + throw new Error("mapToCurveSimpleSWU: invalid opts"); + const x = F.mul(B2, F.inv(F.mul(Z, A))); + const gx = F.add(F.add(F.mul(F.sqr(x), x), F.mul(A, x)), B2); + if (!FpIsSquare(F, gx)) + throw new Error("mapToCurveSimpleSWU: invalid opts"); + const sqrtRatio = SWUFpSqrtRatio(F, Z); + if (!F.isOdd) + throw new Error("Field does not have .isOdd()"); + return (u) => { + let tv1, tv2, tv3, tv4, tv5, tv6, x2, y; + tv1 = F.sqr(u); + tv1 = F.mul(tv1, Z); + tv2 = F.sqr(tv1); + tv2 = F.add(tv2, tv1); + tv3 = F.add(tv2, F.ONE); + tv3 = F.mul(tv3, B2); + tv4 = F.cmov(Z, F.neg(tv2), !F.eql(tv2, F.ZERO)); + tv4 = F.mul(tv4, A); + tv2 = F.sqr(tv3); + tv6 = F.sqr(tv4); + tv5 = F.mul(tv6, A); + tv2 = F.add(tv2, tv5); + tv2 = F.mul(tv2, tv3); + tv6 = F.mul(tv6, tv4); + tv5 = F.mul(tv6, B2); + tv2 = F.add(tv2, tv5); + x2 = F.mul(tv1, tv3); + const { isValid, value } = sqrtRatio(tv2, tv6); + y = F.mul(tv1, u); + y = F.mul(y, value); + x2 = F.cmov(x2, tv3, isValid); + y = F.cmov(y, value, isValid); + const e1 = F.isOdd(u) === F.isOdd(y); + y = F.cmov(F.neg(y), y, e1); + const tv4_inv = FpInvertBatch(F, [tv4], true)[0]; + x2 = F.mul(x2, tv4_inv); + return { x: x2, y }; + }; +} + +// tools/reference-apps/light-service/node_modules/@noble/curves/abstract/weierstrass.js +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +var divNearest = (num, den) => (num + (num >= 0 ? den : -den) / _2n4) / den; +function _splitEndoScalar(k, basis, n) { + aInRange("scalar", k, _0n6, n); + const [[a1, b1], [a2, b2]] = basis; + const c1 = divNearest(b2 * k, n); + const c2 = divNearest(-b1 * k, n); + let k1 = k - c1 * a1 - c2 * a2; + let k2 = -c1 * b1 - c2 * b2; + const k1neg = k1 < _0n6; + const k2neg = k2 < _0n6; + if (k1neg) + k1 = -k1; + if (k2neg) + k2 = -k2; + const MAX_NUM = bitMask(Math.ceil(bitLen(n) / 2)) + _1n6; + if (k1 < _0n6 || k1 >= MAX_NUM || k2 < _0n6 || k2 >= MAX_NUM) { + throw new Error("splitScalar (endomorphism): failed for k"); + } + return { k1neg, k1, k2neg, k2 }; +} +var _0n6 = /* @__PURE__ */ BigInt(0); +var _1n6 = /* @__PURE__ */ BigInt(1); +var _2n4 = /* @__PURE__ */ BigInt(2); +var _3n3 = /* @__PURE__ */ BigInt(3); +var _4n4 = /* @__PURE__ */ BigInt(4); +function weierstrass(params, extraOpts = {}) { + const validated = createCurveFields("weierstrass", params, extraOpts); + const Fp3 = validated.Fp; + const Fn = validated.Fn; + let CURVE = validated.CURVE; + const { h: cofactor, n: CURVE_ORDER } = CURVE; + validateObject(extraOpts, {}, { + allowInfinityPoint: "boolean", + clearCofactor: "function", + isTorsionFree: "function", + fromBytes: "function", + toBytes: "function", + endo: "object", + randomBytes: "function" + }); + const { endo: endoOpts, allowInfinityPoint, clearCofactor, isTorsionFree, fromBytes, toBytes } = extraOpts; + const randomBytes3 = extraOpts.randomBytes === void 0 ? randomBytes2 : extraOpts.randomBytes; + if (endoOpts) { + if (!Fp3.is0(CURVE.a) || typeof endoOpts.beta !== "bigint" || !Array.isArray(endoOpts.basises)) { + throw new Error('invalid endo: expected "beta": bigint and "basises": array'); + } + } + const endo = endoOpts ? { + beta: endoOpts.beta, + basises: endoOpts.basises.map((basis) => [...basis]) + } : void 0; + const lengths = getWLengths(Fp3, Fn); + function assertCompressionIsSupported() { + if (!Fp3.isOdd) + throw new Error("compression is not supported: Field does not have .isOdd()"); + } + function pointToBytes(_c, point, isCompressed) { + if (point.is0()) { + if (!allowInfinityPoint) + throw new Error("bad point: ZERO"); + return Uint8Array.of(0); + } + const { x, y } = point.toAffine(); + const bx = Fp3.toBytes(x); + abool2(isCompressed, "isCompressed"); + if (isCompressed) { + assertCompressionIsSupported(); + const hasEvenY = !Fp3.isOdd(y); + return concatBytes2(pprefix(hasEvenY), bx); + } else { + return concatBytes2(Uint8Array.of(4), bx, Fp3.toBytes(y)); + } + } + function pointFromBytes(bytes) { + abytes2(bytes, void 0, "Point"); + const { publicKey: comp, publicKeyUncompressed: uncomp } = lengths; + const length = bytes.length; + const head = bytes[0]; + const tail = bytes.subarray(1); + if (allowInfinityPoint && length === 1 && head === 0) + return { x: Fp3.ZERO, y: Fp3.ZERO }; + if (length === comp && (head === 2 || head === 3)) { + const x = Fp3.fromBytes(tail); + if (!Fp3.isValid(x)) + throw new Error("bad point: is not on curve, wrong x"); + const y2 = weierstrassEquation(x); + let y; + try { + y = Fp3.sqrt(y2); + } catch (sqrtError) { + const err = sqrtError instanceof Error ? ": " + sqrtError.message : ""; + throw new Error("bad point: is not on curve, sqrt error" + err); + } + assertCompressionIsSupported(); + const evenY = Fp3.isOdd(y); + const evenH = (head & 1) === 1; + if (evenH !== evenY) + y = Fp3.neg(y); + return { x, y }; + } else if (length === uncomp && head === 4) { + const L = Fp3.BYTES; + const x = Fp3.fromBytes(tail.subarray(0, L)); + const y = Fp3.fromBytes(tail.subarray(L, L * 2)); + if (!isValidXY(x, y)) + throw new Error("bad point: is not on curve"); + return { x, y }; + } else { + throw new Error(`bad point: got length ${length}, expected compressed=${comp} or uncompressed=${uncomp}`); + } + } + const encodePoint = toBytes === void 0 ? pointToBytes : toBytes; + const decodePoint = fromBytes === void 0 ? pointFromBytes : fromBytes; + const b3 = Fp3.mul(CURVE.b, _3n3); + const mulA = Fp3.is0(CURVE.a) ? (_) => Fp3.ZERO : (x) => Fp3.mul(CURVE.a, x); + function weierstrassEquation(x) { + const x2 = Fp3.sqr(x); + const x3 = Fp3.mul(x2, x); + return Fp3.add(Fp3.add(x3, Fp3.mul(x, CURVE.a)), CURVE.b); + } + function isValidXY(x, y) { + const left = Fp3.sqr(y); + const right = weierstrassEquation(x); + return Fp3.eql(left, right); + } + if (!isValidXY(CURVE.Gx, CURVE.Gy)) + throw new Error("bad curve params: generator point"); + const _4a3 = Fp3.mul(Fp3.pow(CURVE.a, _3n3), _4n4); + const _27b2 = Fp3.mul(Fp3.sqr(CURVE.b), BigInt(27)); + if (Fp3.is0(Fp3.add(_4a3, _27b2))) + throw new Error("bad curve params: a or b"); + function acoord(title, n, banZero = false) { + if (!Fp3.isValid(n) || banZero && Fp3.is0(n)) + throw new Error(`bad point coordinate ${title}`); + return typeof n === "object" && n !== null ? Fp3.create(n) : n; + } + function aprjpoint(other) { + if (!(other instanceof Point)) + throw new Error("Weierstrass Point expected"); + } + function splitEndoScalarN(k) { + if (!endo || !endo.basises) + throw new Error("no endo"); + return _splitEndoScalar(k, endo.basises, Fn.ORDER); + } + function pushWnafPair(points, scalars, p, k) { + if (!Fn.isValid(k)) + throw new RangeError("invalid scalar: out of range"); + if (endo) { + const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(k); + const psi = new Point(Fp3.mul(p.X, endo.beta), p.Y, p.Z); + points.push(k1neg ? p.negate() : p, k2neg ? psi.negate() : psi); + scalars.push(k1, k2); + } else { + points.push(p); + scalars.push(k); + } + } + const validityCache = /* @__PURE__ */ new WeakSet(); + class Point { + static BASE = new Point(CURVE.Gx, CURVE.Gy, Fp3.ONE); + static ZERO = new Point(Fp3.ZERO, Fp3.ONE, Fp3.ZERO); + static Fp = Fp3; + static Fn = Fn; + X; + Y; + Z; + /** Does NOT validate if the point is valid. Use `.assertValidity()`. */ + constructor(X, Y, Z) { + this.X = acoord("x", X); + this.Y = acoord("y", Y, true); + this.Z = acoord("z", Z); + Object.freeze(this); + } + static CURVE() { + return CURVE; + } + /** Does NOT validate if the point is valid. Use `.assertValidity()`. */ + static fromAffine(p) { + const { x, y } = p || {}; + if (!p || !Fp3.isValid(x) || !Fp3.isValid(y)) + throw new Error("invalid affine point"); + if (p instanceof Point) + throw new Error("projective point not allowed"); + if (Fp3.is0(x) && Fp3.is0(y)) + return Point.ZERO; + return new Point(x, y, Fp3.ONE); + } + static fromBytes(bytes) { + const P = Point.fromAffine(decodePoint(abytes2(bytes, void 0, "point"))); + P.assertValidity(); + return P; + } + static fromHex(hex) { + return Point.fromBytes(hexToBytes2(hex)); + } + get x() { + return this.toAffine().x; + } + get y() { + return this.toAffine().y; + } + /** + * @param isLazy - true will defer table computation until the first multiplication + */ + precompute(windowSize = 6, isLazy = true) { + wnaf.setWindowSize(this, windowSize); + if (!isLazy) + this.multiply(_3n3); + return this; + } + // TODO: return `this` + /** A point on curve is valid if it conforms to equation. */ + assertValidity() { + const p = this; + if (p.is0()) { + if (allowInfinityPoint && Fp3.is0(p.X) && Fp3.eql(p.Y, Fp3.ONE) && Fp3.is0(p.Z)) + return; + throw new Error("bad point: ZERO"); + } + if (validityCache.has(p)) + return; + const { x, y } = p.toAffine(); + if (!Fp3.isValid(x) || !Fp3.isValid(y)) + throw new Error("bad point: x or y not field elements"); + if (!isValidXY(x, y)) + throw new Error("bad point: equation left != right"); + if (!p.isTorsionFree()) + throw new Error("bad point: not in prime-order subgroup"); + validityCache.add(p); + } + hasEvenY() { + const { y } = this.toAffine(); + if (!Fp3.isOdd) + throw new Error("Field doesn't support isOdd"); + return !Fp3.isOdd(y); + } + /** Compare one point to another. */ + equals(other) { + aprjpoint(other); + const { X: X1, Y: Y1, Z: Z1 } = this; + const { X: X2, Y: Y2, Z: Z2 } = other; + const U1 = Fp3.eql(Fp3.mul(X1, Z2), Fp3.mul(X2, Z1)); + const U2 = Fp3.eql(Fp3.mul(Y1, Z2), Fp3.mul(Y2, Z1)); + return U1 && U2; + } + /** Flips point to one corresponding to (x, -y) in Affine coordinates. */ + negate() { + return new Point(this.X, Fp3.neg(this.Y), this.Z); + } + // Renes-Costello-Batina exception-free doubling formula. + // There is 30% faster Jacobian formula, but it is not complete. + // https://eprint.iacr.org/2015/1060, algorithm 3 + // Cost: 8M + 3S + 3*a + 2*b3 + 15add. + double() { + const { X: X1, Y: Y1, Z: Z1 } = this; + let X3 = Fp3.ZERO, Y3 = Fp3.ZERO, Z3 = Fp3.ZERO; + let t0 = Fp3.mul(X1, X1); + let t1 = Fp3.mul(Y1, Y1); + let t2 = Fp3.mul(Z1, Z1); + let t3 = Fp3.mul(X1, Y1); + t3 = Fp3.add(t3, t3); + Z3 = Fp3.mul(X1, Z1); + Z3 = Fp3.add(Z3, Z3); + X3 = mulA(Z3); + Y3 = Fp3.mul(b3, t2); + Y3 = Fp3.add(X3, Y3); + X3 = Fp3.sub(t1, Y3); + Y3 = Fp3.add(t1, Y3); + Y3 = Fp3.mul(X3, Y3); + X3 = Fp3.mul(t3, X3); + Z3 = Fp3.mul(b3, Z3); + t2 = mulA(t2); + t3 = Fp3.sub(t0, t2); + t3 = mulA(t3); + t3 = Fp3.add(t3, Z3); + Z3 = Fp3.add(t0, t0); + t0 = Fp3.add(Z3, t0); + t0 = Fp3.add(t0, t2); + t0 = Fp3.mul(t0, t3); + Y3 = Fp3.add(Y3, t0); + t2 = Fp3.mul(Y1, Z1); + t2 = Fp3.add(t2, t2); + t0 = Fp3.mul(t2, t3); + X3 = Fp3.sub(X3, t0); + Z3 = Fp3.mul(t2, t1); + Z3 = Fp3.add(Z3, Z3); + Z3 = Fp3.add(Z3, Z3); + return new Point(X3, Y3, Z3); + } + // Renes-Costello-Batina exception-free addition formula. + // There is 30% faster Jacobian formula, but it is not complete. + // https://eprint.iacr.org/2015/1060, algorithm 1 + // Cost: 12M + 0S + 3*a + 3*b3 + 23add. + add(other) { + aprjpoint(other); + const { X: X1, Y: Y1, Z: Z1 } = this; + const { X: X2, Y: Y2, Z: Z2 } = other; + let X3 = Fp3.ZERO, Y3 = Fp3.ZERO, Z3 = Fp3.ZERO; + let t0 = Fp3.mul(X1, X2); + let t1 = Fp3.mul(Y1, Y2); + let t2 = Fp3.mul(Z1, Z2); + let t3 = Fp3.add(X1, Y1); + let t4 = Fp3.add(X2, Y2); + t3 = Fp3.mul(t3, t4); + t4 = Fp3.add(t0, t1); + t3 = Fp3.sub(t3, t4); + t4 = Fp3.add(X1, Z1); + let t5 = Fp3.add(X2, Z2); + t4 = Fp3.mul(t4, t5); + t5 = Fp3.add(t0, t2); + t4 = Fp3.sub(t4, t5); + t5 = Fp3.add(Y1, Z1); + X3 = Fp3.add(Y2, Z2); + t5 = Fp3.mul(t5, X3); + X3 = Fp3.add(t1, t2); + t5 = Fp3.sub(t5, X3); + Z3 = mulA(t4); + X3 = Fp3.mul(b3, t2); + Z3 = Fp3.add(X3, Z3); + X3 = Fp3.sub(t1, Z3); + Z3 = Fp3.add(t1, Z3); + Y3 = Fp3.mul(X3, Z3); + t1 = Fp3.add(t0, t0); + t1 = Fp3.add(t1, t0); + t2 = mulA(t2); + t4 = Fp3.mul(b3, t4); + t1 = Fp3.add(t1, t2); + t2 = Fp3.sub(t0, t2); + t2 = mulA(t2); + t4 = Fp3.add(t4, t2); + t0 = Fp3.mul(t1, t4); + Y3 = Fp3.add(Y3, t0); + t0 = Fp3.mul(t5, t4); + X3 = Fp3.mul(t3, X3); + X3 = Fp3.sub(X3, t0); + t0 = Fp3.mul(t3, t1); + Z3 = Fp3.mul(t5, Z3); + Z3 = Fp3.add(Z3, t0); + return new Point(X3, Y3, Z3); + } + subtract(other) { + aprjpoint(other); + return this.add(other.negate()); + } + is0() { + return this.equals(Point.ZERO); + } + /** + * Constant time multiplication. + * Uses precomputed tables (signed fixed-window wNAF) when available. + * Uses scalar blinding and avoids endomorphism splitting in the secret-scalar path. + * @param scalar - by which the point would be multiplied + * @returns New point + */ + multiply(scalar) { + if (!Fn.isValidNot0(scalar)) + throw new RangeError("invalid scalar: out of range"); + const { p, f } = wnaf.mulSecret(this, scalar, cofactor, normalize); + return normalize([p, f])[0]; + } + /** + * Non-constant-time multiplication. Uses width-4 wNAF with GLV endomorphism splitting + * when available (two half-width scalars sharing one halved doubling chain). + * It's faster, but should only be used when you don't care about + * an exposed secret key e.g. sig verification, which works over *public* keys. + */ + multiplyUnsafe(scalar) { + const p = this; + const sc = scalar; + if (!Fn.isValid(sc)) + throw new RangeError("invalid scalar: out of range"); + if (sc === _0n6 || p.is0()) + return Point.ZERO; + if (sc === _1n6) + return p; + if (wnaf.hasWindowSize(this)) + return wnaf.mulUnsafe(p, sc, normalize); + const points = []; + const scalars = []; + pushWnafPair(points, scalars, p, sc); + return mulAddUnsafe(Point, points, scalars); + } + /** + * Non-constant-time double-scalar multiplication `a⋅this + b⋅other` (Strauss–Shamir). + * Both walks share one doubling chain via {@link mulAddUnsafe}, and GLV endomorphism + * (when available) halves the chain again by splitting each scalar into two half-width + * parts. Used by ECDSA verification and public-key recovery for `R = u1⋅G + u2⋅P`. + * Only for public scalars. + */ + mulAddUnsafe(a, other, b) { + aprjpoint(other); + const points = []; + const scalars = []; + pushWnafPair(points, scalars, this, a); + pushWnafPair(points, scalars, other, b); + return mulAddUnsafe(Point, points, scalars); + } + /** + * Converts Projective point to affine (x, y) coordinates. + * (X, Y, Z) ∋ (x=X/Z, y=Y/Z). + * @param invertedZ - Z^-1 (inverted zero) - optional, precomputation is useful for invertBatch + */ + toAffine(invertedZ) { + const p = this; + let iz = invertedZ; + if (iz != null && !Fp3.isValid(iz)) + throw new RangeError('"invertedZ" expected valid field element'); + const { X, Y, Z } = p; + if (Fp3.eql(Z, Fp3.ONE)) + return { x: X, y: Y }; + const is0 = p.is0(); + if (iz == null) + iz = is0 ? Fp3.ONE : Fp3.inv(Z); + const x = Fp3.mul(X, iz); + const y = Fp3.mul(Y, iz); + const zz = Fp3.mul(Z, iz); + if (is0) + return { x: Fp3.ZERO, y: Fp3.ZERO }; + if (!Fp3.eql(zz, Fp3.ONE)) + throw new Error("invZ was invalid"); + return { x, y }; + } + /** + * Checks whether Point is free of torsion elements (is in prime subgroup). + * Always torsion-free for cofactor=1 curves. + */ + isTorsionFree() { + if (cofactor === _1n6) + return true; + if (isTorsionFree) + return isTorsionFree(Point, this); + return wnaf.mulUnsafe(this, CURVE_ORDER).is0(); + } + clearCofactor() { + if (cofactor === _1n6) + return this; + if (clearCofactor) + return clearCofactor(Point, this); + return this.multiplyUnsafe(cofactor); + } + isSmallOrder() { + if (cofactor === _1n6) + return this.is0(); + return this.clearCofactor().is0(); + } + toBytes(isCompressed = true) { + abool2(isCompressed, "isCompressed"); + this.assertValidity(); + return encodePoint(Point, this, isCompressed); + } + toHex(isCompressed = true) { + return bytesToHex2(this.toBytes(isCompressed)); + } + toString() { + return ``; + } + } + const normalize = (points) => normalizeZ(Point, points); + const wnaf = new ScalarMultiplier(Point, randomBytes3); + if (wnaf.bits >= 6) + Point.BASE.precompute(6); + Object.freeze(Point.prototype); + Object.freeze(Point); + return Point; +} +function pprefix(hasEvenY) { + return Uint8Array.of(hasEvenY ? 2 : 3); +} +function getWLengths(Fp3, Fn) { + return { + secretKey: Fn.BYTES, + publicKey: 1 + Fp3.BYTES, + publicKeyUncompressed: 1 + 2 * Fp3.BYTES, + publicKeyHasPrefix: true, + // Raw compact `(r || s)` signature width; DER and recovered signatures use + // different lengths outside this helper. + signature: 2 * Fn.BYTES + }; +} + +// tools/reference-apps/light-service/node_modules/@noble/curves/abstract/bls.js +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +var _0n7 = BigInt(0); +var _1n7 = BigInt(1); +var _2n5 = BigInt(2); +var _3n4 = BigInt(3); +function NAfDecomposition(a) { + const res = []; + for (; a > _1n7; a >>= _1n7) { + if ((a & _1n7) === _0n7) + res.unshift(0); + else if ((a & _3n4) === _3n4) { + res.unshift(-1); + a += _1n7; + } else + res.unshift(1); + } + return res; +} +function aNonEmpty(arr) { + if (!Array.isArray(arr) || arr.length === 0) + throw new Error("expected non-empty array"); +} +function createBlsPairing(fields2, G1, G2, params) { + validateObject(fields2, { Fp: "object", Fr: "object", Fp2: "object", Fp12: "object" }, { Fp6: "object" }, "fields"); + if (typeof G1 !== "function") + throw new TypeError('"G1_Point" expected point constructor, got type=' + typeof G1); + if (typeof G2 !== "function") + throw new TypeError('"G2_Point" expected point constructor, got type=' + typeof G2); + validateObject(params, { ateLoopSize: "bigint", xNegative: "boolean", twistType: "string" }, { randomBytes: "function", postPrecompute: "function" }, "params"); + const { Fp: Fp3, Fr, Fp2: Fp22, Fp12: Fp122 } = fields2; + const { twistType, ateLoopSize, xNegative, postPrecompute } = params; + const fp22 = (c0, c1) => ({ c0, c1 }); + const fp2f = ({ c0, c1 }) => Object.freeze({ c0, c1 }); + const add2 = (a, b) => fp22(Fp3.add(a.c0, b.c0), Fp3.add(a.c1, b.c1)); + const sub2 = (a, b) => fp22(Fp3.sub(a.c0, b.c0), Fp3.sub(a.c1, b.c1)); + const mul2 = (a, b) => { + const t0 = Fp3.mul(a.c0, b.c0); + const t1 = Fp3.mul(a.c1, b.c1); + return fp22(Fp3.sub(t0, t1), Fp3.sub(Fp3.mul(Fp3.add(a.c0, a.c1), Fp3.add(b.c0, b.c1)), Fp3.add(t0, t1))); + }; + const mul2ByFp = (a, rhs) => fp22(Fp3.mul(a.c0, rhs), Fp3.mul(a.c1, rhs)); + const mul2ByNonresidue = (a) => Fp22.mulByNonresidue(a); + const mul014ByLine = ({ c0: f0, c1: f1 }, o0, l1, l4, Px, Py) => { + const o1 = mul2ByFp(l1, Px); + const o4 = mul2ByFp(l4, Py); + const { c0: a0, c1: a1, c2: a2 } = f0; + const { c0: b0, c1: b1, c2: b2 } = f1; + const t0_0 = mul2(a0, o0); + const t0_1 = mul2(a1, o1); + const t0_c0 = add2(mul2ByNonresidue(sub2(mul2(add2(a1, a2), o1), t0_1)), t0_0); + const t0_c1 = sub2(sub2(mul2(add2(o0, o1), add2(a0, a1)), t0_0), t0_1); + const t0_c2 = add2(sub2(mul2(add2(a0, a2), o0), t0_0), t0_1); + const t1_c0 = mul2ByNonresidue(mul2(b2, o4)); + const t1_c1 = mul2(b0, o4); + const t1_c2 = mul2(b1, o4); + const s0 = add2(a0, b0); + const s1 = add2(a1, b1); + const s2 = add2(a2, b2); + const o14 = add2(o1, o4); + const t2_0 = mul2(s0, o0); + const t2_1 = mul2(s1, o14); + const t2_c0 = add2(mul2ByNonresidue(sub2(mul2(add2(s1, s2), o14), t2_1)), t2_0); + const t2_c1 = sub2(sub2(mul2(add2(o0, o14), add2(s0, s1)), t2_0), t2_1); + const t2_c2 = add2(sub2(mul2(add2(s0, s2), o0), t2_0), t2_1); + return Object.freeze({ + c0: Object.freeze({ + c0: fp2f(add2(mul2ByNonresidue(t1_c2), t0_c0)), + c1: fp2f(add2(t1_c0, t0_c1)), + c2: fp2f(add2(t1_c1, t0_c2)) + }), + c1: Object.freeze({ + c0: fp2f(sub2(sub2(t2_c0, t0_c0), t1_c0)), + c1: fp2f(sub2(sub2(t2_c1, t0_c1), t1_c1)), + c2: fp2f(sub2(sub2(t2_c2, t0_c2), t1_c2)) + }) + }); + }; + const mul034ByLine = ({ c0: f0, c1: f1 }, l0, l3, o4, Px, Py) => { + const o0 = mul2ByFp(l0, Py); + const o3 = mul2ByFp(l3, Px); + const { c0: a0, c1: a1, c2: a2 } = f0; + const { c0: b0, c1: b1, c2: b2 } = f1; + const a_c0 = mul2(a0, o0); + const a_c1 = mul2(a1, o0); + const a_c2 = mul2(a2, o0); + const b0m = mul2(b0, o3); + const b1m = mul2(b1, o4); + const b_c0 = add2(mul2ByNonresidue(sub2(mul2(add2(b1, b2), o4), b1m)), b0m); + const b_c1 = sub2(sub2(mul2(add2(o3, o4), add2(b0, b1)), b0m), b1m); + const b_c2 = add2(sub2(mul2(add2(b0, b2), o3), b0m), b1m); + const s0 = add2(a0, b0); + const s1 = add2(a1, b1); + const s2 = add2(a2, b2); + const o03 = add2(o0, o3); + const e0m = mul2(s0, o03); + const e1m = mul2(s1, o4); + const e_c0 = add2(mul2ByNonresidue(sub2(mul2(add2(s1, s2), o4), e1m)), e0m); + const e_c1 = sub2(sub2(mul2(add2(o03, o4), add2(s0, s1)), e0m), e1m); + const e_c2 = add2(sub2(mul2(add2(s0, s2), o03), e0m), e1m); + return Object.freeze({ + c0: Object.freeze({ + c0: fp2f(add2(mul2ByNonresidue(b_c2), a_c0)), + c1: fp2f(add2(b_c0, a_c1)), + c2: fp2f(add2(b_c1, a_c2)) + }), + c1: Object.freeze({ + c0: fp2f(sub2(sub2(e_c0, a_c0), b_c0)), + c1: fp2f(sub2(sub2(e_c1, a_c1), b_c1)), + c2: fp2f(sub2(sub2(e_c2, a_c2), b_c2)) + }) + }); + }; + let lineFunction; + if (twistType === "multiplicative") { + lineFunction = (c0, c1, c2, f, Px, Py) => mul014ByLine(f, c0, c1, c2, Px, Py); + } else if (twistType === "divisive") { + lineFunction = (c0, c1, c2, f, Px, Py) => mul034ByLine(f, c2, c1, c0, Px, Py); + } else + throw new Error("bls: unknown twist type"); + const Fp2div2 = Fp22.div(Fp22.ONE, Fp22.mul(Fp22.ONE, _2n5)); + function pointDouble(ell, Rx, Ry, Rz) { + const t0 = Fp22.sqr(Ry); + const t1 = Fp22.sqr(Rz); + const t2 = Fp22.mulByB(Fp22.mul(t1, _3n4)); + const t3 = Fp22.mul(t2, _3n4); + const t4 = Fp22.sub(Fp22.sub(Fp22.sqr(Fp22.add(Ry, Rz)), t1), t0); + const c0 = Fp22.sub(t2, t0); + const c1 = Fp22.mul(Fp22.sqr(Rx), _3n4); + const c2 = Fp22.neg(t4); + ell.push([c0, c1, c2]); + Rx = Fp22.mul(Fp22.mul(Fp22.mul(Fp22.sub(t0, t3), Rx), Ry), Fp2div2); + Ry = Fp22.sub(Fp22.sqr(Fp22.mul(Fp22.add(t0, t3), Fp2div2)), Fp22.mul(Fp22.sqr(t2), _3n4)); + Rz = Fp22.mul(t0, t4); + return { Rx, Ry, Rz }; + } + function pointAdd(ell, Rx, Ry, Rz, Qx, Qy) { + const t0 = Fp22.sub(Ry, Fp22.mul(Qy, Rz)); + const t1 = Fp22.sub(Rx, Fp22.mul(Qx, Rz)); + const c0 = Fp22.sub(Fp22.mul(t0, Qx), Fp22.mul(t1, Qy)); + const c1 = Fp22.neg(t0); + const c2 = t1; + ell.push([c0, c1, c2]); + const t2 = Fp22.sqr(t1); + const t3 = Fp22.mul(t2, t1); + const t4 = Fp22.mul(t2, Rx); + const t5 = Fp22.add(Fp22.sub(t3, Fp22.mul(t4, _2n5)), Fp22.mul(Fp22.sqr(t0), Rz)); + Rx = Fp22.mul(t1, t5); + Ry = Fp22.sub(Fp22.mul(Fp22.sub(t4, t5), t0), Fp22.mul(t3, Ry)); + Rz = Fp22.mul(Rz, t3); + return { Rx, Ry, Rz }; + } + const ATE_NAF = NAfDecomposition(ateLoopSize); + const calcPairingPrecomputes = (point) => { + if (!(point instanceof G2)) + throw new TypeError('"point" expected G2 point, got type=' + typeof point); + const p = point; + const { x, y } = p.toAffine(); + const Qx = x, Qy = y, negQy = Fp22.neg(y); + let Rx = Qx, Ry = Qy, Rz = Fp22.ONE; + const ell = []; + for (const bit of ATE_NAF) { + const cur = []; + ({ Rx, Ry, Rz } = pointDouble(cur, Rx, Ry, Rz)); + if (bit) + ({ Rx, Ry, Rz } = pointAdd(cur, Rx, Ry, Rz, Qx, bit === -1 ? negQy : Qy)); + ell.push(cur); + } + if (postPrecompute) { + const last = ell[ell.length - 1]; + postPrecompute(Rx, Ry, Rz, Qx, Qy, pointAdd.bind(null, last)); + } + return ell; + }; + function millerLoopBatch(pairs, withFinalExponent = false) { + aarray(pairs, "pairs", (pair, title) => { + aarray(pair, title); + if (pair.length !== 3) + throw new TypeError(`"${title}" expected precompute tuple`); + aarray(pair[0], title + "[0]"); + }); + let f12 = Fp122.ONE; + if (pairs.length) { + const ellLen = pairs[0][0].length; + for (let i = 0; i < ellLen; i++) { + if (i !== 0) + f12 = Fp122.sqr(f12); + for (const [ell, Px, Py] of pairs) { + for (const [c0, c1, c2] of ell[i]) + f12 = lineFunction(c0, c1, c2, f12, Px, Py); + } + } + } + if (xNegative) + f12 = Fp122.conjugate(f12); + return withFinalExponent ? Fp122.finalExponentiate(f12) : f12; + } + function pairingBatch(pairs, withFinalExponent = true) { + aarray(pairs, "pairs"); + const res = []; + for (let i = 0; i < pairs.length; i++) { + const pair = pairs[i]; + validateObject(pair, { g1: "object", g2: "object" }, {}, "pairs[" + i + "]"); + const { g1: g12, g2: g22 } = pair; + if (!(g12 instanceof G1)) + throw new TypeError('"pairs[' + i + '].g1" expected G1 point, got type=' + typeof g12); + if (!(g22 instanceof G2)) + throw new TypeError('"pairs[' + i + '].g2" expected G2 point, got type=' + typeof g22); + if (g12.is0() || g22.is0()) + throw new Error("pairing is not available for ZERO point"); + g12.assertValidity(); + g22.assertValidity(); + const Qa = g12.toAffine(); + res.push([calcPairingPrecomputes(g22), Qa.x, Qa.y]); + } + return millerLoopBatch(res, withFinalExponent); + } + function pairing(Q, P, withFinalExponent = true) { + if (!(Q instanceof G1)) + throw new TypeError('"Q" expected G1 point, got type=' + typeof Q); + if (!(P instanceof G2)) + throw new TypeError('"P" expected G2 point, got type=' + typeof P); + return pairingBatch([{ g1: Q, g2: P }], withFinalExponent); + } + const lengths = { + seed: getMinHashLength(Fr.ORDER) + }; + const rand = params.randomBytes === void 0 ? randomBytes2 : params.randomBytes; + const randomSecretKey = (seed) => { + seed = seed === void 0 ? rand(lengths.seed) : seed; + abytes2(seed, lengths.seed, "seed"); + return mapHashToField(seed, Fr.ORDER); + }; + Object.freeze(lengths); + return { + lengths, + Fr, + Fp12: Fp122, + // NOTE: we re-export Fp12 here because pairing results are Fp12! + millerLoopBatch, + pairing, + pairingBatch, + calcPairingPrecomputes, + randomSecretKey + }; +} +function createBlsSig(blsPairing, PubPoint, SigPoint, isSigG1, hashToSigCurve, SignatureCoder) { + const { Fr, Fp12: Fp122, pairingBatch, randomSecretKey, lengths } = blsPairing; + if (!SignatureCoder) { + SignatureCoder = { + fromBytes: notImplemented, + fromHex: notImplemented, + toBytes: notImplemented, + toHex: notImplemented + }; + } + const sigCoder = Object.freeze({ ...SignatureCoder }); + function normPub(point) { + return point instanceof PubPoint ? point : PubPoint.fromBytes(point); + } + function normSig(point) { + return point instanceof SigPoint ? point : sigCoder.fromBytes(point); + } + function amsg(m) { + if (!(m instanceof SigPoint)) + throw new Error(`expected valid message hashed to ${!isSigG1 ? "G2" : "G1"} curve`); + return m; + } + const pair = !isSigG1 ? (a, b) => ({ g1: a, g2: b }) : (a, b) => ({ g1: b, g2: a }); + return Object.freeze({ + lengths: Object.freeze({ ...lengths, secretKey: Fr.BYTES }), + keygen(seed) { + const secretKey = randomSecretKey(seed); + const publicKey = this.getPublicKey(secretKey); + return { secretKey, publicKey }; + }, + // P = pk x G + getPublicKey(secretKey) { + let sec; + try { + sec = PubPoint.Fn.fromBytes(secretKey); + } catch (error) { + throw new Error("invalid private key: " + typeof secretKey, { cause: error }); + } + return PubPoint.BASE.multiply(sec); + }, + // S = pk x H(m) + sign(message, secretKey, unusedArg) { + if (unusedArg != null) + throw new Error("sign() expects 2 arguments"); + const sec = PubPoint.Fn.fromBytes(secretKey); + amsg(message).assertValidity(); + return message.multiply(sec); + }, + // Checks if pairing of public key & hash is equal to pairing of generator & signature. + // e(P, H(m)) == e(G, S) + // e(S, G) == e(H(m), P) + verify(signature, message, publicKey, unusedArg) { + if (unusedArg != null) + throw new Error("verify() expects 3 arguments"); + signature = normSig(signature); + publicKey = normPub(publicKey); + const P = publicKey.negate(); + const G = PubPoint.BASE; + const Hm = amsg(message); + const S = signature; + try { + const exp = pairingBatch([pair(P, Hm), pair(G, S)]); + return Fp122.eql(exp, Fp122.ONE); + } catch { + return false; + } + }, + // https://ethresear.ch/t/fast-verification-of-multiple-bls-signatures/5407 + // e(G, S) = e(G, SUM(n)(Si)) = MUL(n)(e(G, Si)) + // TODO: maybe `{message: G2Hex, publicKey: G1Hex}[]` instead? + verifyBatch(signature, items) { + aNonEmpty(items); + const sig = normSig(signature); + const nMessages = items.map((i) => amsg(i.message)); + const nPublicKeys = items.map((i) => normPub(i.publicKey)); + const messagePubKeyMap = /* @__PURE__ */ new Map(); + for (let i = 0; i < nPublicKeys.length; i++) { + const pub = nPublicKeys[i]; + const msg = nMessages[i]; + let keys = messagePubKeyMap.get(msg); + if (keys === void 0) { + keys = []; + messagePubKeyMap.set(msg, keys); + } + keys.push(pub); + } + const paired = []; + const G = PubPoint.BASE; + try { + for (const [msg, keys] of messagePubKeyMap) { + const groupPublicKey = keys.reduce((acc, msg2) => acc.add(msg2)); + paired.push(pair(groupPublicKey, msg)); + } + paired.push(pair(G.negate(), sig)); + return Fp122.eql(pairingBatch(paired), Fp122.ONE); + } catch { + return false; + } + }, + // Adds a bunch of public key points together. + // pk1 + pk2 + pk3 = pkA + aggregatePublicKeys(publicKeys) { + aNonEmpty(publicKeys); + publicKeys = publicKeys.map((pub) => normPub(pub)); + const agg = publicKeys.reduce((sum, p) => sum.add(p), PubPoint.ZERO); + agg.assertValidity(); + return agg; + }, + // Adds a bunch of signature points together. + // pk1 + pk2 + pk3 = pkA + aggregateSignatures(signatures) { + aNonEmpty(signatures); + signatures = signatures.map((sig) => normSig(sig)); + const agg = signatures.reduce((sum, s) => sum.add(s), SigPoint.ZERO); + agg.assertValidity(); + return agg; + }, + hash(messageBytes, DST) { + abytes2(messageBytes); + const opts = DST === void 0 ? void 0 : { DST }; + return hashToSigCurve(messageBytes, opts); + }, + Signature: Object.freeze({ ...sigCoder }) + }); +} +function blsBasic(fields2, G1_Point2, G2_Point2, params) { + const { Fp: Fp3, Fr, Fp2: Fp22, Fp6: Fp62, Fp12: Fp122 } = fields2; + const G1 = { Point: G1_Point2 }; + const G2 = { Point: G2_Point2 }; + const pairingRes = createBlsPairing(fields2, G1_Point2, G2_Point2, params); + const { millerLoopBatch, pairing, pairingBatch, calcPairingPrecomputes, randomSecretKey, lengths } = pairingRes; + G1.Point.BASE.precompute(4); + Object.freeze(G1); + Object.freeze(G2); + return Object.freeze({ + lengths: Object.freeze(lengths), + millerLoopBatch, + pairing, + pairingBatch, + G1, + G2, + fields: Object.freeze({ Fr, Fp: Fp3, Fp2: Fp22, Fp6: Fp62, Fp12: Fp122 }), + params: Object.freeze({ + ateLoopSize: params.ateLoopSize, + xNegative: params.xNegative, + twistType: params.twistType, + postPrecompute: params.postPrecompute + }), + utils: Object.freeze({ + randomSecretKey, + calcPairingPrecomputes + }) + }); +} +function blsHashers(fields2, G1_Point2, G2_Point2, params, hasherParams) { + const base = blsBasic(fields2, G1_Point2, G2_Point2, params); + validateObject(hasherParams, { hasherOpts: "object", hasherOptsG1: "object", hasherOptsG2: "object" }, { mapToG1: "function", mapToG2: "function" }, "hasherParams"); + const G1Hasher = createHasher2(G1_Point2, hasherParams.mapToG1 === void 0 ? notImplemented : hasherParams.mapToG1, { + ...hasherParams.hasherOpts, + ...hasherParams.hasherOptsG1 + }); + const G2Hasher = createHasher2(G2_Point2, hasherParams.mapToG2 === void 0 ? notImplemented : hasherParams.mapToG2, { + ...hasherParams.hasherOpts, + ...hasherParams.hasherOptsG2 + }); + return Object.freeze({ ...base, G1: G1Hasher, G2: G2Hasher }); +} +function bls(fields2, G1_Point2, G2_Point2, params, hasherParams, signatureCoders2) { + const base = blsHashers(fields2, G1_Point2, G2_Point2, params, hasherParams); + const pairingRes = { + ...base, + Fr: base.fields.Fr, + Fp12: base.fields.Fp12, + calcPairingPrecomputes: base.utils.calcPairingPrecomputes, + randomSecretKey: base.utils.randomSecretKey + }; + const longSignatures = createBlsSig(pairingRes, G1_Point2, G2_Point2, false, base.G2.hashToCurve, signatureCoders2?.LongSignature); + const shortSignatures = createBlsSig(pairingRes, G2_Point2, G1_Point2, true, base.G1.hashToCurve, signatureCoders2?.ShortSignature); + return Object.freeze({ ...base, longSignatures, shortSignatures }); +} + +// tools/reference-apps/light-service/node_modules/@noble/curves/abstract/tower.js +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +var _0n8 = /* @__PURE__ */ BigInt(0); +var _1n8 = /* @__PURE__ */ BigInt(1); +var _2n6 = /* @__PURE__ */ BigInt(2); +var _3n5 = /* @__PURE__ */ BigInt(3); +var _6n = /* @__PURE__ */ BigInt(6); +var _12n = /* @__PURE__ */ BigInt(12); +var isObj = (value) => !!value && typeof value === "object"; +function calcFrobeniusCoefficients(Fp3, nonResidue, modulus, degree, num = 1, divisor) { + asafenumber(num, "num"); + asafenumber(degree, "degree"); + const divisorN = divisor === void 0 ? degree : divisor; + asafenumber(divisorN, "divisor"); + const F = Fp3; + if (typeof modulus !== "bigint" || modulus <= _1n8) + throw new Error("calcFrobeniusCoefficients: expected valid modulus, got " + modulus); + if (degree <= 0) + throw new Error("calcFrobeniusCoefficients: expected positive degree, got " + degree); + if (num <= 0) + throw new Error("calcFrobeniusCoefficients: expected positive row count, got " + num); + if (divisorN <= 0) + throw new Error("calcFrobeniusCoefficients: expected positive divisor, got " + divisorN); + const _divisor = BigInt(divisorN); + const towerModulus = modulus ** BigInt(degree); + const res = []; + for (let i = 0; i < num; i++) { + const a = BigInt(i + 1); + const powers = []; + for (let j = 0, qPower = _1n8; j < degree; j++) { + const numer = a * qPower - a; + if (numer % _divisor) + throw new Error("calcFrobeniusCoefficients: inexact tower exponent"); + const power = numer / _divisor % towerModulus; + powers.push(F.pow(nonResidue, power)); + qPower *= modulus; + } + res.push(powers); + } + return res; +} +function psiFrobenius(Fp3, Fp22, base) { + validateField(Fp3); + validateField(Fp22); + validateObject(Fp22, { + Fp: "object", + frobeniusMap: "function", + fromBigTuple: "function", + mulByB: "function", + mulByNonresidue: "function", + reim: "function", + Fp4Square: "function", + NONRESIDUE: "object" + }, {}); + if (!isObj(base) || Array.isArray(base)) + throw new TypeError('"base" expected Fp2 element, got type=' + typeof base); + if (!Fp22.isValid(base)) + throw new RangeError('"base" expected valid Fp2 element'); + const PSI_X = Fp22.pow(base, (Fp3.ORDER - _1n8) / _3n5); + const PSI_Y = Fp22.pow(base, (Fp3.ORDER - _1n8) / _2n6); + function psi(x, y) { + const x2 = Fp22.mul(Fp22.frobeniusMap(x, 1), PSI_X); + const y2 = Fp22.mul(Fp22.frobeniusMap(y, 1), PSI_Y); + return [x2, y2]; + } + const PSI2_X = Fp22.pow(base, (Fp3.ORDER ** _2n6 - _1n8) / _3n5); + const PSI2_Y = Fp22.pow(base, (Fp3.ORDER ** _2n6 - _1n8) / _2n6); + if (!Fp22.eql(PSI2_Y, Fp22.neg(Fp22.ONE))) + throw new Error("psiFrobenius: PSI2_Y!==-1"); + function psi2(x, y) { + return [Fp22.mul(x, PSI2_X), Fp22.neg(y)]; + } + const mapAffine = (fn) => (c, P) => { + if (typeof c !== "function") + throw new TypeError('"c" expected point constructor, got type=' + typeof c); + validatePointCons(c); + if (!(P instanceof c)) + throw new TypeError('"P" expected Point instance, got type=' + typeof P); + const affine = P.toAffine(); + const p = fn(affine.x, affine.y); + return c.fromAffine({ x: p[0], y: p[1] }); + }; + const G2psi3 = mapAffine(psi); + const G2psi22 = mapAffine(psi2); + return { psi, psi2, G2psi: G2psi3, G2psi2: G2psi22, PSI_X, PSI_Y, PSI2_X, PSI2_Y }; +} +var _Field2 = class { + ORDER; + BITS; + BYTES; + isLE; + ZERO; + ONE; + Fp; + NONRESIDUE; + mulByB; + Fp_NONRESIDUE; + Fp_div2; + constructor(Fp3, opts = {}) { + const { NONRESIDUE = BigInt(-1), FP2_NONRESIDUE, Fp2mulByB } = opts; + const ORDER = Fp3.ORDER; + const FP2_ORDER = ORDER * ORDER; + this.Fp = Fp3; + this.ORDER = FP2_ORDER; + this.BITS = bitLen(FP2_ORDER); + this.BYTES = Math.ceil(bitLen(FP2_ORDER) / 8); + this.isLE = Fp3.isLE; + this.ZERO = this.create({ c0: Fp3.ZERO, c1: Fp3.ZERO }); + this.ONE = this.create({ c0: Fp3.ONE, c1: Fp3.ZERO }); + this.Fp_NONRESIDUE = Fp3.create(NONRESIDUE); + this.Fp_div2 = Fp3.div(Fp3.ONE, _2n6); + this.NONRESIDUE = this.create({ c0: FP2_NONRESIDUE[0], c1: FP2_NONRESIDUE[1] }); + this.mulByB = (num) => { + const { c0, c1 } = Fp2mulByB(num); + return Object.freeze({ c0, c1 }); + }; + Object.freeze(this); + } + fromBigTuple(tuple) { + if (!Array.isArray(tuple) || tuple.length !== 2) + throw new Error("invalid Fp2.fromBigTuple"); + const [c0, c1] = tuple; + if (typeof c0 !== "bigint" || typeof c1 !== "bigint") + throw new Error("invalid Fp2.fromBigTuple"); + return this.create({ c0, c1 }); + } + create(num) { + const { Fp: Fp3 } = this; + const c0 = Fp3.create(num.c0); + const c1 = Fp3.create(num.c1); + return Object.freeze({ c0, c1 }); + } + isValid(num) { + if (!isObj(num)) + throw new TypeError("invalid field element: expected object, got " + typeof num); + const { c0, c1 } = num; + const { Fp: Fp3 } = this; + return Fp3.isValid(c0) && Fp3.isValid(c1); + } + is0(num) { + if (!isObj(num)) + return false; + const { c0, c1 } = num; + const { Fp: Fp3 } = this; + return Fp3.is0(c0) && Fp3.is0(c1); + } + isValidNot0(num) { + return !this.is0(num) && this.isValid(num); + } + eql({ c0, c1 }, { c0: r0, c1: r1 }) { + const { Fp: Fp3 } = this; + return Fp3.eql(c0, r0) && Fp3.eql(c1, r1); + } + neg({ c0, c1 }) { + const { Fp: Fp3 } = this; + return Object.freeze({ c0: Fp3.neg(c0), c1: Fp3.neg(c1) }); + } + pow(num, power) { + return FpPow(this, num, power); + } + invertBatch(nums) { + return FpInvertBatch(this, nums, true); + } + // Normalized + add(f1, f2) { + const { Fp: Fp3 } = this; + const { c0, c1 } = f1; + const { c0: r0, c1: r1 } = f2; + return Object.freeze({ + c0: Fp3.add(c0, r0), + c1: Fp3.add(c1, r1) + }); + } + sub({ c0, c1 }, { c0: r0, c1: r1 }) { + const { Fp: Fp3 } = this; + return Object.freeze({ + c0: Fp3.sub(c0, r0), + c1: Fp3.sub(c1, r1) + }); + } + mul({ c0, c1 }, rhs) { + const { Fp: Fp3 } = this; + if (typeof rhs === "bigint") + return Object.freeze({ c0: Fp3.mul(c0, rhs), c1: Fp3.mul(c1, rhs) }); + const { c0: r0, c1: r1 } = rhs; + let t1 = Fp3.mul(c0, r0); + let t2 = Fp3.mul(c1, r1); + const o0 = Fp3.sub(t1, t2); + const o1 = Fp3.sub(Fp3.mul(Fp3.add(c0, c1), Fp3.add(r0, r1)), Fp3.add(t1, t2)); + return Object.freeze({ c0: o0, c1: o1 }); + } + sqr({ c0, c1 }) { + const { Fp: Fp3 } = this; + const a = Fp3.add(c0, c1); + const b = Fp3.sub(c0, c1); + const c = Fp3.add(c0, c0); + return Object.freeze({ c0: Fp3.mul(a, b), c1: Fp3.mul(c, c1) }); + } + // NonNormalized stuff + addN(a, b) { + return this.add(a, b); + } + subN(a, b) { + return this.sub(a, b); + } + mulN(a, b) { + return this.mul(a, b); + } + sqrN(a) { + return this.sqr(a); + } + // Why inversion for bigint inside Fp instead of Fp2? it is even used in that context? + div(lhs, rhs) { + const { Fp: Fp3 } = this; + return this.mul(lhs, typeof rhs === "bigint" ? Fp3.inv(Fp3.create(rhs)) : this.inv(rhs)); + } + inv({ c0: a, c1: b }) { + const { Fp: Fp3 } = this; + const factor = Fp3.inv(Fp3.create(a * a + b * b)); + return Object.freeze({ c0: Fp3.mul(factor, Fp3.create(a)), c1: Fp3.mul(factor, Fp3.create(-b)) }); + } + sqrt(num) { + const { Fp: Fp3 } = this; + const Fp22 = this; + const { c0, c1 } = num; + if (Fp3.is0(c1)) { + if (FpLegendre(Fp3, c0) === 1) + return Fp22.create({ c0: Fp3.sqrt(c0), c1: Fp3.ZERO }); + else + return Fp22.create({ c0: Fp3.ZERO, c1: Fp3.sqrt(Fp3.div(c0, this.Fp_NONRESIDUE)) }); + } + const a = Fp3.sqrt(Fp3.sub(Fp3.sqr(c0), Fp3.mul(Fp3.sqr(c1), this.Fp_NONRESIDUE))); + let d = Fp3.mul(Fp3.add(a, c0), this.Fp_div2); + const legendre = FpLegendre(Fp3, d); + if (legendre === -1) + d = Fp3.sub(d, a); + const a0 = Fp3.sqrt(d); + const candidateSqrt = Fp22.create({ c0: a0, c1: Fp3.div(Fp3.mul(c1, this.Fp_div2), a0) }); + if (!Fp22.eql(Fp22.sqr(candidateSqrt), num)) + throw new Error("Cannot find square root"); + const x1 = candidateSqrt; + const x2 = Fp22.neg(x1); + const { re: re1, im: im1 } = Fp22.reim(x1); + const { re: re2, im: im2 } = Fp22.reim(x2); + if (im1 > im2 || im1 === im2 && re1 > re2) + return x1; + return x2; + } + // Same as sgn0_m_eq_2 in RFC 9380 + isOdd(x) { + const { re: x0, im: x1 } = this.reim(x); + const sign_0 = x0 % _2n6; + const zero_0 = x0 === _0n8; + const sign_1 = x1 % _2n6; + return BigInt(sign_0 || zero_0 && sign_1) == _1n8; + } + // Bytes util + fromBytes(b) { + const { Fp: Fp3 } = this; + abytes2(b); + if (b.length !== this.BYTES) + throw new Error("fromBytes invalid length=" + b.length); + return this.create({ + c0: Fp3.fromBytes(b.subarray(0, Fp3.BYTES)), + c1: Fp3.fromBytes(b.subarray(Fp3.BYTES)) + }); + } + toBytes({ c0, c1 }) { + return concatBytes2(this.Fp.toBytes(c0), this.Fp.toBytes(c1)); + } + cmov({ c0, c1 }, { c0: r0, c1: r1 }, c) { + const { Fp: Fp3 } = this; + return this.create({ + c0: Fp3.cmov(c0, r0, c), + c1: Fp3.cmov(c1, r1, c) + }); + } + reim({ c0, c1 }) { + return { re: c0, im: c1 }; + } + Fp4Square(a, b) { + const Fp22 = this; + const a2 = Fp22.sqr(a); + const b2 = Fp22.sqr(b); + return { + first: Fp22.add(Fp22.mulByNonresidue(b2), a2), + // b² * Nonresidue + a² + second: Fp22.sub(Fp22.sub(Fp22.sqr(Fp22.add(a, b)), a2), b2) + // (a + b)² - a² - b² + }; + } + // multiply by u + 1 + mulByNonresidue({ c0, c1 }) { + const { Fp: Fp3, NONRESIDUE: nr } = this; + if (nr.c0 === Fp3.ONE && nr.c1 === Fp3.ONE) { + return Object.freeze({ c0: Fp3.sub(c0, c1), c1: Fp3.add(c0, c1) }); + } + if (nr.c1 === Fp3.ONE) { + return Object.freeze({ + c0: Fp3.sub(Fp3.mul(c0, nr.c0), c1), + c1: Fp3.add(c0, Fp3.mul(c1, nr.c0)) + }); + } + return this.mul({ c0, c1 }, nr); + } + frobeniusMap(num, power) { + const { c0, c1 } = num; + const { Fp: Fp3 } = this; + return Object.freeze({ c0, c1: power % 2 === 0 ? c1 : Fp3.neg(c1) }); + } +}; +var _Field6 = class { + ORDER; + BITS; + BYTES; + isLE; + ZERO; + ONE; + Fp2; + constructor(Fp22) { + this.Fp2 = Fp22; + this.ORDER = Fp22.Fp.ORDER ** _6n; + this.BITS = 3 * Fp22.BITS; + this.BYTES = 3 * Fp22.BYTES; + this.isLE = Fp22.isLE; + this.ZERO = this.create({ c0: Fp22.ZERO, c1: Fp22.ZERO, c2: Fp22.ZERO }); + this.ONE = this.create({ c0: Fp22.ONE, c1: Fp22.ZERO, c2: Fp22.ZERO }); + Object.freeze(this); + } + // Most callers never touch Frobenius maps, so keep the sextic tables lazy: + // eagerly deriving them dominates `bls12-381.js` / `bn254.js` import time. + get FROBENIUS_COEFFICIENTS_1() { + const frob2 = _FROBENIUS_COEFFICIENTS_6.get(this); + if (frob2) + return frob2[0]; + const { Fp2: Fp22 } = this; + const { Fp: Fp3 } = Fp22; + const rows = calcFrobeniusCoefficients(Fp22, Fp22.NONRESIDUE, Fp3.ORDER, 6, 2, 3); + const cache = [Object.freeze(rows[0]), Object.freeze(rows[1])]; + _FROBENIUS_COEFFICIENTS_6.set(this, cache); + return cache[0]; + } + get FROBENIUS_COEFFICIENTS_2() { + const frob2 = _FROBENIUS_COEFFICIENTS_6.get(this); + if (frob2) + return frob2[1]; + void this.FROBENIUS_COEFFICIENTS_1; + return _FROBENIUS_COEFFICIENTS_6.get(this)[1]; + } + add({ c0, c1, c2 }, { c0: r0, c1: r1, c2: r2 }) { + const { Fp2: Fp22 } = this; + return Object.freeze({ + c0: Fp22.add(c0, r0), + c1: Fp22.add(c1, r1), + c2: Fp22.add(c2, r2) + }); + } + sub({ c0, c1, c2 }, { c0: r0, c1: r1, c2: r2 }) { + const { Fp2: Fp22 } = this; + return Object.freeze({ + c0: Fp22.sub(c0, r0), + c1: Fp22.sub(c1, r1), + c2: Fp22.sub(c2, r2) + }); + } + mul({ c0, c1, c2 }, rhs) { + const { Fp2: Fp22 } = this; + if (typeof rhs === "bigint") { + return Object.freeze({ + c0: Fp22.mul(c0, rhs), + c1: Fp22.mul(c1, rhs), + c2: Fp22.mul(c2, rhs) + }); + } + const { c0: r0, c1: r1, c2: r2 } = rhs; + const t0 = Fp22.mul(c0, r0); + const t1 = Fp22.mul(c1, r1); + const t2 = Fp22.mul(c2, r2); + return Object.freeze({ + // t0 + (c1 + c2) * (r1 * r2) - (T1 + T2) * (u + 1) + c0: Fp22.add(t0, Fp22.mulByNonresidue(Fp22.sub(Fp22.mul(Fp22.add(c1, c2), Fp22.add(r1, r2)), Fp22.add(t1, t2)))), + // (c0 + c1) * (r0 + r1) - (T0 + T1) + T2 * (u + 1) + c1: Fp22.add(Fp22.sub(Fp22.mul(Fp22.add(c0, c1), Fp22.add(r0, r1)), Fp22.add(t0, t1)), Fp22.mulByNonresidue(t2)), + // T1 + (c0 + c2) * (r0 + r2) - T0 + T2 + c2: Fp22.sub(Fp22.add(t1, Fp22.mul(Fp22.add(c0, c2), Fp22.add(r0, r2))), Fp22.add(t0, t2)) + }); + } + sqr({ c0, c1, c2 }) { + const { Fp2: Fp22 } = this; + let t0 = Fp22.sqr(c0); + let t1 = Fp22.mul(Fp22.mul(c0, c1), _2n6); + let t3 = Fp22.mul(Fp22.mul(c1, c2), _2n6); + let t4 = Fp22.sqr(c2); + return Object.freeze({ + c0: Fp22.add(Fp22.mulByNonresidue(t3), t0), + // T3 * (u + 1) + T0 + c1: Fp22.add(Fp22.mulByNonresidue(t4), t1), + // T4 * (u + 1) + T1 + // T1 + (c0 - c1 + c2)² + T3 - T0 - T4 + c2: Fp22.sub(Fp22.sub(Fp22.add(Fp22.add(t1, Fp22.sqr(Fp22.add(Fp22.sub(c0, c1), c2))), t3), t0), t4) + }); + } + addN(a, b) { + return this.add(a, b); + } + subN(a, b) { + return this.sub(a, b); + } + mulN(a, b) { + return this.mul(a, b); + } + sqrN(a) { + return this.sqr(a); + } + create(num) { + const { Fp2: Fp22 } = this; + const c0 = Fp22.create(num.c0); + const c1 = Fp22.create(num.c1); + const c2 = Fp22.create(num.c2); + return Object.freeze({ c0, c1, c2 }); + } + isValid(num) { + if (!isObj(num)) + throw new TypeError("invalid field element: expected object, got " + typeof num); + const { c0, c1, c2 } = num; + const { Fp2: Fp22 } = this; + return Fp22.isValid(c0) && Fp22.isValid(c1) && Fp22.isValid(c2); + } + is0(num) { + if (!isObj(num)) + return false; + const { c0, c1, c2 } = num; + const { Fp2: Fp22 } = this; + return Fp22.is0(c0) && Fp22.is0(c1) && Fp22.is0(c2); + } + isValidNot0(num) { + return !this.is0(num) && this.isValid(num); + } + neg({ c0, c1, c2 }) { + const { Fp2: Fp22 } = this; + return Object.freeze({ c0: Fp22.neg(c0), c1: Fp22.neg(c1), c2: Fp22.neg(c2) }); + } + eql({ c0, c1, c2 }, { c0: r0, c1: r1, c2: r2 }) { + const { Fp2: Fp22 } = this; + return Fp22.eql(c0, r0) && Fp22.eql(c1, r1) && Fp22.eql(c2, r2); + } + sqrt(_) { + return notImplemented(); + } + // Do we need division by bigint at all? Should be done via order: + div(lhs, rhs) { + const { Fp2: Fp22 } = this; + const { Fp: Fp3 } = Fp22; + return this.mul(lhs, typeof rhs === "bigint" ? Fp3.inv(Fp3.create(rhs)) : this.inv(rhs)); + } + pow(num, power) { + return FpPow(this, num, power); + } + invertBatch(nums) { + return FpInvertBatch(this, nums, true); + } + inv({ c0, c1, c2 }) { + const { Fp2: Fp22 } = this; + let t0 = Fp22.sub(Fp22.sqr(c0), Fp22.mulByNonresidue(Fp22.mul(c2, c1))); + let t1 = Fp22.sub(Fp22.mulByNonresidue(Fp22.sqr(c2)), Fp22.mul(c0, c1)); + let t2 = Fp22.sub(Fp22.sqr(c1), Fp22.mul(c0, c2)); + let t4 = Fp22.inv(Fp22.add(Fp22.mulByNonresidue(Fp22.add(Fp22.mul(c2, t1), Fp22.mul(c1, t2))), Fp22.mul(c0, t0))); + return Object.freeze({ c0: Fp22.mul(t4, t0), c1: Fp22.mul(t4, t1), c2: Fp22.mul(t4, t2) }); + } + // Bytes utils + fromBytes(b) { + const { Fp2: Fp22 } = this; + abytes2(b); + if (b.length !== this.BYTES) + throw new Error("fromBytes invalid length=" + b.length); + const B2 = Fp22.BYTES; + return this.create({ + c0: Fp22.fromBytes(b.subarray(0, B2)), + c1: Fp22.fromBytes(b.subarray(B2, B2 * 2)), + c2: Fp22.fromBytes(b.subarray(2 * B2)) + }); + } + toBytes({ c0, c1, c2 }) { + const { Fp2: Fp22 } = this; + return concatBytes2(Fp22.toBytes(c0), Fp22.toBytes(c1), Fp22.toBytes(c2)); + } + cmov({ c0, c1, c2 }, { c0: r0, c1: r1, c2: r2 }, c) { + const { Fp2: Fp22 } = this; + return this.create({ + c0: Fp22.cmov(c0, r0, c), + c1: Fp22.cmov(c1, r1, c), + c2: Fp22.cmov(c2, r2, c) + }); + } + fromBigSix(tuple) { + const { Fp2: Fp22 } = this; + if (!Array.isArray(tuple) || tuple.length !== 6) + throw new Error("invalid Fp6.fromBigSix"); + for (let i = 0; i < 6; i++) + if (typeof tuple[i] !== "bigint") + throw new Error("invalid Fp6.fromBigSix"); + const t2 = tuple; + return this.create({ + c0: Fp22.fromBigTuple(t2.slice(0, 2)), + c1: Fp22.fromBigTuple(t2.slice(2, 4)), + c2: Fp22.fromBigTuple(t2.slice(4, 6)) + }); + } + frobeniusMap(num, power) { + const { c0, c1, c2 } = num; + if (power % 6 === 0) + return Object.freeze({ c0, c1, c2 }); + const { Fp2: Fp22 } = this; + return Object.freeze({ + c0: Fp22.frobeniusMap(c0, power), + c1: Fp22.mul(Fp22.frobeniusMap(c1, power), this.FROBENIUS_COEFFICIENTS_1[power % 6]), + c2: Fp22.mul(Fp22.frobeniusMap(c2, power), this.FROBENIUS_COEFFICIENTS_2[power % 6]) + }); + } + mulByFp2({ c0, c1, c2 }, rhs) { + const { Fp2: Fp22 } = this; + return Object.freeze({ + c0: Fp22.mul(c0, rhs), + c1: Fp22.mul(c1, rhs), + c2: Fp22.mul(c2, rhs) + }); + } + mulByNonresidue({ c0, c1, c2 }) { + const { Fp2: Fp22 } = this; + return Object.freeze({ c0: Fp22.mulByNonresidue(c2), c1: c0, c2: c1 }); + } + // Sparse multiplication + mul1({ c0, c1, c2 }, b1) { + const { Fp2: Fp22 } = this; + return Object.freeze({ + c0: Fp22.mulByNonresidue(Fp22.mul(c2, b1)), + c1: Fp22.mul(c0, b1), + c2: Fp22.mul(c1, b1) + }); + } + // Sparse multiplication + mul01({ c0, c1, c2 }, b0, b1) { + const { Fp2: Fp22 } = this; + let t0 = Fp22.mul(c0, b0); + let t1 = Fp22.mul(c1, b1); + return Object.freeze({ + // ((c1 + c2) * b1 - T1) * (u + 1) + T0 + c0: Fp22.add(Fp22.mulByNonresidue(Fp22.sub(Fp22.mul(Fp22.add(c1, c2), b1), t1)), t0), + // (b0 + b1) * (c0 + c1) - T0 - T1 + c1: Fp22.sub(Fp22.sub(Fp22.mul(Fp22.add(b0, b1), Fp22.add(c0, c1)), t0), t1), + // (c0 + c2) * b0 - T0 + T1 + c2: Fp22.add(Fp22.sub(Fp22.mul(Fp22.add(c0, c2), b0), t0), t1) + }); + } +}; +var _FROBENIUS_COEFFICIENTS_6 = /* @__PURE__ */ new WeakMap(); +var _Field12 = class { + ORDER; + BITS; + BYTES; + isLE; + ZERO; + ONE; + Fp6; + X_LEN; + finalExponentiate; + constructor(Fp62, opts) { + const { X_LEN, Fp12finalExponentiate } = opts; + const { Fp2: Fp22 } = Fp62; + const { Fp: Fp3 } = Fp22; + this.Fp6 = Fp62; + this.ORDER = Fp3.ORDER ** _12n; + this.BITS = 2 * Fp62.BITS; + this.BYTES = 2 * Fp62.BYTES; + this.isLE = Fp62.isLE; + this.ZERO = this.create({ c0: Fp62.ZERO, c1: Fp62.ZERO }); + this.ONE = this.create({ c0: Fp62.ONE, c1: Fp62.ZERO }); + this.X_LEN = X_LEN; + this.finalExponentiate = (num) => { + const copy2 = ({ c0, c1 }) => Object.freeze({ c0, c1 }); + const copy6 = ({ c0, c1, c2 }) => Object.freeze({ c0: copy2(c0), c1: copy2(c1), c2: copy2(c2) }); + const res = Fp12finalExponentiate(num); + return Object.freeze({ c0: copy6(res.c0), c1: copy6(res.c1) }); + }; + Object.freeze(this); + } + // Keep the degree-12 Frobenius row lazy too; after the first lookup the cached + // array is reused exactly like the old eager table. + get FROBENIUS_COEFFICIENTS() { + const frob2 = _FROBENIUS_COEFFICIENTS_12.get(this); + if (frob2) + return frob2; + const { Fp2: Fp22 } = this.Fp6; + const { Fp: Fp3 } = Fp22; + const cache = Object.freeze(calcFrobeniusCoefficients(Fp22, Fp22.NONRESIDUE, Fp3.ORDER, 12, 1, 6)[0]); + _FROBENIUS_COEFFICIENTS_12.set(this, cache); + return cache; + } + create(num) { + const { Fp6: Fp62 } = this; + const c0 = Fp62.create(num.c0); + const c1 = Fp62.create(num.c1); + return Object.freeze({ c0, c1 }); + } + isValid(num) { + if (!isObj(num)) + throw new TypeError("invalid field element: expected object, got " + typeof num); + const { c0, c1 } = num; + const { Fp6: Fp62 } = this; + return Fp62.isValid(c0) && Fp62.isValid(c1); + } + is0(num) { + if (!isObj(num)) + return false; + const { c0, c1 } = num; + const { Fp6: Fp62 } = this; + return Fp62.is0(c0) && Fp62.is0(c1); + } + isValidNot0(num) { + return !this.is0(num) && this.isValid(num); + } + neg({ c0, c1 }) { + const { Fp6: Fp62 } = this; + return Object.freeze({ c0: Fp62.neg(c0), c1: Fp62.neg(c1) }); + } + eql({ c0, c1 }, { c0: r0, c1: r1 }) { + const { Fp6: Fp62 } = this; + return Fp62.eql(c0, r0) && Fp62.eql(c1, r1); + } + sqrt(_) { + return notImplemented(); + } + inv({ c0, c1 }) { + const { Fp6: Fp62 } = this; + let t2 = Fp62.inv(Fp62.sub(Fp62.sqr(c0), Fp62.mulByNonresidue(Fp62.sqr(c1)))); + return Object.freeze({ c0: Fp62.mul(c0, t2), c1: Fp62.neg(Fp62.mul(c1, t2)) }); + } + div(lhs, rhs) { + const { Fp6: Fp62 } = this; + const { Fp2: Fp22 } = Fp62; + const { Fp: Fp3 } = Fp22; + return this.mul(lhs, typeof rhs === "bigint" ? Fp3.inv(Fp3.create(rhs)) : this.inv(rhs)); + } + pow(num, power) { + return FpPow(this, num, power); + } + invertBatch(nums) { + return FpInvertBatch(this, nums, true); + } + // Normalized + add({ c0, c1 }, { c0: r0, c1: r1 }) { + const { Fp6: Fp62 } = this; + return Object.freeze({ + c0: Fp62.add(c0, r0), + c1: Fp62.add(c1, r1) + }); + } + sub({ c0, c1 }, { c0: r0, c1: r1 }) { + const { Fp6: Fp62 } = this; + return Object.freeze({ + c0: Fp62.sub(c0, r0), + c1: Fp62.sub(c1, r1) + }); + } + mul({ c0, c1 }, rhs) { + const { Fp6: Fp62 } = this; + if (typeof rhs === "bigint") + return Object.freeze({ c0: Fp62.mul(c0, rhs), c1: Fp62.mul(c1, rhs) }); + let { c0: r0, c1: r1 } = rhs; + let t1 = Fp62.mul(c0, r0); + let t2 = Fp62.mul(c1, r1); + return Object.freeze({ + c0: Fp62.add(t1, Fp62.mulByNonresidue(t2)), + // T1 + T2 * v + // (c0 + c1) * (r0 + r1) - (T1 + T2) + c1: Fp62.sub(Fp62.mul(Fp62.add(c0, c1), Fp62.add(r0, r1)), Fp62.add(t1, t2)) + }); + } + sqr({ c0, c1 }) { + const { Fp6: Fp62 } = this; + let ab = Fp62.mul(c0, c1); + return Object.freeze({ + // (c1 * v + c0) * (c0 + c1) - AB - AB * v + c0: Fp62.sub(Fp62.sub(Fp62.mul(Fp62.add(Fp62.mulByNonresidue(c1), c0), Fp62.add(c0, c1)), ab), Fp62.mulByNonresidue(ab)), + c1: Fp62.add(ab, ab) + }); + } + // NonNormalized stuff + addN(a, b) { + return this.add(a, b); + } + subN(a, b) { + return this.sub(a, b); + } + mulN(a, b) { + return this.mul(a, b); + } + sqrN(a) { + return this.sqr(a); + } + // Bytes utils + fromBytes(b) { + const { Fp6: Fp62 } = this; + abytes2(b); + if (b.length !== this.BYTES) + throw new Error("fromBytes invalid length=" + b.length); + return this.create({ + c0: Fp62.fromBytes(b.subarray(0, Fp62.BYTES)), + c1: Fp62.fromBytes(b.subarray(Fp62.BYTES)) + }); + } + toBytes({ c0, c1 }) { + const { Fp6: Fp62 } = this; + return concatBytes2(Fp62.toBytes(c0), Fp62.toBytes(c1)); + } + cmov({ c0, c1 }, { c0: r0, c1: r1 }, c) { + const { Fp6: Fp62 } = this; + return this.create({ + c0: Fp62.cmov(c0, r0, c), + c1: Fp62.cmov(c1, r1, c) + }); + } + // Utils + // toString() { + // return '' + 'Fp12(' + this.c0 + this.c1 + '* w'); + // }, + // fromTuple(c: [Fp6, Fp6]) { + // return new Fp12(...c); + // } + fromBigTwelve(tuple) { + const { Fp6: Fp62 } = this; + if (!Array.isArray(tuple) || tuple.length !== 12) + throw new Error("invalid Fp12.fromBigTwelve"); + for (let i = 0; i < 12; i++) + if (typeof tuple[i] !== "bigint") + throw new Error("invalid Fp12.fromBigTwelve"); + const t2 = tuple; + return this.create({ + c0: Fp62.fromBigSix(t2.slice(0, 6)), + c1: Fp62.fromBigSix(t2.slice(6, 12)) + }); + } + // Raises to q**i -th power + frobeniusMap(lhs, power) { + const p = power % 12; + if (p === 0) + return Object.freeze({ c0: lhs.c0, c1: lhs.c1 }); + if (p === 6) + return this.conjugate(lhs); + const { Fp6: Fp62 } = this; + const { Fp2: Fp22 } = Fp62; + const { c0, c1, c2 } = Fp62.frobeniusMap(lhs.c1, power); + const coeff = this.FROBENIUS_COEFFICIENTS[p]; + return Object.freeze({ + c0: Fp62.frobeniusMap(lhs.c0, power), + c1: Object.freeze({ + c0: Fp22.mul(c0, coeff), + c1: Fp22.mul(c1, coeff), + c2: Fp22.mul(c2, coeff) + }) + }); + } + mulByFp2({ c0, c1 }, rhs) { + const { Fp6: Fp62 } = this; + return Object.freeze({ + c0: Fp62.mulByFp2(c0, rhs), + c1: Fp62.mulByFp2(c1, rhs) + }); + } + conjugate({ c0, c1 }) { + return Object.freeze({ c0, c1: this.Fp6.neg(c1) }); + } + // A cyclotomic group is a subgroup of Fp^n defined by + // GΦₙ(p) = {α ∈ Fpⁿ : α^Φₙ(p) = 1} + // The result of any pairing is in a cyclotomic subgroup + // https://eprint.iacr.org/2009/565.pdf + // https://eprint.iacr.org/2010/354.pdf + _cyclotomicSquare({ c0, c1 }) { + const { Fp6: Fp62 } = this; + const { Fp2: Fp22 } = Fp62; + const { c0: c0c0, c1: c0c1, c2: c0c2 } = c0; + const { c0: c1c0, c1: c1c1, c2: c1c2 } = c1; + const { first: t3, second: t4 } = Fp22.Fp4Square(c0c0, c1c1); + const { first: t5, second: t6 } = Fp22.Fp4Square(c1c0, c0c2); + const { first: t7, second: t8 } = Fp22.Fp4Square(c0c1, c1c2); + const t9 = Fp22.mulByNonresidue(t8); + return Object.freeze({ + c0: Object.freeze({ + c0: Fp22.add(Fp22.mul(Fp22.sub(t3, c0c0), _2n6), t3), + // 2 * (T3 - c0c0) + T3 + c1: Fp22.add(Fp22.mul(Fp22.sub(t5, c0c1), _2n6), t5), + // 2 * (T5 - c0c1) + T5 + c2: Fp22.add(Fp22.mul(Fp22.sub(t7, c0c2), _2n6), t7) + }), + // 2 * (T7 - c0c2) + T7 + c1: Object.freeze({ + c0: Fp22.add(Fp22.mul(Fp22.add(t9, c1c0), _2n6), t9), + // 2 * (T9 + c1c0) + T9 + c1: Fp22.add(Fp22.mul(Fp22.add(t4, c1c1), _2n6), t4), + // 2 * (T4 + c1c1) + T4 + c2: Fp22.add(Fp22.mul(Fp22.add(t6, c1c2), _2n6), t6) + }) + }); + } + // https://eprint.iacr.org/2009/565.pdf + _cyclotomicExp(num, n) { + aInRange("cyclotomic exponent", n, _0n8, _1n8 << BigInt(this.X_LEN)); + if (n === _0n8) + return this.ONE; + let z = num; + for (let i = bitLen(n) - 2; i >= 0; i--) { + z = this._cyclotomicSquare(z); + if (bitGet(n, i)) + z = this.mul(z, num); + } + return z; + } +}; +var _FROBENIUS_COEFFICIENTS_12 = /* @__PURE__ */ new WeakMap(); +function tower12(opts) { + validateObject(opts, { + ORDER: "bigint", + X_LEN: "number", + FP2_NONRESIDUE: "object", + Fp2mulByB: "function", + Fp12finalExponentiate: "function" + }, { NONRESIDUE: "bigint" }); + asafenumber(opts.X_LEN, "X_LEN"); + if (opts.X_LEN < 1) + throw new Error("invalid X_LEN"); + const nonresidue = opts.FP2_NONRESIDUE; + if (!Array.isArray(nonresidue) || nonresidue.length !== 2) + throw new Error("invalid FP2_NONRESIDUE"); + if (typeof nonresidue[0] !== "bigint" || typeof nonresidue[1] !== "bigint") + throw new Error("invalid FP2_NONRESIDUE"); + const Fp3 = Field(opts.ORDER); + const Fp22 = new _Field2(Fp3, opts); + const Fp62 = new _Field6(Fp22); + const Fp122 = new _Field12(Fp62, opts); + return { Fp: Fp3, Fp2: Fp22, Fp6: Fp62, Fp12: Fp122 }; +} + +// tools/reference-apps/light-service/node_modules/@noble/curves/bls12-381.js +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +var _0n9 = BigInt(0); +var _1n9 = BigInt(1); +var _2n7 = BigInt(2); +var _3n6 = BigInt(3); +var _4n5 = BigInt(4); +var BLS_X = BigInt("0xd201000000010000"); +var BLS_X_LEN = bitLen(BLS_X); +var bls12_381_CURVE_G1 = { + p: BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"), + n: BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"), + h: BigInt("0x396c8c005555e1568c00aaab0000aaab"), + a: _0n9, + b: _4n5, + Gx: BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"), + Gy: BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1") +}; +var bls12_381_Fr = Field(bls12_381_CURVE_G1.n, { + modFromBytes: true +}); +function bls12FromCompressed(g0, g12, { g2: g22, g3, g4, g5 }) { + return { c0: { c0: g0, c1: g4, c2: g3 }, c1: { c0: g22, c1: g12, c2: g5 } }; +} +function bls12Compress({ c0, c1 }) { + return { g2: c1.c0, g3: c0.c2, g4: c0.c1, g5: c1.c2 }; +} +function bls12CyclotomicSquareCompressed({ g2: g22, g3, g4, g5 }) { + const { first: h23c0, second: h23c1 } = Fp2.Fp4Square(g4, g5); + const { first: h45c0, second: h45c1 } = Fp2.Fp4Square(g22, g3); + const d2 = Fp2.add(g22, g22); + const d3 = Fp2.add(g3, g3); + const d4 = Fp2.add(g4, g4); + const d5 = Fp2.add(g5, g5); + return { + g2: Fp2.add(Fp2.mul(Fp2.mulByNonresidue(h23c1), _3n6), d2), + g3: Fp2.sub(Fp2.mul(h23c0, _3n6), d3), + g4: Fp2.sub(Fp2.mul(h45c0, _3n6), d4), + g5: Fp2.add(Fp2.mul(h45c1, _3n6), d5) + }; +} +function bls12RecoverG1Ratio({ g2: g22, g3, g4, g5 }) { + if (Fp2.is0(g22)) + return { num: Fp2.mul(Fp2.mul(g4, g5), _2n7), den: g3 }; + return { + num: Fp2.add(Fp2.sub(Fp2.mul(Fp2.sqr(g4), _3n6), Fp2.mul(g3, _2n7)), Fp2.mulByNonresidue(Fp2.sqr(g5))), + den: Fp2.mul(g22, _4n5) + }; +} +function bls12RecoverG0(g12, { g2: g22, g3, g4, g5 }) { + const g3g4 = Fp2.mul(g3, g4); + const t2 = Fp2.add(Fp2.sub(Fp2.mul(Fp2.sub(Fp2.sqr(g12), g3g4), _2n7), g3g4), Fp2.mul(g22, g5)); + return Fp2.add(Fp2.mulByNonresidue(t2), Fp2.ONE); +} +function bls12CyclotomicExpCompressed(num, squarings) { + const gs = []; + let g = bls12Compress(num); + for (const count of squarings) { + for (let i = 0; i < count; i++) + g = bls12CyclotomicSquareCompressed(g); + gs.push(g); + } + const isOne = gs.map(({ g2: g22, g3 }) => Fp2.is0(g22) && Fp2.is0(g3)); + const ratios = gs.map(bls12RecoverG1Ratio); + const invDens = Fp2.invertBatch(ratios.map(({ den }) => den)); + const elems = gs.map((compressed, i) => { + if (isOne[i]) + return Fp12.ONE; + const g12 = Fp2.mul(ratios[i].num, invDens[i]); + return bls12FromCompressed(bls12RecoverG0(g12, compressed), g12, compressed); + }); + return { result: Fp12.mul(Fp12.mul(elems[0], elems[1]), elems[2]), last: elems[2] }; +} +function bls12CyclotomicExpX(num) { + const { result, last } = bls12CyclotomicExpCompressed(num, [16, 32, 9]); + let r2 = result; + let s = last; + for (let i = 0; i < 3; i++) + s = Fp12._cyclotomicSquare(s); + r2 = Fp12.mul(r2, s); + for (let i = 0; i < 2; i++) + s = Fp12._cyclotomicSquare(s); + r2 = Fp12.mul(r2, s); + s = Fp12._cyclotomicSquare(s); + return Fp12.mul(r2, s); +} +var { Fp, Fp2, Fp6, Fp12 } = tower12({ + ORDER: bls12_381_CURVE_G1.p, + X_LEN: BLS_X_LEN, + // Finite extension field over irreducible polynominal. + // Fp(u) / (u² - β) where β = -1 + // Public `Fp2.NONRESIDUE` below is the sextic-tower value `(1, 1) = u + 1`; + // the quadratic non-residue for the base Fp2 construction is still `-1`. + FP2_NONRESIDUE: [_1n9, _1n9], + Fp2mulByB: ({ c0, c1 }) => { + const t0 = Fp.mul(c0, _4n5); + const t1 = Fp.mul(c1, _4n5); + return { c0: Fp.sub(t0, t1), c1: Fp.add(t0, t1) }; + }, + Fp12finalExponentiate: (num) => { + const powMinusX = (num2) => Fp12.conjugate(bls12CyclotomicExpX(num2)); + const t0 = Fp12.div(Fp12.frobeniusMap(num, 6), num); + const t1 = Fp12.mul(Fp12.frobeniusMap(t0, 2), t0); + const t2 = powMinusX(t1); + const t3 = Fp12.mul(Fp12.conjugate(Fp12._cyclotomicSquare(t1)), t2); + const t4 = powMinusX(t3); + const t5 = powMinusX(t4); + const t6 = Fp12.mul(powMinusX(t5), Fp12._cyclotomicSquare(t2)); + const t7 = powMinusX(t6); + const t2_t5_pow_q2 = Fp12.frobeniusMap(Fp12.mul(t2, t5), 2); + const t4_t1_pow_q3 = Fp12.frobeniusMap(Fp12.mul(t4, t1), 3); + const t6_t1c_pow_q1 = Fp12.frobeniusMap(Fp12.mul(t6, Fp12.conjugate(t1)), 1); + const t7_t3c_t1 = Fp12.mul(Fp12.mul(t7, Fp12.conjugate(t3)), t1); + return Fp12.mul(Fp12.mul(Fp12.mul(t2_t5_pow_q2, t4_t1_pow_q3), t6_t1c_pow_q1), t7_t3c_t1); + } +}); +var frob; +var getFrob = () => frob || (frob = psiFrobenius(Fp, Fp2, Fp2.div(Fp2.ONE, Fp2.NONRESIDUE))); +var G2psi = (c, P) => { + const fn = getFrob().G2psi; + G2psi = fn; + return fn(c, P); +}; +var G2psi2 = (c, P) => { + const fn = getFrob().G2psi2; + G2psi2 = fn; + return fn(c, P); +}; +var hasher_opts = Object.freeze({ + DST: "BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_", + encodeDST: "BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_", + p: Fp.ORDER, + m: 2, + k: 128, + expand: "xmd", + hash: sha256 +}); +var bls12_381_CURVE_G2 = { + p: Fp2.ORDER, + n: bls12_381_CURVE_G1.n, + h: BigInt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5"), + a: Fp2.ZERO, + b: Fp2.fromBigTuple([_4n5, _4n5]), + Gx: Fp2.fromBigTuple([ + BigInt("0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8"), + BigInt("0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e") + ]), + Gy: Fp2.fromBigTuple([ + BigInt("0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801"), + BigInt("0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be") + ]) +}; +var sortBit = (parts, p) => { + for (const part of parts) { + if (part !== _0n9) + return Boolean(part * _2n7 / p); + } + return false; +}; +var fp2 = { + // Generic tower bytes use `c0 || c1`, but the BLS12-381 G2 point/signature wire encoding uses + // `c1 || c0`, so keep this local wrapper instead of changing generic field serialization. + encode({ c0, c1 }) { + const { BYTES: L } = Fp; + return concatBytes2(numberToBytesBE(c1, L), numberToBytesBE(c0, L)); + }, + decode(bytes) { + const { BYTES: L } = Fp; + return Fp2.create({ + c0: decodeFp(bytes.subarray(L)), + c1: decodeFp(bytes.subarray(0, L)) + }); + } +}; +var BaseFp = Fp; +function decodeFp(bytes) { + return Fp.fromBytes(bytes); +} +var coder = (name, Fp3, b, encode, decode, yparts) => { + const F = Fp3; + const enc = encode; + const dec = decode; + const W = F.BYTES; + return (allowUncompressed) => ({ + encode(point, compressed = true) { + if (!compressed && !allowUncompressed) + throw new Error("invalid signature: expected compressed encoding"); + const infinity = point.is0(); + const { x, y } = point.toAffine(); + const bytes = compressed ? enc(x) : concatBytes2(enc(x), enc(y)); + let sort; + if (compressed && !infinity) + sort = sortBit(yparts(y), BaseFp.ORDER); + return setMask(bytes, { compressed, infinity, sort }); + }, + decode(bytes) { + const raw = allowUncompressed ? abytes2(bytes, void 0, "point") : abytes2(bytes, W, "signature"); + const { compressed, infinity, sort, value } = parseMask(raw); + if (!allowUncompressed && !compressed) + throw new Error("invalid signature: expected compressed encoding"); + const len = compressed ? W : 2 * W; + if (value.length !== len) + throw new Error(`invalid ${name} point: expected ${len} bytes`); + if (infinity) { + for (const b2 of value) { + if (b2) + throw new Error(`invalid ${name} point: non-canonical zero`); + } + return { x: F.ZERO, y: F.ZERO }; + } + const x = dec(compressed ? value : value.subarray(0, W)); + let y; + if (compressed) { + y = F.sqrt(F.add(F.pow(x, _3n6), b)); + if (!y) + throw new Error(`invalid ${name} point: compressed`); + if (sortBit(yparts(y), BaseFp.ORDER) !== sort) + y = F.neg(y); + } else { + y = dec(value.subarray(W)); + } + if (!compressed && F.is0(x) && F.is0(y)) + throw new Error(`invalid ${name} point: uncompressed`); + return { x, y }; + } + }); +}; +function validateMask({ compressed, infinity, sort }) { + if (!compressed && !infinity && sort || // 0010_0000 = 0x20 + !compressed && infinity && sort || // 0110_0000 = 0x60 + compressed && infinity && sort) + throw new Error("invalid encoding flag"); +} +function parseMask(bytes) { + bytes = copyBytes2(bytes); + const mask = bytes[0] & 224; + const compressed = !!(mask >> 7 & 1); + const infinity = !!(mask >> 6 & 1); + const sort = !!(mask >> 5 & 1); + validateMask({ compressed, infinity, sort }); + bytes[0] &= 31; + return { compressed, infinity, sort, value: bytes }; +} +function setMask(bytes, mask) { + if (bytes[0] & 224) + throw new Error("setMask: non-empty mask"); + validateMask({ compressed: !!mask.compressed, infinity: !!mask.infinity, sort: !!mask.sort }); + if (mask.compressed) + bytes[0] |= 128; + if (mask.infinity) + bytes[0] |= 64; + if (mask.sort) + bytes[0] |= 32; + return bytes; +} +var g1coder = coder("G1", Fp, Fp.create(bls12_381_CURVE_G1.b), (x) => numberToBytesBE(x, Fp.BYTES), decodeFp, (y) => [y]); +var g1 = { point: g1coder(true), sig: g1coder(false) }; +var signatureG1ToBytes = (point) => { + point.assertValidity(); + return g1.sig.encode(point); +}; +function signatureG1FromBytes(bytes) { + const Point = bls12_381.G1.Point; + const point = Point.fromAffine(g1.sig.decode(bytes)); + point.assertValidity(); + return point; +} +var g2coder = coder("G2", Fp2, bls12_381_CURVE_G2.b, fp2.encode, fp2.decode, (y) => [ + y.c1, + y.c0 +]); +var g2 = { point: g2coder(true), sig: g2coder(false) }; +var signatureG2ToBytes = (point) => { + point.assertValidity(); + return g2.sig.encode(point); +}; +function signatureG2FromBytes(bytes) { + const Point = bls12_381.G2.Point; + const point = Point.fromAffine(g2.sig.decode(bytes)); + point.assertValidity(); + return point; +} +var signatureCoders = { + ShortSignature: { + fromBytes(bytes) { + return signatureG1FromBytes(abytes2(bytes)); + }, + fromHex(hex) { + return signatureG1FromBytes(hexToBytes2(hex)); + }, + toBytes(point) { + return signatureG1ToBytes(point); + }, + // Historical alias: BLS signatures have a single compressed byte format here. + toRawBytes(point) { + return signatureG1ToBytes(point); + }, + toHex(point) { + return bytesToHex2(signatureG1ToBytes(point)); + } + }, + LongSignature: { + fromBytes(bytes) { + return signatureG2FromBytes(abytes2(bytes)); + }, + fromHex(hex) { + return signatureG2FromBytes(hexToBytes2(hex)); + }, + toBytes(point) { + return signatureG2ToBytes(point); + }, + // Historical alias: BLS signatures have a single compressed byte format here. + toRawBytes(point) { + return signatureG2ToBytes(point); + }, + toHex(point) { + return bytesToHex2(signatureG2ToBytes(point)); + } + } +}; +var fields = { + Fp, + Fp2, + Fp6, + Fp12, + Fr: bls12_381_Fr +}; +var G1_Point = weierstrass(bls12_381_CURVE_G1, { + // Public point APIs still accept infinity, even though the Zcash proof + // encoding rules cited above only define nonzero point encodings. + allowInfinityPoint: true, + Fn: bls12_381_Fr, + fromBytes: g1.point.decode, + toBytes: (_c, point, isComp) => g1.point.encode(point, isComp), + // Checks is the point resides in prime-order subgroup. + // point.isTorsionFree() should return true for valid points + // It returns false for shitty points. + // https://eprint.iacr.org/2021/1130.pdf + isTorsionFree: (c, point) => { + const beta = BigInt("0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe"); + const phi = new c(Fp.mul(point.X, beta), point.Y, point.Z); + const xP = point.multiplyUnsafe(BLS_X).negate(); + const u2P = xP.multiplyUnsafe(BLS_X); + return u2P.equals(phi); + }, + // Clear cofactor of G1 + // https://eprint.iacr.org/2019/403 + clearCofactor: (_c, point) => { + return point.multiplyUnsafe(BLS_X).add(point); + } +}); +var G2_Point = weierstrass(bls12_381_CURVE_G2, { + Fp: Fp2, + // Public point APIs still accept infinity, even though the Zcash proof + // encoding rules cited above only define nonzero point encodings. + allowInfinityPoint: true, + Fn: bls12_381_Fr, + fromBytes: g2.point.decode, + toBytes: (_c, point, isComp) => g2.point.encode(point, isComp), + // https://eprint.iacr.org/2021/1130.pdf + // Older version: https://eprint.iacr.org/2019/814.pdf + isTorsionFree: (c, P) => { + return P.multiplyUnsafe(BLS_X).negate().equals(G2psi(c, P)); + }, + // clear_cofactor_bls12381_g2 from RFC 9380. + // https://eprint.iacr.org/2017/419.pdf + // prettier-ignore + clearCofactor: (c, P) => { + const x = BLS_X; + let t1 = P.multiplyUnsafe(x).negate(); + let t2 = G2psi(c, P); + let t3 = P.double(); + t3 = G2psi2(c, t3); + t3 = t3.subtract(t2); + t2 = t1.add(t2); + t2 = t2.multiplyUnsafe(x).negate(); + t3 = t3.add(t2); + t3 = t3.subtract(t1); + const Q = t3.subtract(P); + return Q; + } +}); +var bls12_hasher_opts = { + mapToG1, + mapToG2, + hasherOpts: hasher_opts, + // RFC 9380 Appendix J defines distinct G1/G2 RO and NU suite IDs, and + // draft-irtf-cfrg-bls-signature-06 §4.2.1 gives separate G1/G2 `_NUL_` DSTs. + // Keep G1 encode-to-curve on the G1 domain instead of inheriting G2's `encodeDST`. + hasherOptsG1: { + ...hasher_opts, + m: 1, + DST: "BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_", + encodeDST: "BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_" + }, + hasherOptsG2: { ...hasher_opts } +}; +var bls12_params = { + ateLoopSize: BLS_X, + // The BLS parameter x for BLS12-381 + xNegative: true, + twistType: "multiplicative", + randomBytes: randomBytes2 +}; +var bls12_381 = bls(fields, G1_Point, G2_Point, bls12_params, bls12_hasher_opts, signatureCoders); +var isogenyMapG2 = isogenyMap(Fp2, [ + // xNum + [ + [ + "0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6", + "0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6" + ], + [ + "0x0", + "0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a" + ], + [ + "0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e", + "0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d" + ], + [ + "0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1", + "0x0" + ] + ], + // xDen + [ + [ + "0x0", + "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63" + ], + [ + "0xc", + "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f" + ], + ["0x1", "0x0"] + // LAST 1 + ], + // yNum + [ + [ + "0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706", + "0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706" + ], + [ + "0x0", + "0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be" + ], + [ + "0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c", + "0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f" + ], + [ + "0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10", + "0x0" + ] + ], + // yDen + [ + [ + "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb", + "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb" + ], + [ + "0x0", + "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3" + ], + [ + "0x12", + "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99" + ], + ["0x1", "0x0"] + // LAST 1 + ] +].map((i) => i.map((pair) => Fp2.fromBigTuple(pair.map(BigInt))))); +var isogenyMapG1 = isogenyMap(Fp, [ + // xNum + [ + "0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7", + "0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb", + "0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0", + "0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861", + "0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9", + "0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983", + "0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84", + "0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e", + "0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317", + "0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e", + "0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b", + "0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229" + ], + // xDen + [ + "0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c", + "0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff", + "0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19", + "0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8", + "0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e", + "0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5", + "0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a", + "0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e", + "0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641", + "0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a", + "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + // LAST 1 + ], + // yNum + [ + "0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33", + "0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696", + "0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6", + "0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb", + "0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb", + "0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0", + "0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2", + "0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29", + "0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587", + "0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30", + "0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132", + "0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e", + "0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8", + "0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133", + "0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b", + "0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604" + ], + // yDen + [ + "0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1", + "0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d", + "0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2", + "0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416", + "0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d", + "0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac", + "0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c", + "0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9", + "0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a", + "0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55", + "0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8", + "0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092", + "0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc", + "0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7", + "0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f", + "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + // LAST 1 + ] +].map((i) => i.map((j) => BigInt(j)))); +var G1_SWU; +var G2_SWU; +var getG1_SWU = () => G1_SWU || (G1_SWU = mapToCurveSimpleSWU(Fp, { + A: Fp.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")), + B: Fp.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")), + Z: Fp.create(BigInt(11)) +})); +var getG2_SWU = () => G2_SWU || (G2_SWU = mapToCurveSimpleSWU(Fp2, { + // SWU map for the RFC 9380 §8.8.2 pre-isogeny G2 curve E': + // y² = x³ + 240i * x + 1012 + 1012i + A: Fp2.create({ c0: Fp.create(_0n9), c1: Fp.create(BigInt(240)) }), + // A' = 240 * I + B: Fp2.create({ c0: Fp.create(BigInt(1012)), c1: Fp.create(BigInt(1012)) }), + // B' = 1012 * (1 + I) + Z: Fp2.create({ c0: Fp.create(BigInt(-2)), c1: Fp.create(BigInt(-1)) }) + // Z: -(2 + I) +})); +function mapToG1(scalars) { + const { x, y } = getG1_SWU()(Fp.create(scalars[0])); + return isogenyMapG1(x, y); +} +function mapToG2(scalars) { + const { x, y } = getG2_SWU()(Fp2.fromBigTuple(scalars)); + return isogenyMapG2(x, y); +} + +// site/verify/core.js +var DST_VOTE = "IGNEUM_VOTE_V1_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_"; +var KEY_HASH_DOMAIN = "IgneumVoteKeyHash"; +var BLOCK_HASH_DOMAIN = "BlockHash"; +var te = new TextEncoder(); +function hexToBytes3(h) { + if (typeof h !== "string" || h.length % 2 || /[^0-9a-f]/i.test(h)) throw new Error("bad hex"); + const out = new Uint8Array(h.length / 2); + for (let i = 0; i < out.length; i++) out[i] = parseInt(h.slice(2 * i, 2 * i + 2), 16); + return out; +} +function bytesToHex3(b) { + let s = ""; + for (const x of b) s += x.toString(16).padStart(2, "0"); + return s; +} +var u16 = (v) => { + const b = new Uint8Array(2); + new DataView(b.buffer).setUint16(0, Number(v), true); + return b; +}; +var u322 = (v) => { + const b = new Uint8Array(4); + new DataView(b.buffer).setUint32(0, Number(v), true); + return b; +}; +var u64 = (v) => { + const b = new Uint8Array(8); + new DataView(b.buffer).setBigUint64(0, BigInt(v), true); + return b; +}; +function concat(parts) { + const n = parts.reduce((a, p) => a + p.length, 0); + const m = new Uint8Array(n); + let o = 0; + for (const p of parts) { + m.set(p, o); + o += p.length; + } + return m; +} +function headerHash(h, blake2b2) { + const levels = h.parents_by_level || []; + const parts = [u16(h.version), u64(levels.length)]; + for (const level of levels) { + parts.push(u64(level.length)); + for (const p of level) parts.push(hexToBytes3(p)); + } + parts.push( + hexToBytes3(h.hash_merkle_root), + hexToBytes3(h.accepted_id_merkle_root), + hexToBytes3(h.utxo_commitment), + u64(h.timestamp), + u322(h.bits), + u64(h.nonce), + u64(h.daa_score), + u64(h.blue_score) + ); + const bw = String(h.blue_work).replace(/^0+/, ""); + const bwBytes = bw.length ? hexToBytes3(bw.length % 2 ? "0" + bw : bw) : new Uint8Array(0); + parts.push(u64(bwBytes.length), bwBytes, hexToBytes3(h.pruning_point), hexToBytes3(h.vote_key_hash)); + return bytesToHex3(blake2b2(concat(parts), { dkLen: 32, key: te.encode(BLOCK_HASH_DOMAIN) })); +} +function voteKeyHash(pubkey, blake2b2) { + return bytesToHex3(blake2b2(pubkey, { dkLen: 32, key: te.encode(KEY_HASH_DOMAIN) })); +} +function voteMessage(chainId, index, checkpointHex) { + const head = te.encode("igneum-vote-v1/" + chainId); + return concat([head, new Uint8Array([0]), u64(index), hexToBytes3(checkpointHex)]); +} +function signerPositions(bitmapHex, voterCount) { + const bm = hexToBytes3(bitmapHex); + const out = []; + for (let p = 0; p < voterCount; p++) if (bm[p >> 3] & 1 << (p & 7)) out.push(p); + return out; +} +var fail = (reason, extra = {}) => ({ verified: false, reason, ...extra }); +function verifyCheckpoint(data, deps2) { + const t0 = (typeof performance !== "undefined" ? performance : Date).now(); + const done = (r2) => ({ ...r2, ms: Math.round(((typeof performance !== "undefined" ? performance : Date).now() - t0) * 10) / 10 }); + const { blake2b: blake2b2, bls: bls2 } = deps2; + try { + if (!data || !data.ok) return done(fail(data && data.error ? data.error : "no checkpoint data")); + const cert = data.certificate || {}; + const index = Number(data.index); + const voters = data.voters || []; + const headers = data.headers || []; + if (!headers.length) return done(fail("no headers")); + let checked = 0; + for (let i = 0; i < headers.length; i++) { + const h = headers[i]; + const got = headerHash(h, blake2b2); + if (got !== h.hash) return done(fail(`header ${i} hash does not recompute (${got.slice(0, 12)} vs ${String(h.hash).slice(0, 12)})`, { headers_checked: checked })); + if (i > 0) { + const direct = h.parents_by_level && h.parents_by_level[0] || []; + if (!direct.includes(headers[i - 1].hash)) return done(fail(`header ${i} does not name header ${i - 1} as a parent`, { headers_checked: checked })); + } + checked++; + } + const top = headers[headers.length - 1]; + if (top.hash !== data.hash) return done(fail("the last header is not the certified checkpoint block", { headers_checked: checked })); + if (data.previous && headers[0].hash !== data.previous.hash) return done(fail("the first header is not the previous locked checkpoint", { headers_checked: checked })); + if (BigInt(top.blue_score) < 30n * BigInt(index)) return done(fail(`checkpoint ${index} needs blue score at least ${30 * index}, header has ${top.blue_score}`, { headers_checked: checked })); + if (voters.length !== Number(cert.voter_count)) return done(fail(`certificate names ${cert.voter_count} voters, ${voters.length} given`, { headers_checked: checked })); + for (let i = 0; i < voters.length; i++) { + const v = voters[i]; + const pk = hexToBytes3(v.pubkey_hex); + if (pk.length !== 48) return done(fail(`voter ${i} key is not 48 bytes`, { headers_checked: checked })); + const derived = voteKeyHash(pk, blake2b2); + if (v.vote_key_hash && derived !== v.vote_key_hash) return done(fail(`voter ${i} key does not hash to its vote_key_hash`, { headers_checked: checked })); + v.vote_key_hash = derived; + if (i > 0 && !(voters[i - 1].vote_key_hash < v.vote_key_hash)) return done(fail("voter list is not in canonical order", { headers_checked: checked })); + if (!(Number(v.weight) >= 0) || !(Number(v.participation) >= 0 && Number(v.participation) <= 1)) return done(fail(`voter ${i} has a bad weight or participation`, { headers_checked: checked })); + } + const positions = signerPositions(cert.bitmap_hex, voters.length); + if (!positions.length) return done(fail("certificate has no signers", { headers_checked: checked })); + const L = bls2.longSignatures; + let aggPk, hm, sigOk; + try { + aggPk = L.aggregatePublicKeys(positions.map((p) => hexToBytes3(voters[p].pubkey_hex))); + hm = L.hash(voteMessage(data.chain_id, index, data.hash), DST_VOTE); + sigOk = L.verify(hexToBytes3(cert.aggregate_signature_hex), hm, aggPk); + } catch (e) { + return done(fail(`signature check failed: ${String(e.message || e).slice(0, 80)}`, { headers_checked: checked, signers: positions.length })); + } + if (!sigOk) return done(fail("aggregate signature does not verify", { headers_checked: checked, signers: positions.length })); + let signed = 0n, total = 0n, active = 0; + for (let i = 0; i < voters.length; i++) { + const w = BigInt(Math.round(Number(voters[i].weight))); + total += w; + active += Number(w) * Number(voters[i].participation); + } + for (const p of positions) signed += BigInt(Math.round(Number(voters[p].weight))); + if (total === 0n) return done(fail("total weight is zero", { headers_checked: checked, signers: positions.length })); + const fracActive = active > 0 ? Number(signed) / active : 0; + const fracTotal = Number(signed) / Number(total); + const quorum = 3 * Number(signed) >= 2 * active; + const floor = 30n * signed >= 17n * total; + const result = { + index, + hash: data.hash, + source: data.source, + network: data.chain_id, + signers: positions.length, + voters: voters.length, + signed_weight: Number(signed), + active_weight: active, + total_weight: Number(total), + weight_fraction_active: Math.round(fracActive * 1e4) / 1e4, + weight_fraction_total: Math.round(fracTotal * 1e4) / 1e4, + headers_checked: checked, + weights_at_index: data.voters_at_index, + weights_exact: Number(data.voters_at_index) === index + }; + if (!quorum) return done({ ...fail(`signed weight is ${(fracActive * 100).toFixed(1)}% of active, below 2/3`), ...result }); + if (!floor) return done({ ...fail(`signed weight is ${(fracTotal * 100).toFixed(1)}% of total, below 56.7%`), ...result }); + return done({ verified: true, ...result }); + } catch (e) { + return done(fail(`error: ${String(e.message || e).slice(0, 100)}`)); + } +} + +// site/light/core.js +var SEGMENT_RECORD_LEN = 2 + 8 + 8 + 32 + 48 + 20 + 340 + 32 + 96; +var ZERO32 = new Uint8Array(32); +var te2 = new TextEncoder(); +var strip = (s) => String(s).replace(/^0x/i, ""); +function concat2(parts) { + const n = parts.reduce((a, p) => a + p.length, 0); + const m = new Uint8Array(n); + let o = 0; + for (const p of parts) { + m.set(p, o); + o += p.length; + } + return m; +} +var bigOf = (b) => { + let v = 0n; + for (const x of b) v = v << 8n | BigInt(x); + return v; +}; +var keyed = (blake2b2, key) => (data) => blake2b2(data, { dkLen: 32, key: te2.encode(key) }); +function merkleRootFromPath(leaf, index, siblings, blake2b2) { + const H = keyed(blake2b2, "MerkleBranchHash"); + let h = leaf, i = index; + for (const s of siblings) { + h = i % 2 === 0 ? H(concat2([h, s])) : H(concat2([s, h])); + i = i >> 1; + } + return h; +} +function rlpDecode(b) { + const [item, rest] = rlpItem(b, 0); + if (rest !== b.length) throw new Error("rlp: trailing bytes"); + return item; +} +function rlpItem(b, o) { + if (o >= b.length) throw new Error("rlp: short"); + const x = b[o]; + if (x < 128) return [b.subarray(o, o + 1), o + 1]; + if (x < 184) { + const n2 = x - 128; + return [b.subarray(o + 1, o + 1 + n2), o + 1 + n2]; + } + if (x < 192) { + const ll = x - 183; + const n2 = Number(bigOf(b.subarray(o + 1, o + 1 + ll))); + return [b.subarray(o + 1 + ll, o + 1 + ll + n2), o + 1 + ll + n2]; + } + let n, start; + if (x < 248) { + n = x - 192; + start = o + 1; + } else { + const ll = x - 247; + n = Number(bigOf(b.subarray(o + 1, o + 1 + ll))); + start = o + 1 + ll; + } + const end = start + n; + if (end > b.length) throw new Error("rlp: list overruns"); + const items = []; + let p = start; + while (p < end) { + const [it, q] = rlpItem(b, p); + items.push(it); + p = q; + } + return [items, end]; +} +function verifyHeaderPath(headers, blake2b2, fromHash, toHash) { + if (!headers.length) throw new Error("no headers"); + for (let i = 0; i < headers.length; i++) { + const h = headers[i]; + const got = headerHash(h, blake2b2); + if (got !== strip(h.hash)) throw new Error(`header ${i} (${strip(h.hash).slice(0, 12)}) does not recompute: ${got.slice(0, 12)}`); + if (i > 0) { + const direct = h.parents_by_level && h.parents_by_level[0] || []; + if (!direct.includes(strip(headers[i - 1].hash))) throw new Error(`header ${i} does not name header ${i - 1} as a direct parent`); + } + } + if (fromHash && strip(headers[0].hash) !== strip(fromHash)) throw new Error("the first header is not the block the proof starts from"); + if (toHash && strip(headers[headers.length - 1].hash) !== strip(toHash)) throw new Error("the last header is not the certified checkpoint"); + return headers.length; +} +function verifyReceipt(receipt2, deps2) { + const { blake2b: blake2b2, bls: bls2, keccak } = deps2; + const steps = []; + const t0 = now(); + const step = (name, fn) => { + try { + const d = fn(); + steps.push({ name, ok: true, detail: d }); + return d; + } catch (e) { + steps.push({ name, ok: false, detail: String(e.message || e) }); + throw e; + } + }; + const done = (extra) => ({ ...extra, steps, ms: Math.round((now() - t0) * 10) / 10 }); + try { + const cp = receipt2.checkpoint.certificate; + const cert = step("certificate: BLS aggregate over the checkpoint, 2/3 of active and 17/30 of total weight", () => { + const r2 = verifyCheckpoint(cp, { blake2b: blake2b2, bls: bls2 }); + if (!r2.verified) throw new Error(r2.reason); + if (strip(cp.hash) !== strip(receipt2.checkpoint.hash) || receipt2.chain_id !== cp.chain_id) throw new Error("the receipt names another checkpoint or chain than its certificate"); + return `checkpoint ${r2.index} on ${cp.chain_id}, ${r2.signers} of ${r2.voters} voters, ${(r2.weight_fraction_total * 100).toFixed(1)}% of total weight`; + }); + const tx = step("the transaction hash is keccak256 of the raw signed transaction", () => { + const raw = hexToBytes3(strip(receipt2.raw_tx_hex)); + const h = bytesToHex3(keccak(raw)); + if (h !== strip(receipt2.tx_hash)) throw new Error(`the raw bytes hash to ${h.slice(0, 12)}, not ${strip(receipt2.tx_hash).slice(0, 12)}`); + return parseTx(raw); + }); + const n = step("header chain from the including block up to the checkpoint (every hash recomputed, every parent link checked)", () => verifyHeaderPath(receipt2.headers, blake2b2, receipt2.including_block.header.hash, cp.hash)); + step("the transaction is a leaf of the including block's hash_merkle_root", () => { + const ib = receipt2.including_block; + const sibs = ib.merkle_siblings.map((s) => hexToBytes3(strip(s))); + const root = merkleRootFromPath(hexToBytes3(strip(receipt2.tx_hash)), Number(ib.leaf_index), sibs, blake2b2); + if (bytesToHex3(root) !== strip(receipt2.headers[0].hash_merkle_root)) throw new Error("the merkle path does not reach the including block's hash_merkle_root"); + return `leaf ${ib.leaf_index} of ${ib.leaf_count}`; + }); + return done({ verified: true, tx, headers: n, checkpoint: Number(cp.index), certificate: cert, block: strip(receipt2.headers[0].hash), block_daa: receipt2.headers[0].daa_score, block_time: receipt2.headers[0].timestamp }); + } catch (e) { + return done({ verified: false, reason: String(e.message || e) }); + } +} +function parseTx(raw) { + const type = raw[0] <= 127 ? raw[0] : 0; + const body = rlpDecode(type ? raw.subarray(1) : raw); + const hex = (b) => "0x" + bytesToHex3(b); + if (type === 2) return { type, chain_id: bigOf(body[0]).toString(), nonce: bigOf(body[1]).toString(), to: body[5].length ? hex(body[5]) : null, value: bigOf(body[6]).toString(), data: hex(body[7]), gas: bigOf(body[4]).toString() }; + if (type === 1) return { type, chain_id: bigOf(body[0]).toString(), nonce: bigOf(body[1]).toString(), to: body[4].length ? hex(body[4]) : null, value: bigOf(body[5]).toString(), data: hex(body[6]), gas: bigOf(body[3]).toString() }; + return { type: 0, nonce: bigOf(body[0]).toString(), to: body[3].length ? hex(body[3]) : null, value: bigOf(body[4]).toString(), data: hex(body[5]), gas: bigOf(body[2]).toString() }; +} +function formatIgn(wei, decimals = 18) { + const v = BigInt(wei); + const base = 10n ** BigInt(decimals); + const whole = v / base; + let frac = (v % base).toString().padStart(decimals, "0").replace(/0+$/, ""); + if (frac.length > 6) frac = frac.slice(0, 6); + return whole.toString() + (frac ? "." + frac : ""); +} +var now = () => (typeof performance !== "undefined" ? performance : Date).now(); + +// tools/reference-apps/receipt/verify-receipt.src.mjs +var args = process.argv.slice(2); +var file = args.find((a) => !a.startsWith("--")); +if (!file) { + console.error("usage: node verify-receipt.js receipt.json [--tamper] (Igneum receipt, format igneum-receipt-v1; verifies offline)"); + process.exit(2); +} +var receipt = JSON.parse((0, import_node_fs.readFileSync)(file, "utf8")); +if (receipt.format !== "igneum-receipt-v1") { + console.error(`REFUSED: not an igneum-receipt-v1 file (format ${receipt.format})`); + process.exit(1); +} +var deps = { blake2b, bls: bls12_381, keccak: keccak_256 }; +var print = (r2) => { + for (const s of r2.steps) console.log(` ${s.ok ? "ok " : "REFUSED"} ${s.name} + ${s.detail}`); +}; +if (args.includes("--tamper")) { + const bad = JSON.parse(JSON.stringify(receipt)); + const h = bad.raw_tx_hex; + const i = 40; + bad.raw_tx_hex = h.slice(0, i) + (parseInt(h[i], 16) ^ 1).toString(16) + h.slice(i + 1); + const t2 = verifyReceipt(bad, deps); + console.log(`tampered copy (one nibble of the raw transaction): ${t2.verified ? "NOT REFUSED, this verifier is broken" : "REFUSED"}${t2.reason ? " :: " + t2.reason : ""}`); + if (t2.verified) process.exit(1); +} +var r = verifyReceipt(receipt, deps); +console.log(`receipt 0x${receipt.tx_hash} on ${receipt.chain_id} (Devnet 3, no value)`); +print(r); +if (!r.verified) { + console.log(`REFUSED: ${r.reason}`); + process.exit(1); +} +var t = r.tx; +console.log(`VERIFIED in ${r.ms} ms: ${formatIgn(t.value)} IGN to ${t.to || "contract creation"} (${t.value} wei), in block ${r.block.slice(0, 16)} at DAA ${r.block_daa} (${new Date(Number(r.block_time)).toISOString()}), final under checkpoint ${r.checkpoint}; ${r.headers} headers checked; ${r.certificate}.`); +console.log("As reported by the node, not proven by this file: from " + (receipt.tx_as_reported && receipt.tx_as_reported.from) + (receipt.execution ? `, execution status ${receipt.execution.status === "0x1" ? "success" : "failed"}` : "") + ". The voter table with weights came from the node (spec 10.1)."); diff --git a/site/scenes.html b/site/scenes.html index fd8804a07..71ff65e5f 100644 --- a/site/scenes.html +++ b/site/scenes.html @@ -92,6 +92,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/site/sitemap.xml b/site/sitemap.xml index 0307cfa6e..6f474e5c9 100644 --- a/site/sitemap.xml +++ b/site/sitemap.xml @@ -10,6 +10,9 @@ https://igneum.network/ledger2026-10-07weekly0.6 https://igneum.network/bench2026-10-07weekly0.6 https://igneum.network/evidence2026-10-07weekly0.6 + https://igneum.network/light2026-10-08weekly0.6 + https://igneum.network/receipt2026-10-08weekly0.6 + https://igneum.network/oracle2026-10-08weekly0.6 https://igneum.network/miners2026-10-07weekly0.6 https://igneum.network/journey2026-10-07weekly0.5 https://igneum.network/claims2026-10-07monthly0.5 diff --git a/site/wallet.html b/site/wallet.html index dc32d079b..ffcc15d62 100644 --- a/site/wallet.html +++ b/site/wallet.html @@ -124,6 +124,9 @@ The journeySix phases, four gates, the log behind them. Engineering logEvery measurement, with the commands that made it. EvidenceEvery claim and how far it is tested. + Light walletA balance your browser proves, trusting no node. + Payment receiptA receipt any third party re-verifies offline. + State oracle on SepoliaDevnet 3 balances read from another chain.
Learn
LitepaperThe design, as published. diff --git a/tools/ci/site-nav-check.mjs b/tools/ci/site-nav-check.mjs index 05acee2e6..a16a0d654 100644 --- a/tools/ci/site-nav-check.mjs +++ b/tools/ci/site-nav-check.mjs @@ -14,7 +14,7 @@ import { fileURLToPath } from 'node:url'; const here = dirname(fileURLToPath(import.meta.url)); const GROUPS = { mine: ['/miner', '/download', '/app', '/wallet', '/miners', '/dev-fee', '/faucet', '/metamask'], - network: ['/live', '/explorer', '/journey', '/bench', '/evidence'], + network: ['/live', '/explorer', '/journey', '/bench', '/evidence', '/light', '/receipt', '/oracle'], learn: ['/litepaper', '/income', '/ledger', '/claims', '/randomx', '/provenance'], }; const ROUTES = Object.values(GROUPS).flat(); diff --git a/tools/reference-apps/fixtures/dn3-checkpoint.json b/tools/reference-apps/fixtures/dn3-checkpoint.json new file mode 100644 index 000000000..d823fd298 --- /dev/null +++ b/tools/reference-apps/fixtures/dn3-checkpoint.json @@ -0,0 +1 @@ +{"ok":true,"now":"2026-10-08T10:14:34.652Z","source":"dn3","network":"igneum-devnet-3","chain_id":"igneum-devnet-3","index":2073,"hash":"584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6","blue_score":62191,"daa_score":62504,"certificate":{"bytes_hex":"1908000000000000584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a61d000000040000009ce1ca1b8944347aeeedf9539c2f6f85ea1b62593781a1b800fabfdcab67c7f371fa9e484c50007adce2b0bc097cdbb9b7e57d550af693c85be168b937c6d7c64a5b6cf8d228c1b578539b551194560829f40a3b5bee1a3835d6abd8b55d97625b28ca730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","voter_count":29,"bitmap_hex":"9ce1ca1b","aggregate_signature_hex":"8944347aeeedf9539c2f6f85ea1b62593781a1b800fabfdcab67c7f371fa9e484c50007adce2b0bc097cdbb9b7e57d550af693c85be168b937c6d7c64a5b6cf8d228c1b578539b551194560829f40a3b5bee1a3835d6abd8b55d97625b28ca73","aggregator":"0000000000000000000000000000000000000000000000000000000000000000","aggregator_proof_hex":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","carrier":"87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e"},"voters":[{"pubkey_hex":"9928c2b0b675e2c4e229872361dca13ccbe10c729999742afabaad4e7c1c37021e26db63bfd995fee85dcb2956e5d40e","weight":400,"participation":1},{"pubkey_hex":"86d4055487dad49b54a9a917ce9e3ccc40cbdcc02e871f06581ec30b5f00b8e723a7095473e05659bbc2a312acaacd55","weight":137,"participation":0.85},{"pubkey_hex":"918f8ffa2d4bb5c0976e61773bb9f5d2eec563faf265c8816e728e50a25ef974027ccd24ceac52daf7a39c9ce09d646b","weight":425,"participation":0.95},{"pubkey_hex":"a91a322e77979252dd93135f67c5dac4b3c410c986b82d652d76af4df50ac3147b7617f8c9b06d8def3a2e0bb18c9dfb","weight":169,"participation":0.95},{"pubkey_hex":"8fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f79","weight":213,"participation":1},{"pubkey_hex":"847b27c67fc39952d872c1fdb735c2c90fe390535f95b62d888190da51911967ef2dd7f7ff6f0ba26da0afd1aba9b0bd","weight":188,"participation":0.95},{"pubkey_hex":"ab0e69ce66b7bd1390afcdda40957712f20bcf703d14e1a33590f4040c8e4a52426428d3e14eb86f13f3f18cd29d90b8","weight":124,"participation":1},{"pubkey_hex":"b9aa12603d7eb40358ba4a749601c788f5cd160499734166bf517157762f7b87709fa0036123b04fdf16d0ff6cd843d0","weight":155,"participation":0.95},{"pubkey_hex":"a51fd976484399e2fbbe056d6edffac5746c835c42d7370f18d54a422ad1b6b9c77dec59cb5fdf29650227677befa29e","weight":289,"participation":0.95},{"pubkey_hex":"a7d1712d7c632f78233d0e88e437cf34d32b91685aa4a0a035649b8edcbf4255818e7d9366f26ef7668f02eb60c1eedf","weight":236,"participation":0.95},{"pubkey_hex":"af9c8c9e98d1faf0a141fbfb3cd20fd24a22d26e62d57b2dbee1ab2c734565f40c02c659d302e9ec3c34b7624626dd8b","weight":223,"participation":0.95},{"pubkey_hex":"a5e9f7ad42098dad804afc3b7b111d21fb7fd3ac907ed8858e24fb6acc07b22334607265be343f8ecb2e4ac86bd04040","weight":93,"participation":0},{"pubkey_hex":"91dc73280dde5971f9acbe49a39e0fd0268f9b79c488e4ee765bb11f90928bbd13ddcad19d7e316c6f2bad1393ed0329","weight":73,"participation":0.75},{"pubkey_hex":"964fb61b48ff085dd22fe3725fbce47af51ba5e8f466b4ef7ccf8beb5def296e669ad13f8b19c93709ab0f25ad7bbb98","weight":238,"participation":0.85},{"pubkey_hex":"a5c164cafce7f7d3c94f8209610f4fbdb799b4e4a8670acc151633ca66ec5dc0f8b206f605f66da396f4f86abb9a0367","weight":419,"participation":0.8},{"pubkey_hex":"a29b0b504f24de7e18c95da6541cc3404264f66fe3cc84cd5cd3f429d62fdc960702bb94142204baffc6ee849b2775b4","weight":357,"participation":0.95},{"pubkey_hex":"adf46d528e5d15b653cc8171bd1b5a3f5e7c2e90490964d345753dc50781ac62805c5e90e1dc928c76bf386fe18f1963","weight":118,"participation":0.95},{"pubkey_hex":"b9b9b078f2d6a03b0a3e6c395edd5fdaf73532e5b41e5d9fb9a4cbe29e7903b772a0d9ad133d7d22f60dac38cde0e62a","weight":175,"participation":0.95},{"pubkey_hex":"b273366b48f4de898b7a5454236f99c4ca160b5160fc758652b50e7d8aa17c15d012a7763c1b7a8a489011c40d73016e","weight":226,"participation":0.9},{"pubkey_hex":"9825a3571f08e4c7125eb27a2e39409f56c446015f2cd12f84428048eb38630ce50fee44ee0d084d77054d275654e1b7","weight":800,"participation":0.95},{"pubkey_hex":"8d059b79cbd4bc995da4d927ce07af9796c36fde60b6f61f4eb620f15302b3df1619d7ecbee92391a5a183d859cb0634","weight":51,"participation":0},{"pubkey_hex":"a81c2107b52192dc4844a859cf893e0e0546109105349a9959299285351d07de69c98ac210d81159991f00476a639f49","weight":304,"participation":0.95},{"pubkey_hex":"a656a841f22beb6c94b5ee03bcdcafd99d00fbb23fea7d5fc9048d5ebb731324188a88827e0fff3c3ad39a8445bf3789","weight":179,"participation":0.95},{"pubkey_hex":"a1a0b8b7eb79cd45bbfc1db1d44d94bcc3ceb683b2b4e2e2617b0d451eae58c14435b9627da281e0ea69591dbe8aad6f","weight":137,"participation":0.95},{"pubkey_hex":"ad7a53e9f2d5269aa1ef8e66adb7ae1e0d1042735786e0f1b0b88985131b8da4fdf769fd5a3ca6e8f0984a1da710ffdd","weight":310,"participation":0.95},{"pubkey_hex":"8665f209eb05ab653a144a3a5682dd1400a81ddac1bcc3fcee47d6b7db83754fe00531f2ffd710fa3a5353dd34fcc5f2","weight":151,"participation":0.95},{"pubkey_hex":"832a731927366ec7f43f33efaad01f859bf21d69b30c7a645772ecde382a50680fa03ceac4d325fea6c8506af7917cc8","weight":93,"participation":0.85},{"pubkey_hex":"aedc45a38203c1fed00b520084b17f8239c6894bfd593bb2c94613f6b0177b7d530773536805f2e723d46fd3535b6dd0","weight":480,"participation":0.9},{"pubkey_hex":"9132e86d8eedf6956cb7a1c57a3e0d830d0cdc2bd07fa7b4fe5ab8c8850ee8960a549b74b3c22c268077b8d94dbf410b","weight":426,"participation":0.95}],"voters_at_index":2073,"total_weight":7189,"active_weight":6570.05,"previous":{"index":2072,"hash":"b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"},"headers":[{"hash":"b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5","version":1538,"parents_by_level":[["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","53f499f448192bbd99955c89d7e53cd021c1fe98b9380135bf5f75596b020194","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e","3083e5fdb3f9e232b4d6df43c59f74b65ae5995efad4d234dca6f9ffbb24ab43"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"1bce746be8a3ea6fde607b2447bbb2ea5e8e49b0192e11a31adb35e9f8d0c48d","accepted_id_merkle_root":"a5d56f78e1f39af592a80619852b8521eb5ac0b23d725076e95807d4a0d0b3c6","utxo_commitment":"aab8d213f4ed049b964d9c78e7c247a7bbd70e52ffe14cce54b952e61b21a7ff","timestamp":"1791454383229","bits":486807493,"nonce":"9806440952826955915","daa_score":"62474","blue_work":"00000000000000000000000000000000000020d763d16cb6","blue_score":"62161","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"},{"hash":"e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","version":1538,"parents_by_level":[["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["b6fc8cd267467f81fab6d1b428803b3712a490455bcb0732a7f4da9528d223c5"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257","2906300e71fde8a8cfd0a7623c9d7f9d8da1e6038cf19154b1a73d6e019e140e"],["941818655c2ff5b0eaf50d470499eca5e007391dd1c34fb74cfea27dfa78da17","742af9c94262e2d936a203a044986585e3f84d6cdbf3137a785bfd1e2af96257"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"e792ee9918a7ed8f88b6e2131f042b3cb4831ef8fe8925045619e132a5657cc4","accepted_id_merkle_root":"12ebb2c767d6b7c1cdd6a539c34be0fe092aa22d8e2e7042460150141b368e21","utxo_commitment":"248a3f0c05de72cfedc5cb6a041535d0fa2ee7d1670413004862fbf8de44fc05","timestamp":"1791454385279","bits":486807872,"nonce":"11331325892495892558","daa_score":"62475","blue_work":"00000000000000000000000000000000000020d7a25dbd67","blue_score":"62162","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"},{"hash":"be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","version":1538,"parents_by_level":[["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["e61f5f990d97946f445f7fd09181050bddced64f88bb18cdb3de950057e25db1","06e6e73db5114ecf419fba9a69f040d559a08e71f35f534b06ed5e50491469f2","50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["50330a7235b15ad32b14794a1fe81a2f5098e8911c7775dc3b83213d42b9ec08"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"b3bf62fffde8116ccf60d8e1a1428c17bdfe489afc8567b9423235e6d6b0d40b","accepted_id_merkle_root":"baadea9ceaed2705c017d70df76e4c20174b13ac273f4ef20c08b244db1ce621","utxo_commitment":"bb294e2e4854e89a7de2ea66d70a668a0d7b9396fc35d27cf04cbe5f9a50c4a2","timestamp":"1791454387062","bits":486808765,"nonce":"13689219691975950748","daa_score":"62478","blue_work":"00000000000000000000000000000000000020d85dec17a9","blue_score":"62165","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"},{"hash":"9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","version":1538,"parents_by_level":[["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["be8a4884562d4ebc9dbde5d3aa38703b9a9947130fb604461553e18e869f76e6","b077a8d25bee13f401d545e2849f2d7fe52256e88f676f2f2be77a980b92caa4","4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"e1fc9812c5e3b09dfc9b41e565d3b9900b163e73b22204bc21fb9c07da723f4e","accepted_id_merkle_root":"b30c70446b74d14481d5bfc4e169926eaa9ffbe9b37cc9e2dc9dad49ef960271","utxo_commitment":"6a38938a9bf56e8aa25e50a7132e53e0be1266ddad380f7a72e5d914c6071006","timestamp":"1791454389556","bits":486808225,"nonce":"13135163825551323749","daa_score":"62481","blue_work":"00000000000000000000000000000000000020d9191846c8","blue_score":"62168","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4f342bdd527c7f7c291df6816da57c3b19b0920a4604b9eb90a4915ffed88418"},{"hash":"f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","version":1538,"parents_by_level":[["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["9fd69d881d98acfac0ccb7ec4fbfb61871806e14b0338f3fffd01f3d352acd13","85da7dd7ab6602db3d170b184bedec9a3504ba005810da3501914810678bdd68"],["4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"4e29d352e8560178ba0edaf20aae27d8a2fb1f381e349095863eca9f2089a56d","accepted_id_merkle_root":"c5fdd585cbdf9555f3c1c4042afdc9d0ef723c767d9acd1e3a91f7fbb481632c","utxo_commitment":"5c81ec6f29b90682170c1bd8ae913a7b844b91383fe38e1d44ed28a148eced76","timestamp":"1791454392689","bits":486806063,"nonce":"2224279295343779262","daa_score":"62483","blue_work":"00000000000000000000000000000000000020d995cd2c17","blue_score":"62170","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"befb7dfaf9638375bb11f30f5f9446c465eac043adcc75d8428d2eb48d3636e2"},{"hash":"4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65","version":1538,"parents_by_level":[["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","0403aa3ed223f12af3e567033c8bb43838cc2e6913e154477da7895e3d030b3e","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["f2a63ec10be5e5ebc35d23ebdf726ece541df4a30ecbf80996c80826a3ab4507","ae0b20e13ca107583fd8140b4dfbd50be37277084aaf3e179f5f13d2b0f5c76d","6379c9d6d4ae2188b19ad1e911a826e0e39b327984da3ba904d606d9be69617b"],["4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"fbd11f9303b37c0fbf331ccbb6945a1a434a67c30544dfd1d7d455977df4df43","accepted_id_merkle_root":"426854b5c0647e82f997596d1c6a6e785550742c434eb1bd37725378fc28b408","utxo_commitment":"2f24dd1feaf77f2bbfa428d0461638967c6a95916c9ee15a38500a95c61dd95c","timestamp":"1791454393964","bits":486804706,"nonce":"14299830519522743607","daa_score":"62487","blue_work":"00000000000000000000000000000000000020da91451507","blue_score":"62174","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"befb7dfaf9638375bb11f30f5f9446c465eac043adcc75d8428d2eb48d3636e2"},{"hash":"5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d","version":1538,"parents_by_level":[["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c640801443adfd937bbc6c8392fafebb50ce3fd490380744260db439e4eda65"],["4c90056a4c04ce565578febefce74e24513be43fd76e103f70691d702943fa68"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"032ac4597fe232c33f787e25ee152d0153891396c3bccd67f0943c64e7a461e3","accepted_id_merkle_root":"2b9a5ab807f3df416dff9f818c4674906be66916a1d73da48c08b3231c9ec649","utxo_commitment":"420d38362c77d692b10233789ac0d148d2672624e5fc5bdf6723d3038db47241","timestamp":"1791454397135","bits":486803507,"nonce":"6165388105602898249","daa_score":"62488","blue_work":"00000000000000000000000000000000000020dad07984a5","blue_score":"62175","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","version":1538,"parents_by_level":[["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"9db8b343d7464b4d5eee138eff7990e6daee3ecd1a8d79446a67904944aa2c28","accepted_id_merkle_root":"ab89bba9c5ed4098dc3303963922fa9f169c236b10f18533945a0196c0373ae4","utxo_commitment":"83afd38960fa07d782d3aa73f022949a6be3d65ebcc26e2134076ee86982b32f","timestamp":"1791454401838","bits":486804411,"nonce":"8431543040021771680","daa_score":"62489","blue_work":"00000000000000000000000000000000000020db0ff75f6a","blue_score":"62176","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"188ad3d3f6c9e6f40664d80ce742f1bd61c28f18ea68b5f51d5c254dc8e54d72"},{"hash":"bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","version":1538,"parents_by_level":[["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["a555aa00c7751308b3f8b6266f80223826b58a626f730f227d525f2de2069edc","788ef345a0f913e682b789d8607c41272fd2794f101a1252b053abd1769c1fa0","553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["553f7ca88c05e7c3c9152a35ca8fbe640968a8876a559fe82b83d56feaaeb714"],["5ce6fd47068bc414392fbb4c8e526381496c0f4551e66fe4a531cb4e5e039f4d"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1","4b1aaa41a67163a31313fc7df958156a89ce50044784a21d4d0150486e9ecdcc"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["765dca20e85777222f30f24be0aa87ff57d622958c183886db0c994eda889dd1"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"0ab6b2cf59f39e3a0c559f54f8803bbcf1f78433a377e17d8c262f5105009e9f","accepted_id_merkle_root":"14c00d804891780475580d3e40c5e4b6b3fe47a9b2046b4fbfdde120718b08c8","utxo_commitment":"314e24c100eda1c1d7e1255e8a097e11b5d0ccc361f41cb3b2c875b59ffb8bff","timestamp":"1791454405068","bits":486806593,"nonce":"843366023127751684","daa_score":"62492","blue_work":"00000000000000000000000000000000000020dbcdcaaff4","blue_score":"62179","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d5e75a4f2ba0f288eaaffd4639883922a5059e0fc7ea59cbe6dc230bc8941f56"},{"hash":"b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","version":1538,"parents_by_level":[["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["bc8304e8f635813301e8fdbea30ce68def57cb0282f1182ecf7e2b69010bc9be","8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88","bc72668ea80b8022546bc2d7febf98f9a10bc6db2fa6194453b0f828557be27d"],["8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6","14a7a7dc07cfccf0dbc83a3260791822b79c02a8e1c8f029f9e4781cb2132f88"],["8ce252758a4c20f44237cd8fcbf4a313f3751bfb43f15c27dd0a6d70ae9a584f","1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"c88b627268df0e213a7de7d76ef2bf8ce3de0399bf3cc6f1be3d83c26a97fe83","accepted_id_merkle_root":"1b707e9e95b4f594e68802cb95ed6250394dc14d74d7f6b2e8e945b6c29988f4","utxo_commitment":"da63c70e5aaee545802bfdba8e607eb81736f09149b718d47ddafd45b7f1b7fc","timestamp":"1791454408365","bits":486806561,"nonce":"351908407397842287","daa_score":"62497","blue_work":"00000000000000000000000000000000000020dd085b8dcb","blue_score":"62184","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"fc69d3136c34b743f49e9b9e93f331f4765357e87fba541da1975d18a4983c1d"},{"hash":"ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","version":1538,"parents_by_level":[["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a","a25ab6db8c1985e0db1393941fb1f07f0ce86c903fdee4342b434ab7c5af83f9","a242f80cb8f4bd161245fe2b6e377228a8aab3a1c3b4cc9f8f35835ca8d1dee9"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"da3d291d97e7496f7a5f25333648844cc73a06873cebc3dfc5b906f0b168c7dc","accepted_id_merkle_root":"f137ad5edc2f14e13f55612b330dd034bbdea1a7265604d759fdf345d6cd3960","utxo_commitment":"e45fc8b94e24149fe6f2caf797e4e8b9ea4db72b57992c7b4822d209d9dbc7ad","timestamp":"1791454410117","bits":486806455,"nonce":"144994767324999535","daa_score":"62500","blue_work":"00000000000000000000000000000000000020ddc4c0ad55","blue_score":"62187","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"},{"hash":"889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","version":1538,"parents_by_level":[["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["ec65cb0de8aa90f601fc63a30b8748b79eb2683ae806ebf84ff7af637ac5c1a7","d5660782ef2339e658ab94784ee0d90da5296671bede32fb9adb8d7a585d9687"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a"],["b303ba0e92291e042317bcc73da70628f0ec185082622fcccb21de55c8f0553a"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"aef071fda0c827d993dd5a6ad5e60b96f7eec6b84fea9b5dbe8d96951b4abee5","accepted_id_merkle_root":"9d0253d70781dcc9e312a43b956e99bac56853df2df993ac0eb1c2ff51c13c97","utxo_commitment":"7862c260da86f0acbf981b159277520c2c212aeddbce1f513191fcaef7096ced","timestamp":"1791454413146","bits":486806058,"nonce":"2290275900255699570","daa_score":"62502","blue_work":"00000000000000000000000000000000000020de424f581c","blue_score":"62189","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"},{"hash":"584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6","version":1538,"parents_by_level":[["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["889d7da8e5356973d335324a448c976f80857e34c307ba8709142645bf9c20dd","4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["4d50f94741a7fadef78b3cf7c0087a94288f549227d1d42f6bb56e3212a3d3f5"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"8cd65577999f03ad8fea02f90d3af3b60d5dcb13be60a447f7ffe9cc4fc84f3d","accepted_id_merkle_root":"db89bb72387e22d0f98881dd95f972bf969a7e4a0aa6d8810f1ddf9d3e44411d","utxo_commitment":"4887bb257404d69928e02bc4d2401aa7bcc18e469037ba6fc086ce4cbf1f24d0","timestamp":"1791454414223","bits":486805296,"nonce":"8348923008996234332","daa_score":"62504","blue_work":"00000000000000000000000000000000000020debff6a6f6","blue_score":"62191","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"}],"headers_complete":true,"rule":{"quorum_active":"2/3","floor_total":0.567,"floor_total_exact":"17/30","vote_message":"igneum-vote-v1/ 0x00 index_le64 checkpoint_hash","dst":"IGNEUM_VOTE_V1_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_","key_hash":"BLAKE2b-256 keyed IgneumVoteKeyHash over the 48-byte G1 key"},"stored_at":"2026-10-08 10:14:30.409303+00"} \ No newline at end of file diff --git a/tools/reference-apps/fixtures/dn3-receipt.json b/tools/reference-apps/fixtures/dn3-receipt.json new file mode 100644 index 000000000..c3b0822c5 --- /dev/null +++ b/tools/reference-apps/fixtures/dn3-receipt.json @@ -0,0 +1 @@ +{"format":"igneum-receipt-v1","issued":"2026-10-08T10:26:49.686Z","chain_id":"igneum-devnet-3","tx_hash":"ff36cb16f23adffe82968d621346d5215775ffecd0deda1d8bf3db2c2cbf7501","raw_tx_hex":"02f87682116f824cbe843b9aca008565697ae28e82e902947be2f2601e6b269061d1375b2edd7ef58a6fa861870297d486920a0080c080a0f899a77d8d24e58c69b30500f4bbc83ed33ac530898f790893582b12ee14c89ca036398e03d40f19f5c11080a77dbc0dc455b1b348ce3eacc12fa241aefce9d22f","checkpoint":{"hash":"f52c685c3c4b4bdfe1b7393f50aacc677b8fc518565034c3054aa4675e7761b8","index":2079,"chain_block":27039,"certificate":{"ok":true,"now":"2026-10-08T10:17:42.131Z","source":"dn3","network":"igneum-devnet-3","chain_id":"igneum-devnet-3","index":2079,"hash":"f52c685c3c4b4bdfe1b7393f50aacc677b8fc518565034c3054aa4675e7761b8","blue_score":62371,"daa_score":62684,"certificate":{"bytes_hex":"1f08000000000000f52c685c3c4b4bdfe1b7393f50aacc677b8fc518565034c3054aa4675e7761b81d000000040000005fb68e1995436f87ef6e84d5b6056598312ff65f3b8123615101cc68981327e1cd85632461a73ff80d2f9d82c7c36943c6b0935c010b878fa83f9ca3d2075bd4440a9e16418d935071841538d76cc1ef129ca57312c25ccd428855d7e9b51a71de6b04ee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","voter_count":29,"bitmap_hex":"5fb68e19","aggregate_signature_hex":"95436f87ef6e84d5b6056598312ff65f3b8123615101cc68981327e1cd85632461a73ff80d2f9d82c7c36943c6b0935c010b878fa83f9ca3d2075bd4440a9e16418d935071841538d76cc1ef129ca57312c25ccd428855d7e9b51a71de6b04ee","aggregator":"0000000000000000000000000000000000000000000000000000000000000000","aggregator_proof_hex":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","carrier":"85e995be3ab2edd573b6b27d8d7c65fb2942bcd1d436dac41a04bbf9297ffbca"},"voters":[{"pubkey_hex":"9928c2b0b675e2c4e229872361dca13ccbe10c729999742afabaad4e7c1c37021e26db63bfd995fee85dcb2956e5d40e","weight":398,"participation":0.85},{"pubkey_hex":"86d4055487dad49b54a9a917ce9e3ccc40cbdcc02e871f06581ec30b5f00b8e723a7095473e05659bbc2a312acaacd55","weight":138,"participation":0.9},{"pubkey_hex":"918f8ffa2d4bb5c0976e61773bb9f5d2eec563faf265c8816e728e50a25ef974027ccd24ceac52daf7a39c9ce09d646b","weight":418,"participation":0.95},{"pubkey_hex":"a91a322e77979252dd93135f67c5dac4b3c410c986b82d652d76af4df50ac3147b7617f8c9b06d8def3a2e0bb18c9dfb","weight":175,"participation":0.95},{"pubkey_hex":"8fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f79","weight":225,"participation":0.9},{"pubkey_hex":"847b27c67fc39952d872c1fdb735c2c90fe390535f95b62d888190da51911967ef2dd7f7ff6f0ba26da0afd1aba9b0bd","weight":187,"participation":0.9},{"pubkey_hex":"ab0e69ce66b7bd1390afcdda40957712f20bcf703d14e1a33590f4040c8e4a52426428d3e14eb86f13f3f18cd29d90b8","weight":135,"participation":0.95},{"pubkey_hex":"b9aa12603d7eb40358ba4a749601c788f5cd160499734166bf517157762f7b87709fa0036123b04fdf16d0ff6cd843d0","weight":161,"participation":0.95},{"pubkey_hex":"a51fd976484399e2fbbe056d6edffac5746c835c42d7370f18d54a422ad1b6b9c77dec59cb5fdf29650227677befa29e","weight":281,"participation":0.95},{"pubkey_hex":"a7d1712d7c632f78233d0e88e437cf34d32b91685aa4a0a035649b8edcbf4255818e7d9366f26ef7668f02eb60c1eedf","weight":234,"participation":0.9},{"pubkey_hex":"af9c8c9e98d1faf0a141fbfb3cd20fd24a22d26e62d57b2dbee1ab2c734565f40c02c659d302e9ec3c34b7624626dd8b","weight":230,"participation":1},{"pubkey_hex":"a5e9f7ad42098dad804afc3b7b111d21fb7fd3ac907ed8858e24fb6acc07b22334607265be343f8ecb2e4ac86bd04040","weight":93,"participation":0},{"pubkey_hex":"91dc73280dde5971f9acbe49a39e0fd0268f9b79c488e4ee765bb11f90928bbd13ddcad19d7e316c6f2bad1393ed0329","weight":78,"participation":0.95},{"pubkey_hex":"964fb61b48ff085dd22fe3725fbce47af51ba5e8f466b4ef7ccf8beb5def296e669ad13f8b19c93709ab0f25ad7bbb98","weight":224,"participation":0.9},{"pubkey_hex":"a5c164cafce7f7d3c94f8209610f4fbdb799b4e4a8670acc151633ca66ec5dc0f8b206f605f66da396f4f86abb9a0367","weight":411,"participation":0.95},{"pubkey_hex":"a29b0b504f24de7e18c95da6541cc3404264f66fe3cc84cd5cd3f429d62fdc960702bb94142204baffc6ee849b2775b4","weight":355,"participation":0.95},{"pubkey_hex":"adf46d528e5d15b653cc8171bd1b5a3f5e7c2e90490964d345753dc50781ac62805c5e90e1dc928c76bf386fe18f1963","weight":121,"participation":0.95},{"pubkey_hex":"b9b9b078f2d6a03b0a3e6c395edd5fdaf73532e5b41e5d9fb9a4cbe29e7903b772a0d9ad133d7d22f60dac38cde0e62a","weight":187,"participation":0.95},{"pubkey_hex":"b273366b48f4de898b7a5454236f99c4ca160b5160fc758652b50e7d8aa17c15d012a7763c1b7a8a489011c40d73016e","weight":219,"participation":1},{"pubkey_hex":"9825a3571f08e4c7125eb27a2e39409f56c446015f2cd12f84428048eb38630ce50fee44ee0d084d77054d275654e1b7","weight":783,"participation":1},{"pubkey_hex":"8d059b79cbd4bc995da4d927ce07af9796c36fde60b6f61f4eb620f15302b3df1619d7ecbee92391a5a183d859cb0634","weight":51,"participation":0.05},{"pubkey_hex":"a81c2107b52192dc4844a859cf893e0e0546109105349a9959299285351d07de69c98ac210d81159991f00476a639f49","weight":302,"participation":0.9},{"pubkey_hex":"a656a841f22beb6c94b5ee03bcdcafd99d00fbb23fea7d5fc9048d5ebb731324188a88827e0fff3c3ad39a8445bf3789","weight":190,"participation":0.95},{"pubkey_hex":"a1a0b8b7eb79cd45bbfc1db1d44d94bcc3ceb683b2b4e2e2617b0d451eae58c14435b9627da281e0ea69591dbe8aad6f","weight":143,"participation":0.85},{"pubkey_hex":"ad7a53e9f2d5269aa1ef8e66adb7ae1e0d1042735786e0f1b0b88985131b8da4fdf769fd5a3ca6e8f0984a1da710ffdd","weight":312,"participation":0.9},{"pubkey_hex":"8665f209eb05ab653a144a3a5682dd1400a81ddac1bcc3fcee47d6b7db83754fe00531f2ffd710fa3a5353dd34fcc5f2","weight":156,"participation":0.95},{"pubkey_hex":"832a731927366ec7f43f33efaad01f859bf21d69b30c7a645772ecde382a50680fa03ceac4d325fea6c8506af7917cc8","weight":96,"participation":0.95},{"pubkey_hex":"aedc45a38203c1fed00b520084b17f8239c6894bfd593bb2c94613f6b0177b7d530773536805f2e723d46fd3535b6dd0","weight":462,"participation":1},{"pubkey_hex":"9132e86d8eedf6956cb7a1c57a3e0d830d0cdc2bd07fa7b4fe5ab8c8850ee8960a549b74b3c22c268077b8d94dbf410b","weight":425,"participation":1}],"voters_at_index":2080,"total_weight":7190,"active_weight":6667,"previous":{"index":2078,"hash":"7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"},"headers":[{"hash":"7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1","version":1538,"parents_by_level":[["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9"],["3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"4c7c48e50b7101d9e1d2c44cbe125158cb3d1d6df04f690600ac82669df5fed3","accepted_id_merkle_root":"c36a37d1ad3c77875c2bf3ed5c41c54ec9a986ee935a241c375e12151001cec7","utxo_commitment":"4f55e3b8e863255bbd372226a406b513f2b91395468200db20bb5c9bebbe45c3","timestamp":"1791454557522","bits":486805145,"nonce":"17471658679304617848","daa_score":"62653","blue_work":"00000000000000000000000000000000000021032056d687","blue_score":"62340","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","version":1538,"parents_by_level":[["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9"],["3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"0922bfaef03b1247faae945599fb42e5143342ba3d82596a51244d22e3138915","accepted_id_merkle_root":"453780326623069101b996e16126a3aca8f7f0464971e9fa29b8499a2bcfdc77","utxo_commitment":"7336650245d85a3c0181bd2f1f7ca7ea58a53e430f47a749b1a63a39551bfc5f","timestamp":"1791454559074","bits":486804850,"nonce":"12591743088431082128","daa_score":"62654","blue_work":"00000000000000000000000000000000000021035f708ee9","blue_score":"62341","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d","version":1538,"parents_by_level":[["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"bd6070b081f41a32c55a66d8631c79c5d2510ed823b4b33922a8590de5f2726f","accepted_id_merkle_root":"236ad281e4212f9fd9063fe143cc739e320a9b7f5d81cc80d70469c520785740","utxo_commitment":"93b47e9fb4b306c179fcebd9b1f5041abb498334e2d01d771d70040ce39d1724","timestamp":"1791454561723","bits":486805081,"nonce":"2373766413771558325","daa_score":"62656","blue_work":"0000000000000000000000000000000000002103dd802b95","blue_score":"62343","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","version":1538,"parents_by_level":[["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"e55afd9aa55af073931f2f26217141d6c417932f9ef91b222515b13b3a1d5f77","accepted_id_merkle_root":"341b2a385097302311faeb4cf7c3c8319a273d2dbad2b4df32bf9248a14b8131","utxo_commitment":"d553718e9045d4183c0fa741381db2eb3822e1476bcd428d63d60f7f3e64cd13","timestamp":"1791454563413","bits":486805746,"nonce":"2804473959083381571","daa_score":"62657","blue_work":"00000000000000000000000000000000000021041c9dc7a0","blue_score":"62344","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","version":1538,"parents_by_level":[["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"82f1d1abf19b5d75718cad7eabffc9d3afd6e9563def49a14dafa33ee822cdfb","accepted_id_merkle_root":"4dad8b758a1ddc96bf0be0564cf33c4ba68a61fda3802c78333d49b00edd9446","utxo_commitment":"3514f6eb11131da7713e576ab3abeaed509718e13accab8c0c15ebbad07d8e2e","timestamp":"1791454569267","bits":486806361,"nonce":"7891645297064515763","daa_score":"62660","blue_work":"0000000000000000000000000000000000002104d9a5f76b","blue_score":"62347","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d4c62c2844b10e981e1de4fd5ae94e3379069048b9d5fd10b89c65d019ef3dc8"},{"hash":"79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","version":1538,"parents_by_level":[["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"9d41d3827046111a5605c68a17da1b1debe7c3c48832896739a5124eea3d4826","accepted_id_merkle_root":"1965a6564c2d4881b9d8a3b9cf791ffc430792ab82634d615a5889cf7f9ab7eb","utxo_commitment":"1591ae4b78956c63a6a399b2619ad333437b49a946a33e143f8b5884edd29739","timestamp":"1791454572144","bits":486807730,"nonce":"3829273376615020883","daa_score":"62663","blue_work":"00000000000000000000000000000000000021059628a45f","blue_score":"62350","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"6e80f3eff6b62c476666f8f81487b773d5847d9dcf2af0baa67d270b85bfb19a"},{"hash":"f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","version":1538,"parents_by_level":[["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"9edd44d7e6e1a03b6936fc19824bb6f89a697593e3011dcb01de31e7b4df2191","accepted_id_merkle_root":"504c3fb496e0a41c27e64b9970afeaa586fe95ffebbf7ccbe7dae9783ebe5da4","utxo_commitment":"7adba5ea382f5e503519bf3159d3a4ff2e63e5974f349d2325e9da9acf886774","timestamp":"1791454575744","bits":486807706,"nonce":"531029752191280023","daa_score":"62665","blue_work":"000000000000000000000000000000000000210613250059","blue_score":"62352","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","version":1538,"parents_by_level":[["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"ee2e477abc3cddecaa419bc7baf89cb93c031c4b0837a8d475fb3b980a90a274","accepted_id_merkle_root":"c9a07a82df0fc8ca01898839375f5f814ccf94bda81a519c3a6c3057845566cc","utxo_commitment":"36e8c5504f602e65d258f19dad65d3f0da5efa320955e715c35757653052e3b0","timestamp":"1791454578596","bits":486807814,"nonce":"5268551126911609932","daa_score":"62668","blue_work":"0000000000000000000000000000000000002106cea266a2","blue_score":"62355","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"},{"hash":"edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","version":1538,"parents_by_level":[["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"2c57b6d03ee093857f570b2f7a6247bab5a464876030bdf5b4a8d3f2d3e0445a","accepted_id_merkle_root":"e7ac5482030087b02378ce6f5ce2bf4c9a1b8aff3403eba4f06e25bb9caef6e5","utxo_commitment":"43b0f8f4a07d01b653d34abc022054c3f88830be12d7a51deb99fdb69c98089a","timestamp":"1791454580685","bits":486807798,"nonce":"4449508512901646278","daa_score":"62671","blue_work":"000000000000000000000000000000000000210789ffe109","blue_score":"62358","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"befb7dfaf9638375bb11f30f5f9446c465eac043adcc75d8428d2eb48d3636e2"},{"hash":"c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","version":1538,"parents_by_level":[["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"ea09d58d37832236ca3048ef979ebcf06068f2f8a06fc3900e63e69cbc29868d","accepted_id_merkle_root":"98690076edd6fcfcf1599e97e722f36148f01b8a13270c5e5a87ecda46684ce0","utxo_commitment":"366183fba638cca275b151af112a48e6a4bb48c93c190ff87b534ce424056348","timestamp":"1791454583542","bits":486806470,"nonce":"13123750701574824748","daa_score":"62673","blue_work":"000000000000000000000000000000000000210806f422cf","blue_score":"62360","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"463ed7cd0f93054b4ee64273d4a68916c630f8527ae5e227609289c7f336c316"},{"hash":"b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","version":1538,"parents_by_level":[["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"40087a0e05f593a600bafdb63bb504bab46b881d06aad1dc0eed2851bee71c91","accepted_id_merkle_root":"d6e25498e34d0dbb597737d46bde0025a8a6430a436ad639241167f6aea852c4","utxo_commitment":"c5f0829f1597614e0fc1c420820f8bf678d9ef3e7a7a6716625b8f0d49de25ae","timestamp":"1791454586887","bits":486806161,"nonce":"15057212031821086333","daa_score":"62676","blue_work":"0000000000000000000000000000000000002108c3018058","blue_score":"62363","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","version":1538,"parents_by_level":[["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"aac24f918e4c897899593e0f5d3c030ce8a08c6e341dc0f27e848979a4100c79","accepted_id_merkle_root":"c44b1e7508e16df2b97bc0dff2b6a018be4491efed3555b146128906610681bc","utxo_commitment":"d5151153aa2d6bfaf8b74dc23f4150ba2c724347d43083fe16fe6ee5d07a5278","timestamp":"1791454588937","bits":486806974,"nonce":"3040225968079214040","daa_score":"62678","blue_work":"000000000000000000000000000000000000210940a758f5","blue_score":"62365","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d5e75a4f2ba0f288eaaffd4639883922a5059e0fc7ea59cbe6dc230bc8941f56"},{"hash":"44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","version":1538,"parents_by_level":[["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"69d1cbe8a3ad98074117a432410a94a595d8336e6f9a0ab65d50297833882359","accepted_id_merkle_root":"f786ee49183dbe90c22c3794a7c879a1dc2697c58dc5f1db2406c223b1bf3cee","utxo_commitment":"b6a258ecc5de3d93c416a2c4abd33fc8c3f2209fb23ed12e1dcdc0987189b392","timestamp":"1791454592208","bits":486806547,"nonce":"13559917227620654393","daa_score":"62681","blue_work":"0000000000000000000000000000000000002109fcda4a65","blue_score":"62368","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"},{"hash":"f52c685c3c4b4bdfe1b7393f50aacc677b8fc518565034c3054aa4675e7761b8","version":1538,"parents_by_level":[["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"e33954e381d87b8eaffe9b9cd6956f9f6e1e41f53808af2e288275da1706aec0","accepted_id_merkle_root":"172b8b39dab65ec7ec9c04842e1ec8f2d1e40ee014dd8912fe1ad8204958127c","utxo_commitment":"420c0eab255137ddb34d53320adea8c26e46ec1b63fe857affcde761ca2d13f8","timestamp":"1791454593552","bits":486805980,"nonce":"9356002538226592155","daa_score":"62684","blue_work":"000000000000000000000000000000000000210ab904fd6e","blue_score":"62371","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"}],"headers_complete":true,"rule":{"quorum_active":"2/3","floor_total":0.567,"floor_total_exact":"17/30","vote_message":"igneum-vote-v1/ 0x00 index_le64 checkpoint_hash","dst":"IGNEUM_VOTE_V1_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_","key_hash":"BLAKE2b-256 keyed IgneumVoteKeyHash over the 48-byte G1 key"},"stored_at":"2026-10-08 10:17:36.010194+00"}},"including_block":{"header":{"hash":"2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20","version":1538,"parents_by_level":[["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"792600fc64865acaa73cf48fc0fc06c996aa3c3e837cf4ddec94dbb74d94db44","accepted_id_merkle_root":"fa3393eff91c3208a29aaa68e3ab0af8f309f0d19eeda53d01892b98e0196228","utxo_commitment":"28abb82759fb44459cfa46a7f0bba669a7e371c31dce4986e3782fb9785c2b3d","timestamp":"1791454424560","bits":486805716,"nonce":"11639642898686864438","daa_score":"62508","blue_work":"00000000000000000000000000000000000020dfbc77ac31","blue_score":"62195","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d1bd5724466458df663502839544aeed283b6e08bd0dcaec9edc5e2ef8d5b944"},"leaf_index":1,"leaf_count":17,"merkle_siblings":["d8ffe331eb3fc8b683bb74fba98115a580ab04a7cfaffb2566e95885eaad6acc","d426e827c9892168a026369e397b1da195dcbdb373b247625ed4023bab84bfd1","13117f61367e6611ab8da145a625a049593cf8376ec2e9c088237f14e12c14d7","161ee71a0f88a4792f50f22c559ec5ffef4b6f599213b05a743f01e756b8425a","242f45564c28fece5e5390dd4579138918852d29f2bc84d88b9947f3ead3bbad"]},"headers":[{"hash":"2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20","version":1538,"parents_by_level":[["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["8f53d4bd0dc329a61f9c36aa85992bcc6597aa420558aca49afab5c0fa90dfd4"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"792600fc64865acaa73cf48fc0fc06c996aa3c3e837cf4ddec94dbb74d94db44","accepted_id_merkle_root":"fa3393eff91c3208a29aaa68e3ab0af8f309f0d19eeda53d01892b98e0196228","utxo_commitment":"28abb82759fb44459cfa46a7f0bba669a7e371c31dce4986e3782fb9785c2b3d","timestamp":"1791454424560","bits":486805716,"nonce":"11639642898686864438","daa_score":"62508","blue_work":"00000000000000000000000000000000000020dfbc77ac31","blue_score":"62195","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d1bd5724466458df663502839544aeed283b6e08bd0dcaec9edc5e2ef8d5b944"},{"hash":"203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","version":1538,"parents_by_level":[["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4","51591e084ce9a99bedf0328467c3365955fff80df1f80c3bf6ba02ee8dcbd1f6","2826edb3d386a758a9a8118cb8891c86c2ad378ab0d51ade88e83853374b6c20"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"59a22f4e6f0f1cda2b1f639579d3e7d47999b4c6c5ac447295f193e2f99e9e0a","accepted_id_merkle_root":"3f1f1d931932bc003eaf52ba583fce565c7cf1a3e9647ed9b63341eb0f917e8b","utxo_commitment":"ab7be25ccc49cbc97a0e5b3282ad8c2e9cabe094f35fe8d4d908dd64f60df5f7","timestamp":"1791454430048","bits":486806789,"nonce":"36825711022905337","daa_score":"62514","blue_work":"00000000000000000000000000000000000020e1358bc051","blue_score":"62201","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"},{"hash":"19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2","version":1538,"parents_by_level":[["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","2f25bb4a107db2d271961ab2cd95a22e45c48fd7167aa1b0008361cfb5e6d0b6"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"91262adbb23287da989bd5409a80fb5494f7874d87372b38382ef57c363f0a57","accepted_id_merkle_root":"986a4dabcf3b66fc2f2640efa39a4e96fe57e94d592745a79e61fe6bd3d58315","utxo_commitment":"560b1bd49fa66964cd28e53acb3bfae657ba8072a937bd3273999c6e3367b155","timestamp":"1791454432242","bits":486806223,"nonce":"9713462890917001178","daa_score":"62517","blue_work":"00000000000000000000000000000000000020e1f20ae365","blue_score":"62204","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","version":1538,"parents_by_level":[["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["19b8a36b389f74f0823370d1b9dc24f9441079a5699df6878830adfb641355b2"],["203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476"],["c84b5806b039f94e7a91e8938f063fa21e378696309dadc77f38fb7b845b8cf4"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"42c7e11d0e10181be2b58d9a6ff86328fd986139b3bf25cdec0208923be8f7eb","accepted_id_merkle_root":"4e2e94ddd7dcf17522af4b44744d3a2ca66f9378fedda47884efe5dadcedfdaa","utxo_commitment":"6c8657d4f804e5ae3c933e82d4881c0dc9b79864ac5f53bbe68157dc874b713d","timestamp":"1791454437356","bits":486805862,"nonce":"1115407898743155987","daa_score":"62518","blue_work":"00000000000000000000000000000000000020e230e360ec","blue_score":"62205","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0609a6f2913130b1ae333c0676d72c213933f4df7d8c37f09e59ba0080040b81"},{"hash":"36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","version":1538,"parents_by_level":[["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a","9eb40dd4de8266f246927027211a5b1af11c146b96a04e2f64b844b440a6e46e"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a"],["ec974da1841780abf28de5c3864ef11211353d62866e0ef543e3f16361acea2a"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["584bae448f96d16ddaece4d2c80b87146af781a60e195feb886c2c67e172a6a6"],["1762a70c2cef90d0871d3ee7001a40764dcf8e9979bf1747135c22bfefe8c2e6"],["a9caf6e5d91959f76af1768a14a948a475a53c6361db928c9c78b9fb7fec077e"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"f5552fe5b708a4f2fe40e42c53fcf78ec60b92bcd06dd0d632cc7b4ea39c3514","accepted_id_merkle_root":"34a91fa4368187b6354b170a65c41c705b031e34da4fd320eae2bb51f580cd08","utxo_commitment":"94f66fe607e42134f949c5c7807899be8089f37686faa1985ed5493d6c2a0f88","timestamp":"1791454439969","bits":486807618,"nonce":"986803435299208833","daa_score":"62520","blue_work":"00000000000000000000000000000000000020e2aeaa250a","blue_score":"62207","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"},{"hash":"5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2","version":1538,"parents_by_level":[["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","2ae67508266c908a32265f998474964e9f57df7632a2edd6508cc9d11b1edb95","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"815ab26a64770ca6c66bce34bfb615c18cb63a78398379d79fbbf3a52c5d7459","accepted_id_merkle_root":"edaf592167d25cc327f42625def8d6dbe3dc38d796f665e92b371e5d5a3f87ad","utxo_commitment":"6c62126c9afd3c57248d100d8122692b174a42c9a02ae112ed89fa4481c7f058","timestamp":"1791454443245","bits":486808536,"nonce":"11718755315809239464","daa_score":"62523","blue_work":"00000000000000000000000000000000000020e36a725b04","blue_score":"62210","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d","version":1538,"parents_by_level":[["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"3b137d3d092793a830c7404c2a8125c2f950d32ade5d15ac86460a92a0589e6d","accepted_id_merkle_root":"59a34205d3217c7fe69c709b14bcf9e85f22b7c1400ba132f383a7726cac543b","utxo_commitment":"509ca08d0e22b5a2e063679fff2dd1d41e9d0e7c4aaf74ff72ac8a1c1ad904d5","timestamp":"1791454445227","bits":486808673,"nonce":"10111333366845249883","daa_score":"62524","blue_work":"00000000000000000000000000000000000020e3a8c0a605","blue_score":"62211","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"fc69d3136c34b743f49e9b9e93f331f4765357e87fba541da1975d18a4983c1d"},{"hash":"ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","version":1538,"parents_by_level":[["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["4c5c3ed78cb63f93505e48524e6434b3c7fd5ae36ceff8a91c70ee745d30ee5d"],["5217ecaa8b3d0870f377a472ccbe01ec7393dbb09ad0591e3f1d1dac1390d8b2"],["36039a4917c7dcd1c602fce215a059c93709bcf4a01f8f477aa73e0cc43c0a4e","4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"c7da4e53d984e264dd4b92b567354e2207c1a212a63c26b333bedcda230f9371","accepted_id_merkle_root":"9cf8035626d7476c0b55062e901e3d364c176c1c5c9ba95ee6bea245383b8c7c","utxo_commitment":"685e616578196c04d87c7a9fcd78cb96836d112d11b91c46473257a914a5036b","timestamp":"1791454448620","bits":486809098,"nonce":"13477498218258179772","daa_score":"62525","blue_work":"00000000000000000000000000000000000020e3e706d499","blue_score":"62212","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"74e6234ea18c8208d4121fc754756a23a075e0d3900a7cc584b32d34b3f47afb"},{"hash":"e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","version":1538,"parents_by_level":[["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","24c9455e202a6c814bb96cabe7f7a71aa6a9d6ef1abb45904e77b445185b6e96","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["ce124fac1cb8133d8d1bcc45087eed6c191145e6b843bb52e8847d133ac6a0ed","3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["3de4965b854dc6b6a48d7ba8822876c6a7b49e889f5191bbe21ec1bc5ce48000"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"97c2f89a6efbb56421c985c1cf129226677245dd9d6c0ddb496c3a1a2b8dbcc5","accepted_id_merkle_root":"86f74d4fbd2a835e88ed5d38bb38a128f774d73d6af65e7c27f648a91d00795a","utxo_commitment":"0ac4081d514b3e79f3a2d86db1249bb3b357619b23836610ba5d94129f714067","timestamp":"1791454453286","bits":486808575,"nonce":"9450797637583498737","daa_score":"62528","blue_work":"00000000000000000000000000000000000020e4a1a72835","blue_score":"62215","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4625014e38d651cf7ed7ff72b214bfc6cdb4504aa9a1bd43e6f64bfa1207c066"},{"hash":"82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","version":1538,"parents_by_level":[["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","e634d264e89646b79bc8484c847dc63d7eade07998dc8ed79586084647da6541","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd","293d028e6e98551341e81e4259a7a5471fdf3f529a3616f73815b5b6ef4e1ffb"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28","b949a6b73a3de31bb78dd8ecfcf50b059cbea1783a7a535b3b9fc57ca8bae3d3","980e6a214facfc9fe67a0e4d5b981984843ac9f8bd70478f7c4cf789cef3accd"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28"],["e9c895cef53f0f439c90f53c9ee3fd847a5fa7bfecba180e549b9f728f0acd28"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"11d6028449278c8e97eace6f41356090dc74348c1a4c97fa26bb4df72586ea25","accepted_id_merkle_root":"62a94e1525b9a6c030ab5f786b2be4dd7c4ef285e5028710c251cef9508e08fa","utxo_commitment":"ea8893327db2016a553c267d94474627340ca8445d0b44fdb7ec26308ca1eaff","timestamp":"1791454456269","bits":486810010,"nonce":"13136692915504992741","daa_score":"62533","blue_work":"00000000000000000000000000000000000020e5d92312aa","blue_score":"62220","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"74e6234ea18c8208d4121fc754756a23a075e0d3900a7cc584b32d34b3f47afb"},{"hash":"c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","version":1538,"parents_by_level":[["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7","aa063d85cd6a3c5c4b87d687b6909730ca58cf197305396e955fcc4aa023ce2c","8beef3ffbfb5062b4f2ea60ab47bc23681e2a6c0ffb997785a2cba692347546e"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a","b29670d77412ee72eb3a99188de25904f4066d22213c1df4f7372170debe78d7"],["82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a"],["19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"32db75c1d441f2dc865203a7228a0643cf0d923b94ccfa4e89748c4d4f3cc5ac","accepted_id_merkle_root":"80a4906dd064761c3ff16f4b6ecf52837a1bcff21f8aa8a530ef04887585d4f2","utxo_commitment":"e0686a13054badbe18b98eaef91c0fada81612b13f1a83e384822e03671a7f7f","timestamp":"1791454457887","bits":486809687,"nonce":"1486832508689907008","daa_score":"62538","blue_work":"00000000000000000000000000000000000020e70f976392","blue_score":"62225","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","version":1538,"parents_by_level":[["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","79d1e3327dab3a343c54d64aea4e4094194928fe97d6270fdb318a690d41ada0","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b","82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a"],["19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"9bd7cc70732b4d2c21e79b9589fb4e43884cef5ab2546a8b2fe0ae9c6fde17b5","accepted_id_merkle_root":"451571633f981c50fd62fc4598c78c4c6edfea0e5d407586d9d1b85f96706492","utxo_commitment":"133fe06307b3b3be18cb0364c179fe8637e995821d576e0f74e9690e7f6d72ef","timestamp":"1791454459548","bits":486808221,"nonce":"16332720535934270789","daa_score":"62541","blue_work":"00000000000000000000000000000000000020e7c990b47e","blue_score":"62228","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9148d90deb8d80e3d3e609b74b89a80e392d54aa0c7b2d9de0d72269058e9e60"},{"hash":"a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","version":1538,"parents_by_level":[["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["f62d47147e1760d322617c3ad59655e0cf6197a4f54e31f42091f9fbc162a569","f58f7fb9bdbdae28a8a8fec7cc8b71f89929be3d1c2d412733dca37f1301b694","f7b3b9e3a098de060710a74dc3bee452c089d76ff04a9ad657529c739519b755"],["c64ca2f81183a352f876aac7baa63898285c829aa9c91c9b41c2a9ffae87dd49","0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b"],["0b27ac8cced97709af2f20be48cadefe08b1060e0f800bdb4ce8a1d08a6b0b8b","82e58a04f6ced01895f28e163592b4781341c3edfe1bd97a606ceae57cd8650d","19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a"],["19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"e6599e7406c1fdb65365d447d7c3eb508b1299b26565088e2cdb698f7879e68c","accepted_id_merkle_root":"ba0c4702078a6f3a018b138c79bc567ddc49e7f68fb0d0e3116dabca63a7ccba","utxo_commitment":"cdcea4e97407b0261b6d702153ce0c1347a096739ccf586406899ef14b25d1ab","timestamp":"1791454461491","bits":486807618,"nonce":"1835532103056981762","daa_score":"62544","blue_work":"00000000000000000000000000000000000020e8845d0e7a","blue_score":"62231","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"74e6234ea18c8208d4121fc754756a23a075e0d3900a7cc584b32d34b3f47afb"},{"hash":"d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","version":1538,"parents_by_level":[["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b","924fe1b77ab71f1a68f35a3c9997ccfcec3506b0c6253a92ae5e67ae17b21995","4a4935658a975326dd23b07a9a1fadbf3047a6c3dd7ce573c31cceec9d55a26c","2d342a15a849943fb02e24bcb48baa20739ebfc9f0091f8f9e0f6779cecd11f4"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b"],["a9af0d0b89612235dc80c7bfa0a46f2ebca851f49b495a46fb95b5f2b82d436b"],["19763ab2cc3e4a54eea72520af2a1b9d392076487f7ea62cd910163daebfc46a"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"1d3bfef70ce1b5e720b2ed7da1d6e22c604e22592e364dc62f9d0d45b7a553f7","accepted_id_merkle_root":"92675253d7cf2b9bca6c7fd89d0ee9405f296eece4d1265d6718afc2ae47a01f","utxo_commitment":"39fdf7383a2c19b0974d5b602180cc5dd6c7db21037f0df5ca7d8e42d26078b6","timestamp":"1791454464936","bits":486808693,"nonce":"341441593567789444","daa_score":"62548","blue_work":"00000000000000000000000000000000000020e97e707baa","blue_score":"62235","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"188ad3d3f6c9e6f40664d80ce742f1bd61c28f18ea68b5f51d5c254dc8e54d72"},{"hash":"87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","version":1538,"parents_by_level":[["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da","4a154795db9b43a6badf5eff2417f8a47f35f3e17972f7647b75d630c0a75074"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"264f7204623264fdb61d4392b3a4af4d150f587746577f015f6e509fd0d1b61c","accepted_id_merkle_root":"0c17194ba01edf871c3de7646b5d33dfb28a1a2379ef9779bef60524885ad20c","utxo_commitment":"30ed16db0869a67e5b63e3440598faf6f04d273ee09b1948bdfbd8241efe497f","timestamp":"1791454467520","bits":486809526,"nonce":"4677513461770163546","daa_score":"62551","blue_work":"00000000000000000000000000000000000020ea393a787e","blue_score":"62238","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"faa34a1a4cb929cb5bc221d2d27c893404b011227048e520bd1c0ee5c9e77f3a"},{"hash":"3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","version":1538,"parents_by_level":[["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e","8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","9119e5752759f2d560e940faac6cd5be96ec8ba1bc14c44bffa6231662ec12d2"],["8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"66e27196b5317ab1957086d731b1f4fc84b99f03efcd9341adcdae36a54bd65e","accepted_id_merkle_root":"a8c7228f38787753ab6782ede30931afd9d70ffa972cbc80305ab02bd919fa77","utxo_commitment":"d5996080ed4992760641596109ca0561670a4732f105988dea360572087ea7d4","timestamp":"1791454470416","bits":486810176,"nonce":"13445886047791011376","daa_score":"62554","blue_work":"00000000000000000000000000000000000020eaf3d85541","blue_score":"62241","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9148d90deb8d80e3d3e609b74b89a80e392d54aa0c7b2d9de0d72269058e9e60"},{"hash":"93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","version":1538,"parents_by_level":[["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["3113e29d24ebcd06013170d614938aef7a8a12c21898ba31cc6f08945f297a7a","5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea"],["5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534","5e27e922256c1c27ef75672bbd2c105dd59cca898d8cb7387c44e8c8cd266bea","87b0f4bf190804480f78416e6cbf8b685b908524a148d06d25feecc62045b88e"],["5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534"],["5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534"],["8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"22856dd1d2858cb99a70da873ed3400c625cfb38ff35bb943d24255719a084a3","accepted_id_merkle_root":"801026d3ff198d38ca7058be10bdf6aea39f499200f7618af713a0dac11f8d25","utxo_commitment":"7dc3a2338297cb9c91e47608b4d5e0b12614b5fd02d315076119bdbd10264e3f","timestamp":"1791454472844","bits":486810142,"nonce":"16923678430667946184","daa_score":"62557","blue_work":"00000000000000000000000000000000000020ebadd7406b","blue_score":"62244","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4625014e38d651cf7ed7ff72b214bfc6cdb4504aa9a1bd43e6f64bfa1207c066"},{"hash":"c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","version":1538,"parents_by_level":[["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["93bef21e460f69fd4008013f7295ced726a3e196d8bdd9df056bfb118873bbfd","4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c","48a50cacea167754688cfbed4c5e9cadf5c1e29a44950c1846bc7d64093f4fc1"],["4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c"],["5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534"],["8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"1736902718f5e772951e8d38539a5427cf6489b56262c63d06b4dfb043a4130a","accepted_id_merkle_root":"277e90a14210e2b37f8f0b06d0650a8b8773b81d6b13216156632ed81fc200cb","utxo_commitment":"f18f369e9ce3fb29d9e0c222f845d17677a92c109a2474e6d75cd3e80e29c66f","timestamp":"1791454475300","bits":486810038,"nonce":"13500968681227118599","daa_score":"62560","blue_work":"00000000000000000000000000000000000020ec67b7b72f","blue_score":"62247","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4f342bdd527c7f7c291df6816da57c3b19b0920a4604b9eb90a4915ffed88418"},{"hash":"1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","version":1538,"parents_by_level":[["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["c51c97280a290e5dd7dc681d563e78e737c0041b6dc3f5004e659c922c0b1c8a","412868d491e318309d19470b0efbe171958a4b05bea6b8f4a2d12484fede9685"],["4cef16d225f0c3863fd7da80b8af0cb8a6b0f98e5f08208e8edf23f1d2d41a0c"],["5c08f927fab728399eca7b6d5dfaf3ab0760d7f380329d54cddae22ed2b26534"],["8f16d6f41d337a7589af83ba4c48c84acbb84687a034370f1e991ee22d419eff","d995cea5bf4b7f719b573c621d7bf533a8ebad77566f3335c26867a5820908da"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"c5a1874aba764076209a32e87b8c5146304973fe206147db97352d72f64a5c93","accepted_id_merkle_root":"9d0d9a0fb7bc0a7130f285e4108c86778f33aca7389c3440f3789604115ac1a8","utxo_commitment":"5ed0d66be897ec35f4a588f1fc640d840b48809bed78496c6fce4e03fc71dab5","timestamp":"1791454479371","bits":486809802,"nonce":"2316315737209936918","daa_score":"62562","blue_work":"00000000000000000000000000000000000020ece3a358d7","blue_score":"62249","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0609a6f2913130b1ae333c0676d72c213933f4df7d8c37f09e59ba0080040b81"},{"hash":"d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","version":1538,"parents_by_level":[["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["1c7fabc8cf24f1ff5bc2a4e0dbccc7054f53f5412a512f8a892a60aed2cefc8a","358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["358dd00c28289418946e9252a6520ead5934b769064b5b4427d091bebe394beb"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"8ec85f6ea4a9f4ffb19eab5543299e280aa38c53449a39ac393f4ac901ef8e26","accepted_id_merkle_root":"6a3aaf64068e45221074e827e1d283faa763f7b39355098fd71d169bee76b872","utxo_commitment":"7252509270213011b4a73d3b0c32b9f0f70ab4bca6aaf4eb9e5524c4c59d8523","timestamp":"1791454481496","bits":486812283,"nonce":"15968569534720258532","daa_score":"62564","blue_work":"00000000000000000000000000000000000020ed5faaa6f5","blue_score":"62251","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"},{"hash":"615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","version":1538,"parents_by_level":[["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","950843c8099371da8cc2ea65c395ddbc2a8c0b63f8e6c63fbc8f302063fe3457","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012","3c84e677531d976be494c7d65708173cda7178cdec20be88f50392ed5a60feb8"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"a31d9b7c0d894803339d5ddc33cb20e588d38b67af92c893c023f6b6bcd5d06a","accepted_id_merkle_root":"8e55d1099852c22489697056f23a67858d1ddb36f83263d676f6635a7f58d972","utxo_commitment":"f3460513428c36357d5198e2497050e72870c5ba41f8bdcc7f2b11b6820f2d51","timestamp":"1791454485208","bits":486812200,"nonce":"7902332142051417445","daa_score":"62569","blue_work":"00000000000000000000000000000000000020ee92eb9523","blue_score":"62256","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","version":1538,"parents_by_level":[["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["615cb7fbcbc4a542d950e5b9ea2dd9d801bb1cd527d9862795de87c64e07fb8c","4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2"],["4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2","d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"9a9041b50fec169b927a8b3e58f5237e64b9ee2ce36dce7e09ca3d82f9036da0","accepted_id_merkle_root":"d318e24e65d88fe2f0d570430a89df6747b48d6e978eece75d78eddbe2e43c9a","utxo_commitment":"3ab261a53978f948a5546fe067acc394c7e1ee0ccc04f0185124ff9eaa376457","timestamp":"1791454488029","bits":486812191,"nonce":"5341664243526766962","daa_score":"62571","blue_work":"00000000000000000000000000000000000020ef0e2971f9","blue_score":"62258","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d4c62c2844b10e981e1de4fd5ae94e3379069048b9d5fd10b89c65d019ef3dc8"},{"hash":"2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af","version":1538,"parents_by_level":[["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["744b1892d6ef589aadc4dbeee908bd8b041e77ad4260a9c00e254b114fd91ba0","340e23db438e6d7ca5f4f920e5a3a17d600a97b68a1033bfd006594032605e99"],["4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2","d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"1159776aa8c0b87bfa6dd747bd35cd601c6f7625ee18040f75a76e98779e758f","accepted_id_merkle_root":"10e74fadfdf552f17a796d8dd39f97c6245c6482c5862bd2bd81a5c78b6e7efc","utxo_commitment":"08f91d1652f7697b3842bcb683a20d358d57194bfc0e20b41d7b7952da200875","timestamp":"1791454489385","bits":486811812,"nonce":"16046217239156799210","daa_score":"62573","blue_work":"00000000000000000000000000000000000020ef891a4dda","blue_score":"62260","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","version":1538,"parents_by_level":[["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["2783a6e53d1a65c5e3192c839d4f218ad4735afac830d3582384ac2ae09368af"],["4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2","d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"b6d1adad86616a3aff71d460928428f261f6b6735f23f5d9a76ad2395d63a532","accepted_id_merkle_root":"f9c6ed9e4ffe6d6b481a290a8952d6686ddcfcf55482cee87f66e2404a96b6fa","utxo_commitment":"8a17ee1ac60aff06ca530b8c74259ae1db0e6011dc803924a152b4a1f1840021","timestamp":"1791454491856","bits":486810809,"nonce":"18102807756984067965","daa_score":"62574","blue_work":"00000000000000000000000000000000000020efc6a8e04c","blue_score":"62261","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d4c62c2844b10e981e1de4fd5ae94e3379069048b9d5fd10b89c65d019ef3dc8"},{"hash":"7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","version":1538,"parents_by_level":[["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["35c69a18dddbf4f50652391e61866da26449ebb4a610e2d019e0e831c5ec1fc2","0db50df96e7b7c34b3a1b69939ed0cffeecdaa8713eecb87185906bea5048e57","0c31cc0de5e34f237753e8adba54791821cbd2e31a96cc3a56d4365c618e0132"],["4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2","d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"22f388d2f8a06cf16f7f4f826a1e5c85e7e3f7e850521c55aa4586ef7dd66cc3","accepted_id_merkle_root":"9aa9e8d7c6ac52af363433703ee1fed3cd373db84cf0dd47e97591ed6ddd9ff4","utxo_commitment":"050fda37ec70ba4bbb352342bbeeda5bcabd1841e362fce62e36a1f98d9e7ebc","timestamp":"1791454493899","bits":486811231,"nonce":"7176598573025554148","daa_score":"62577","blue_work":"00000000000000000000000000000000000020f07f8ecca6","blue_score":"62264","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","version":1538,"parents_by_level":[["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["7da6f8deb331e4ea3938a6d85ee9a24787f494c59fabfcc9daa5e5fabb3160b2","a5d34256f27126a04cd797b215b1372990ef5d6d11d99b6580c7f178df8bda40","5eab8550130d0cac7f8d6bcd92c2f165e93a0b6d0d5355d260d3e17b98cbebae"],["4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2","d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"849b48690dd72d4d116ca6b8898e468b7750219c7f450146683ed72e709d033e","accepted_id_merkle_root":"0abd6f7c711ae87f7bb17717f6249ed979304e87848957314572bc5053e102a1","utxo_commitment":"12cf6200f605001c67ee1e1d6be516e09e71be7ae7ae0c352f793a2181281eb6","timestamp":"1791454495886","bits":486810632,"nonce":"320229527490051149","daa_score":"62580","blue_work":"00000000000000000000000000000000000020f138d09838","blue_score":"62267","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"},{"hash":"f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","version":1538,"parents_by_level":[["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["35be1c80c11e49229edc006f858b31502e3f371e002a0df55fb9476ff7f062ee","2b06ff3a31ce2f64c56acdbd4e962c6ebbdd9ce120c1423d3eb2ecba33f39365","adb961fe934b845ed0c36f10e88c3f675349ceb06bcd7359c880630b0d7df7ef","0f83305ebc212c0416d5d32a7614051c11e810dee69a23d8c86885e8c22ad486"],["4efcfacc3e3b257b5ba8d3e845fa4cf2374ea65d0cb5e67bcd295aa158d78be2","d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0","6d0a5d2a18f472f0308069cff6de9fb708f3779979c53d1982afef8bd88fe012"],["d36a29c09f4f7b92d099afed687039ec1fd737b89a0f7b5dc15a32862304444e","9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"d22c56e393af9b939c7d9c73683f51cb0eb3c63dd3fd6b2955d5f8fdf2e9116c","accepted_id_merkle_root":"79ec5bc787559a8466deea2020dfcd47943b6cd7295c69b451ffa2edca974e41","utxo_commitment":"19c073368a60740e65b71bd9f8f503b6df4ccbec921291fc0827b229ac79a08d","timestamp":"1791454498311","bits":486809107,"nonce":"6256217425435461359","daa_score":"62584","blue_work":"00000000000000000000000000000000000020f22ff8647a","blue_score":"62271","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"454508c142c31f7ad8e8af3cac03f8fbbff376a60b33b57376040674fd3ddb3f"},{"hash":"be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","version":1538,"parents_by_level":[["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["f141f0c4c9cab9fd825067cd7b22f85a1004bc82b7c430eaba3c34385a90ee23","4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","76ccc93161194432edfa9dfa92b2856d450c549ae33b0d4919a9e7ed26e84585","ada0150d0b3b8842db89b2483f3f1923fb270623b8b873a47f33726bde3dc597","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd","a600df22571fc451e81a903b40807dbe152174259848c8dc939444d8dea116bc"],["4621c38601e6daaad107355f62bd06aa83ba60805b6b98d2e4d080237f3719fd"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"3e7156a847d3ce35dfa5b5ee7b425a1fe521350ed83500f8c49ae6a3e2b89c59","accepted_id_merkle_root":"43b155b74b73850d6c5db5eb64648ac6b5f752d27fb30823b919846726baa60e","utxo_commitment":"522117fcabd2a2291a11b6716c07c26799f3d3370c155b6bb64aecf904617901","timestamp":"1791454501652","bits":486808257,"nonce":"4315127107989085165","daa_score":"62589","blue_work":"00000000000000000000000000000000000020f3660d3cc6","blue_score":"62276","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4625014e38d651cf7ed7ff72b214bfc6cdb4504aa9a1bd43e6f64bfa1207c066"},{"hash":"279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","version":1538,"parents_by_level":[["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","783d944ee36affa28d6c5a457e384bb36f37e41b5a627d3278826c5cc94acffc","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["be6d8584b50238a5818896e81f47b58de13dce47509fa3f4fdd47e62bec76229","dcb5d7ee328e7a02ac2114a004818a17561df262577930354f5a179281abf4f9","3ac7636711c4c53eb1560649f11b18be4e3a5f6652d5fdbea6b63f9ca550582b"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"70078ea65e462f870433200f3b7f4e5fcd1ddbdf3eb6388652cd3cee10b8c1de","accepted_id_merkle_root":"c2b77acc1a5ed4a91fecee41fb3ec42572adf0ca902ad10ea2007b3443d84cef","utxo_commitment":"5b8f2e803e7c7da21422137f80cf16c0042185980eca8572c2bd57582fcb6f99","timestamp":"1791454504540","bits":486806513,"nonce":"1087860627056238325","daa_score":"62593","blue_work":"00000000000000000000000000000000000020f45f0bf292","blue_score":"62280","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9148d90deb8d80e3d3e609b74b89a80e392d54aa0c7b2d9de0d72269058e9e60"},{"hash":"2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","version":1538,"parents_by_level":[["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d","621106d38e6ea282fa832f67c9215f22ae67c27830507c6eefd32a50ce90ad4b","0a04d39e24c9815000a9fc3375b2ad5bc6853206e582b9344a21cfc19d411142","c045aec633c495100b6d5c84a9b77384c11ad9186652afe65f0490a5d1d1e70e"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d"],["279a7e1ff47c24d6e6f2aa22633e7b0dc451e174b88b46a2ac960b040464d80d"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"bf4b34707a5a903481724a24e051e34c87c5d6a76e214b2a264e883313fa37ab","accepted_id_merkle_root":"954870d922681329342c23842b366e510b187a7c10bf728091282f1bcb023465","utxo_commitment":"382a21b00a711a5464418e2bd54fdfedab69a8eb83acb2e98ca15bb6f2b72ed0","timestamp":"1791454507165","bits":486806058,"nonce":"5738483706582785813","daa_score":"62597","blue_work":"00000000000000000000000000000000000020f55938aaf1","blue_score":"62284","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","version":1538,"parents_by_level":[["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258","60ca2af65241d93d97f92112dbde12e3a3d814b676de44debce5e54911fd949c"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"47968f138cf6b7c9a856c9d86b36c40cb170f8a77d3f5613e832a01353333439","accepted_id_merkle_root":"146fa9141c2f3404f8518f9d3f2c8dd437e21d602a50c0fb49c1c92f431280ea","utxo_commitment":"bcf72f494919ffe9e473045c8cf3933fcd42db69a755251b41cddc609524857a","timestamp":"1791454508783","bits":486806240,"nonce":"14900567432001807389","daa_score":"62599","blue_work":"00000000000000000000000000000000000020f5d6daa081","blue_score":"62286","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","version":1538,"parents_by_level":[["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f","2bdcc5105c7e67b0635cf2f1a071ec0bbf4ec88bc285d583e099f8e09152d8c2"],["535b5312f3b1d19d731c811d25b1cc52d31d2c38a7537aa2468809643679d88f"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258"],["2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["9002abfe1f2748cfb2f0d0e98897f54e1d81d6987f6638d5cb0ded2652c34bd0"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"24d7239336d2060142565b899827355f1e1fea4b84230a9a58f956ee38e64908","accepted_id_merkle_root":"e7adee5a9867066c1bd830d3752d3c5031879cd9f4e1dbaa4b58266d2307f575","utxo_commitment":"03faf647129d36a092416410ff8308984337b76c310bd8e9e3b8e8fc61a9ed00","timestamp":"1791454511305","bits":486806080,"nonce":"15047898627174916337","daa_score":"62601","blue_work":"00000000000000000000000000000000000020f654948881","blue_score":"62288","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"fc69d3136c34b743f49e9b9e93f331f4765357e87fba541da1975d18a4983c1d"},{"hash":"e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","version":1538,"parents_by_level":[["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["cba0d4e035ce874c27b889c5f503858b8a39c3f3deecdc9808bdf92fed7d49a1","2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","735b0bc4521ebc288d06a0c3257af11dcdef9b8fbfc4cc6fb105e3ce3dab7f0c","c4cb6b8616794988447e61fe5050e292f73c1df91a6b8106caf7eb9c52938502","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["2a3f775ebaacd5f8f13d578992f8ed3ae7898a83c03168fdd064e9faa7604d45","5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735","2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735","2ca8e96cc816051f9f20304c06d00920bc250991d1c55df2afa73313a387f258"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"2ed82c7ff58fed5f084a68c04d22ee16a50e02cffc4c751d3f21e0a3d87b1e34","accepted_id_merkle_root":"b85fafde9bc49255bca0b694512735b67ed14a33b8a478fd62d3310c4e4f694c","utxo_commitment":"58b328c74b7e9e29b0f364489edd85a16a40be7b3b3c5377ca8c8b67382fb24c","timestamp":"1791454513816","bits":486807045,"nonce":"2159264313797306231","daa_score":"62606","blue_work":"00000000000000000000000000000000000020f78ee796c9","blue_score":"62293","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","version":1538,"parents_by_level":[["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","b52f9cecf81bf5615bd3e06a14b9b92fbd3777b829dbc84e27711ff45dbd6d83","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa"],["a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"f3ddfaf4207929cdc39a8fa834a955b3ad7a04c8bbb972fdd74efe41e1523f27","accepted_id_merkle_root":"e7628eb9b8a638048a1a06a5872dc0fd07b27f033d0b896830c99ef30d66ba2d","utxo_commitment":"2513d3e94dbe4dc8df83fec9f9e9702e37f8f56c60cb4300add19aaf8c2ff410","timestamp":"1791454517265","bits":486806625,"nonce":"10351462033431695981","daa_score":"62610","blue_work":"00000000000000000000000000000000000020f8897697f7","blue_score":"62297","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611","version":1538,"parents_by_level":[["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["422d98c7e27b02bd08c49693fea2dec85ebccb5dc17e80d8cd6de495d7d07e59","036aec5fe0c303b657034471f16d3a92c1ec0541e77b176b686f88c607e66555"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa","55eeded3329e4cbf31ccca0d6cc7a3fa7caae7008044ff29d1eb7b8a27320029"],["e5082c029d4a777c1cabee8c3061865d148c3962801e2c34d0cd9d6b68e654a6","a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa"],["a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"9d680e75d921e67f08038e28b1b95a8bf7bd3475fd5b45480e9c9def0717426b","accepted_id_merkle_root":"c8d608b6b9be5a2b064d974be7f4eb13f54bff93f3b61a72c9071aefaa653e42","utxo_commitment":"8ad38449e0d3a6659c6eb742521b6bd7ea53335d203eecde8c1b355e3578c48b","timestamp":"1791454519838","bits":486806532,"nonce":"12147741876315136476","daa_score":"62612","blue_work":"00000000000000000000000000000000000020f906f73187","blue_score":"62299","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"fc69d3136c34b743f49e9b9e93f331f4765357e87fba541da1975d18a4983c1d"},{"hash":"f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","version":1538,"parents_by_level":[["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["a4b038a194a3de70397c46fccc307b359640e19ec429bf3cd1dd5535ac2a47fa"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["5893189ebb53667116d7b0054cc090d4cf7d523728a1de889f650a029f285735"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"eada91c91bbd093a079d0e73954c83a4cea74951a349b4691e5624b19bfa9519","accepted_id_merkle_root":"3c75b398201df2276cae4333107dd73bed8d259638d83507db411a62143c63cb","utxo_commitment":"88e001a54bb3903827b132104d38dbbe119d07d2c3391437228faf8d8ad3bbdd","timestamp":"1791454522294","bits":486806777,"nonce":"9305349630972307985","daa_score":"62613","blue_work":"00000000000000000000000000000000000020f945bd154e","blue_score":"62300","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","version":1538,"parents_by_level":[["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["f37c9dd6a8aee1425eb65ebaf3b5d2592a4b11aa17a2fd033d4fc87c576c7617","ee839a7c2f51a3a08312666f2149d93b4e52d19276fc73b11530563bf668673d","6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa","9ed9794dbf5bac81ae3f35fc7baa18502dc43cfc68de35f28525928157b06611"],["6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["6996d35814f4e5b8fe653dbe4ec559882ac5fe6c453fa464350a4deb464616fa"],["4c944c0941886beb40130ef808f8b32c8a4c111547a068915cd2006de2819713"],["5ad862058e3f1d00dbdc7f5f8867851b64c5077f0ef28b1b02be5733c373964c"],["4553516a86809e4db309f66a24e7185279db6d97c65f174128204c3b3d573ebb"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"a3019aa0cd0ed0e20002b1b2a10c29ec8934dd96fd1128b19235661779faf4df","accepted_id_merkle_root":"e17ebacfdfa556cdc6e1b82ba183d897a5e403342f390dfb0c7864f53cba4966","utxo_commitment":"2cc6172d8a4f015e50e289ce3d24617a3f9405219a08af58bef44d6687955c0e","timestamp":"1791454525054","bits":486807996,"nonce":"3128511099610733544","daa_score":"62616","blue_work":"00000000000000000000000000000000000020fa01f15147","blue_score":"62303","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"befb7dfaf9638375bb11f30f5f9446c465eac043adcc75d8428d2eb48d3636e2"},{"hash":"786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","version":1538,"parents_by_level":[["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","3c38778bd639be6a523eca9474a973c0c33eae6ce2ac97c5411c57008277e3ce","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998","29a8793fbdee03e86b787a698d3b9abc43d0fa681bd4a143d32d22dfe971c71f"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"67ca982ae7c69018838e2d2d68627a22383322d56c1bba531a818ecc40d4d313","accepted_id_merkle_root":"2f50786f26476ea5e526d5455f9efcc38c2a0465594a3c56706ab242131b5490","utxo_commitment":"54c876115a3b2c97471f2d46f7b5d72dec947ae12862d54e9abc1d73b79eabbf","timestamp":"1791454526972","bits":486807310,"nonce":"18274139564410558614","daa_score":"62620","blue_work":"00000000000000000000000000000000000020fafc59c903","blue_score":"62307","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"befb7dfaf9638375bb11f30f5f9446c465eac043adcc75d8428d2eb48d3636e2"},{"hash":"bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","version":1538,"parents_by_level":[["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","8656eb2e73e8d825c056331c50c1305e1406fdeb43e9a973add64c9e7e22630c","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232","1312a5892e284506c672fe954a9e791a9e41c723ea5cf4dd125ef3151c1a00ee"],["786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1","f8e8217106f7078e2f4053798728e01aa959c680142f967a7625757498e2e998"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"f25fdb8f208e8fd30bf6932685dc83c4739ae86cf2ba8cc5ec55e9df1975c03f","accepted_id_merkle_root":"0758eb271236e2e35e2b0c83044dc6638cd1e5f64dcc0af8d368897f9fefc7e2","utxo_commitment":"fb1c8406f980e2dc49babdc108d14731727c0f9232b80a083b350c8febe30d39","timestamp":"1791454529168","bits":486806393,"nonce":"12177382639617614335","daa_score":"62623","blue_work":"00000000000000000000000000000000000020fbb7f9a3bf","blue_score":"62310","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"faa34a1a4cb929cb5bc221d2d27c893404b011227048e520bd1c0ee5c9e77f3a"},{"hash":"5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","version":1538,"parents_by_level":[["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","71e48a02dd01a1ac5ec633345105b8002599e92dd66524b4a5f1abe759e2a23e","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["bf75136b589a52ed7995ddedff05c7c4bcbf4a2d4c5539521803a510183819cb","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63","8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781","786a9de2fc5a2e8e1324201baafd9d6a1bb380980cd974e1d9400059175e6232"],["8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["8be36a0e64a464c0395c252763007a21b081aa5ab7396c7aaa5316386a067781"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"05adc25d6bf661367de9bc80e58e975ca19ad481bd873565dc5447b6994947a5","accepted_id_merkle_root":"66edcbe16e7548010943a7926789e9d48237c36d38f30eefe408b8393ce06020","utxo_commitment":"fb9428ce5bc66a28ef47be88c182fdfbbc49c1e028f2efd3a5f38a53464609bc","timestamp":"1791454532258","bits":486805510,"nonce":"17781801415954933086","daa_score":"62627","blue_work":"00000000000000000000000000000000000020fcb2bb5285","blue_score":"62314","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5","version":1538,"parents_by_level":[["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["5631f513c36590bbc08b7e00addd235f3221abebb30c86878985b3fdd93fbfae","663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","435d7c1f6e10e5f944e799708f4cf6d8aaf5047fe73f8a4d8cfcf568603fa8f3"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84","58afd1c3e6a4b47fa26b37925741b2345c43159abc64974b8eb49a444cc61e63"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"6ad2d912054e24fa3f43049684d0251116dffda147f00e72636725e66b67fc0c","accepted_id_merkle_root":"94925bc3c7f7a792399387d67371a31b942658659f0ea801587c6d031d4bc1f2","utxo_commitment":"3baa01f40060fa419b5ce23d594097e7e85058cfbf88ae7d984668ec2f7199cb","timestamp":"1791454534801","bits":486804704,"nonce":"2478920269875575874","daa_score":"62630","blue_work":"00000000000000000000000000000000000020fd6f7d89e8","blue_score":"62317","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9148d90deb8d80e3d3e609b74b89a80e392d54aa0c7b2d9de0d72269058e9e60"},{"hash":"f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","version":1538,"parents_by_level":[["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"fec6ef6f9f622997adf6f7935eb2d321a3ffcc1ba55002afec99f09f7238cd26","accepted_id_merkle_root":"fafc0d551bf91532adde64e011fdb25423597388598df10e32d8943757c5cd51","utxo_commitment":"1f9186ed1aa7cad854cabf1688aac9d42cc1dcfceba68913ad1433bc755a4a0f","timestamp":"1791454538183","bits":486804288,"nonce":"4356188352554420571","daa_score":"62631","blue_work":"00000000000000000000000000000000000020fdaeb218bc","blue_score":"62318","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4f342bdd527c7f7c291df6816da57c3b19b0920a4604b9eb90a4915ffed88418"},{"hash":"2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","version":1538,"parents_by_level":[["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["f871ae7ea85cbad9f45dba4271db3a6124b188ce9c3274d026a388f5221a9f71","716d2f553db30ee3665e0bac5a485c11fb5924709d78710ca3d7c007bef9f586","d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc"],["d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc","13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc","13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc","13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"72d029868b5ecfd55a7f7f8662169a2b29c11aeef1b7c67fe0e79882743bf9ad","accepted_id_merkle_root":"1da68503e130a5f1de125c3acdfd21ac5ca7bea025f548d22c2627b0bfcddf44","utxo_commitment":"bf603748a987277b16cd55332b7c0b7d339f6a66b47f0ec1448728d0725db655","timestamp":"1791454540674","bits":486803757,"nonce":"5893508708598115327","daa_score":"62635","blue_work":"00000000000000000000000000000000000020feabb71fe2","blue_score":"62322","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4625014e38d651cf7ed7ff72b214bfc6cdb4504aa9a1bd43e6f64bfa1207c066"},{"hash":"f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","version":1538,"parents_by_level":[["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695","7ad444490a2320850d43246841276df23a431354ea34cdd543cf9bbb140b1276"],["2af6c7e83e01960639fbf5b611df87d1bf755f4f4474f7a9788ae5f13c8eb695"],["d28cd3218488f54edfae6dc0be48ad37cc498cdb765d8662208afef7862e83b4","9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc","13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["9f60a662a25f48e3c6362a68a004d41e9a1cb0f0eaec0d5cc57932282ca2bcfc","13eaf66c574466c161ac103e5b83a039b4910754c2ee784fed6361c9f66142d5"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["663c2815443f91edf3e103b8ff851683d7ceaf2d2333575711552aa4f5857c84"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"6ebacf638b5985280b69a5a898ef3a3a8cee984efb3f863dfd0999f79234bf13","accepted_id_merkle_root":"1a03ff2524de0437b19d1cd081099f8d857ddcf93438d0df353b338c54a36dc6","utxo_commitment":"186271bede205540fe6fff7e35b514b9a2c1314ae653c2354e996d2f62ecaae9","timestamp":"1791454542828","bits":486803098,"nonce":"14702377579174332167","daa_score":"62637","blue_work":"00000000000000000000000000000000000020ff2a73926a","blue_score":"62324","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"463ed7cd0f93054b4ee64273d4a68916c630f8527ae5e227609289c7f336c316"},{"hash":"c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","version":1538,"parents_by_level":[["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["f813fe98889a56844772cb16d1ed64088b0c9c174c0dc26093da128674e94460","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a","e5b8286ceee31e0361f6c8cb0a4425b664a678a9a08fa78e8cc770c6149e1e71"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"96fc5d48e1ea2eb09d0707af4cbe9b92a9c16f42b180ab7e6dd5a63bf059eb99","accepted_id_merkle_root":"1ee8838f17def9086247b3e63b263ab6a887db0553443cc28550b06c5d3b2376","utxo_commitment":"cb0aec320fc605561ef3e3454bac9d49aeff938c11c9f71c08f106f8058bb48b","timestamp":"1791454545024","bits":486803838,"nonce":"15420938290831305420","daa_score":"62640","blue_work":"00000000000000000000000000000000000020ffe9102a9b","blue_score":"62327","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4f342bdd527c7f7c291df6816da57c3b19b0920a4604b9eb90a4915ffed88418"},{"hash":"ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114","version":1538,"parents_by_level":[["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["c06f3e34af1f62cf3e16cc544988d04a707f0189c01b9724f07e92648f8d7545","28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","9e8485828794687fd52f9008e4396b5a73b980bf1567829dc8aaeb95c1938cbc"],["28dd6b7d2d7830639d46899c9e760f462e1017a5f1296f0bb33049a390e8acde","04bf3703f51ba84e5cb21215ad4452ea8640f352d291c720ea2cda0a79636b94","b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49"],["b360f87b44d637d2495059abbe49165a7441d7ebed57434af6f0d1556c7caf49","24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"5e39677c138b8624df65863cb0112292c50aa7a3a341fe62c0d9c3cbe6fa9dd4","accepted_id_merkle_root":"f61ae3d1ecdc9ed674dfee290af360aba83af5a6ced77e19d6f9f4f50fd45f52","utxo_commitment":"d66bfef122900c452688e6809fbb2d30d174cedc7e633629e536c9adbc7da270","timestamp":"1791454549117","bits":486804474,"nonce":"973304799770798192","daa_score":"62645","blue_work":"0000000000000000000000000000000000002101262314b2","blue_score":"62332","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"8d7a2d7ab1209f901691e12b4e3114f426205a41d91cdfca9937969c25eae7c2"},{"hash":"edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","version":1538,"parents_by_level":[["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"df0dcc20c48279e489fa2f9742e2ca010d4b1a11ce01777a90784073df6ea1f1","accepted_id_merkle_root":"c31b43c318a395b41d4ce7a5860c46990fdb63bf2151b987e4d594c521133f56","utxo_commitment":"db95165e5ac349165e7db15beb0bdb9d11c514756fc3a9c46d5c94ddf30a5945","timestamp":"1791454552541","bits":486804093,"nonce":"11865156040670801520","daa_score":"62646","blue_work":"00000000000000000000000000000000000021016565abd0","blue_score":"62333","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0609a6f2913130b1ae333c0676d72c213933f4df7d8c37f09e59ba0080040b81"},{"hash":"c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","version":1538,"parents_by_level":[["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["edb4165c0f51a9cb16baebefc750102d44869106f00993066c10181b2fda2496","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9","3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","c051426ba1eb52b3275ba0fab1066cdb2a3c059dfebcd40e91041e71c4c8d56f"],["3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"f22f337cede98cae249506dfd9bc4a6eb1c20a38593fa6c908d58c2b8a95fd37","accepted_id_merkle_root":"a781463c23779dec2f506d9271c160ce744638c9030274f6f3c4501254bb8f62","utxo_commitment":"ccc4b2b225b1ae80f69927d8abd9983637b8f78e43108c52e6d4da144fbd9b28","timestamp":"1791454555199","bits":486805114,"nonce":"13775124419486669613","daa_score":"62650","blue_work":"0000000000000000000000000000000000002102629da70e","blue_score":"62337","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"8607abddbdb3d2b40f401f347ee763121bdcf46d3373364379f45ce545a43ec8"},{"hash":"7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1","version":1538,"parents_by_level":[["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["c1d46acf98d25b41cdce0a416f5e37208235132c0718aa65932db5a58ad743d9","40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","af6a6c306c51ba60b9e3aaa6a03667f4162c708059c2e0eebfda0027d348655b"],["40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9"],["3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"4c7c48e50b7101d9e1d2c44cbe125158cb3d1d6df04f690600ac82669df5fed3","accepted_id_merkle_root":"c36a37d1ad3c77875c2bf3ed5c41c54ec9a986ee935a241c375e12151001cec7","utxo_commitment":"4f55e3b8e863255bbd372226a406b513f2b91395468200db20bb5c9bebbe45c3","timestamp":"1791454557522","bits":486805145,"nonce":"17471658679304617848","daa_score":"62653","blue_work":"00000000000000000000000000000000000021032056d687","blue_score":"62340","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","version":1538,"parents_by_level":[["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["7779cfd43928d21e7d605c1c1b9b6e780a90ea6f2b8aada12fcbd3670bdd7db1"],["40180eddb55ea746370b96f148485ee97810464ae56af4005773701111997c42","d4bd69e65a856f4820a764bf434ef7441eb13b94b2ea118ea77c4a7a26f65ac9"],["3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"0922bfaef03b1247faae945599fb42e5143342ba3d82596a51244d22e3138915","accepted_id_merkle_root":"453780326623069101b996e16126a3aca8f7f0464971e9fa29b8499a2bcfdc77","utxo_commitment":"7336650245d85a3c0181bd2f1f7ca7ea58a53e430f47a749b1a63a39551bfc5f","timestamp":"1791454559074","bits":486804850,"nonce":"12591743088431082128","daa_score":"62654","blue_work":"00000000000000000000000000000000000021035f708ee9","blue_score":"62341","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d","version":1538,"parents_by_level":[["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["089e1ca267b5ad3153ae3149d5d0589220d6f587d56c5b12727d6a012f555383","6403fb956072836b77744234a0e247471a10eba850022522bc2544923216b544"],["3c210bb37d3f80b6209f16474fe99e17117ed771f229e3ac27795c683c32f5ef","ecbf70ed25f29a30a8994ca5a741d0c29204b7342ae4ba14423355699f308114"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"bd6070b081f41a32c55a66d8631c79c5d2510ed823b4b33922a8590de5f2726f","accepted_id_merkle_root":"236ad281e4212f9fd9063fe143cc739e320a9b7f5d81cc80d70469c520785740","utxo_commitment":"93b47e9fb4b306c179fcebd9b1f5041abb498334e2d01d771d70040ce39d1724","timestamp":"1791454561723","bits":486805081,"nonce":"2373766413771558325","daa_score":"62656","blue_work":"0000000000000000000000000000000000002103dd802b95","blue_score":"62343","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","version":1538,"parents_by_level":[["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"e55afd9aa55af073931f2f26217141d6c417932f9ef91b222515b13b3a1d5f77","accepted_id_merkle_root":"341b2a385097302311faeb4cf7c3c8319a273d2dbad2b4df32bf9248a14b8131","utxo_commitment":"d553718e9045d4183c0fa741381db2eb3822e1476bcd428d63d60f7f3e64cd13","timestamp":"1791454563413","bits":486805746,"nonce":"2804473959083381571","daa_score":"62657","blue_work":"00000000000000000000000000000000000021041c9dc7a0","blue_score":"62344","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","version":1538,"parents_by_level":[["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["dbb1d8101930ec6080841de05ae3a000e162f4306ea5dc1064484fa8e8041c92","a3001c6ec6dffc13189507d99e2bef6259bf587c7bfcd8dd2e553d942e14656d","d6b08aae8004b84bf5ccef90f114cdeabde23e76b64843fabd90556ea8bbae5c"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"82f1d1abf19b5d75718cad7eabffc9d3afd6e9563def49a14dafa33ee822cdfb","accepted_id_merkle_root":"4dad8b758a1ddc96bf0be0564cf33c4ba68a61fda3802c78333d49b00edd9446","utxo_commitment":"3514f6eb11131da7713e576ab3abeaed509718e13accab8c0c15ebbad07d8e2e","timestamp":"1791454569267","bits":486806361,"nonce":"7891645297064515763","daa_score":"62660","blue_work":"0000000000000000000000000000000000002104d9a5f76b","blue_score":"62347","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d4c62c2844b10e981e1de4fd5ae94e3379069048b9d5fd10b89c65d019ef3dc8"},{"hash":"79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","version":1538,"parents_by_level":[["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["5dff483ad2e531e609559eacef9ca3441f8c71f9d318f6d81672f5d375127721","1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a","75e16c5db5c0ad14a9ed68bd0e0e89713a69c32f7d54f200e38c5f5d1a4c4116"],["1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"9d41d3827046111a5605c68a17da1b1debe7c3c48832896739a5124eea3d4826","accepted_id_merkle_root":"1965a6564c2d4881b9d8a3b9cf791ffc430792ab82634d615a5889cf7f9ab7eb","utxo_commitment":"1591ae4b78956c63a6a399b2619ad333437b49a946a33e143f8b5884edd29739","timestamp":"1791454572144","bits":486807730,"nonce":"3829273376615020883","daa_score":"62663","blue_work":"00000000000000000000000000000000000021059628a45f","blue_score":"62350","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"6e80f3eff6b62c476666f8f81487b773d5847d9dcf2af0baa67d270b85bfb19a"},{"hash":"f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","version":1538,"parents_by_level":[["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["79262c5c41cb94dc3fe41688b83cdfcb7fd188093033daa7e754784077d5812d","1614191bf8173dfca5cca95011e7eac8b556ef74f46669e27a8c1ac97b896687"],["1216c10f8baf7f975db085ca79bba4157816feef47c193bab305158bbdc6464a"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"9edd44d7e6e1a03b6936fc19824bb6f89a697593e3011dcb01de31e7b4df2191","accepted_id_merkle_root":"504c3fb496e0a41c27e64b9970afeaa586fe95ffebbf7ccbe7dae9783ebe5da4","utxo_commitment":"7adba5ea382f5e503519bf3159d3a4ff2e63e5974f349d2325e9da9acf886774","timestamp":"1791454575744","bits":486807706,"nonce":"531029752191280023","daa_score":"62665","blue_work":"000000000000000000000000000000000000210613250059","blue_score":"62352","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","version":1538,"parents_by_level":[["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["f259f9bbb4d50940443da274050bf8344ca895fa46e527e2254a3f16ccc5479e","87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f","afd3ac5851362c8e6ec84ab6b22d90d82aabd3d900e0f088a7e7c1bfa889373b"],["87a459d4a31e09756cbd59032124485e9b32fdd6031c50d64f9e91bf22d3215f"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"ee2e477abc3cddecaa419bc7baf89cb93c031c4b0837a8d475fb3b980a90a274","accepted_id_merkle_root":"c9a07a82df0fc8ca01898839375f5f814ccf94bda81a519c3a6c3057845566cc","utxo_commitment":"36e8c5504f602e65d258f19dad65d3f0da5efa320955e715c35757653052e3b0","timestamp":"1791454578596","bits":486807814,"nonce":"5268551126911609932","daa_score":"62668","blue_work":"0000000000000000000000000000000000002106cea266a2","blue_score":"62355","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"},{"hash":"edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","version":1538,"parents_by_level":[["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","13c9f794e6ae50934b749ee034c33cc41822e25931efa3fbdd80201d0ec22eb8","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"2c57b6d03ee093857f570b2f7a6247bab5a464876030bdf5b4a8d3f2d3e0445a","accepted_id_merkle_root":"e7ac5482030087b02378ce6f5ce2bf4c9a1b8aff3403eba4f06e25bb9caef6e5","utxo_commitment":"43b0f8f4a07d01b653d34abc022054c3f88830be12d7a51deb99fdb69c98089a","timestamp":"1791454580685","bits":486807798,"nonce":"4449508512901646278","daa_score":"62671","blue_work":"000000000000000000000000000000000000210789ffe109","blue_score":"62358","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"befb7dfaf9638375bb11f30f5f9446c465eac043adcc75d8428d2eb48d3636e2"},{"hash":"c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","version":1538,"parents_by_level":[["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["edc982ce5f3046e55d1a7281e7554a6651f72b3c4bc9dad63bf0ac7cf754ff25","11b07a8bb196368ff4a3bc14b4b70a6452f40682a97c6e9a9f3073aeb7187740"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"ea09d58d37832236ca3048ef979ebcf06068f2f8a06fc3900e63e69cbc29868d","accepted_id_merkle_root":"98690076edd6fcfcf1599e97e722f36148f01b8a13270c5e5a87ecda46684ce0","utxo_commitment":"366183fba638cca275b151af112a48e6a4bb48c93c190ff87b534ce424056348","timestamp":"1791454583542","bits":486806470,"nonce":"13123750701574824748","daa_score":"62673","blue_work":"000000000000000000000000000000000000210806f422cf","blue_score":"62360","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"463ed7cd0f93054b4ee64273d4a68916c630f8527ae5e227609289c7f336c316"},{"hash":"b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","version":1538,"parents_by_level":[["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["c3e36928a52fcdd742a3c1e5abf09d99c7721b1ad4a732b59d06f746190aae78","aee2fda016fe7fb5826f575c59d0a0bdf0d6d9d2f9f475fb4921cc13a7c0dc18","bac8361d91c1b24baf18f4632519f5f1c6d3cfe3a750e99e8c9dc763c249e24e"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"40087a0e05f593a600bafdb63bb504bab46b881d06aad1dc0eed2851bee71c91","accepted_id_merkle_root":"d6e25498e34d0dbb597737d46bde0025a8a6430a436ad639241167f6aea852c4","utxo_commitment":"c5f0829f1597614e0fc1c420820f8bf678d9ef3e7a7a6716625b8f0d49de25ae","timestamp":"1791454586887","bits":486806161,"nonce":"15057212031821086333","daa_score":"62676","blue_work":"0000000000000000000000000000000000002108c3018058","blue_score":"62363","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"0c550c9c91fb321b07b3b80ffebe6a1076b120839e4be75eb8ba16cbc07c6523"},{"hash":"cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","version":1538,"parents_by_level":[["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["b93a021a6cdc23615829b1247efb06cda35262d3e050b3c83dd5b734a119f173","c3475b67b55ba5a82b8559f42ee2a789962d03bb8a176c8f9699d5db94905e86"],["d547517998ad054df26aa720eebb82845beb3d49f271c73425382d455f42cd72","ab05f2001dd06e407a9484113763003f01f392f02b88d29dd1de4a3595cb6312"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"aac24f918e4c897899593e0f5d3c030ce8a08c6e341dc0f27e848979a4100c79","accepted_id_merkle_root":"c44b1e7508e16df2b97bc0dff2b6a018be4491efed3555b146128906610681bc","utxo_commitment":"d5151153aa2d6bfaf8b74dc23f4150ba2c724347d43083fe16fe6ee5d07a5278","timestamp":"1791454588937","bits":486806974,"nonce":"3040225968079214040","daa_score":"62678","blue_work":"000000000000000000000000000000000000210940a758f5","blue_score":"62365","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"d5e75a4f2ba0f288eaaffd4639883922a5059e0fc7ea59cbe6dc230bc8941f56"},{"hash":"44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","version":1538,"parents_by_level":[["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["cd18504c9916e9978dc6f29c46d9676b6410ac15898c897243009d9ffb80d2af","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91","cc89003856eb05a9b34df76230397f2c9c085f36fac50cd9d7e63dc0fe94eb8b"],["209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"69d1cbe8a3ad98074117a432410a94a595d8336e6f9a0ab65d50297833882359","accepted_id_merkle_root":"f786ee49183dbe90c22c3794a7c879a1dc2697c58dc5f1db2406c223b1bf3cee","utxo_commitment":"b6a258ecc5de3d93c416a2c4abd33fc8c3f2209fb23ed12e1dcdc0987189b392","timestamp":"1791454592208","bits":486806547,"nonce":"13559917227620654393","daa_score":"62681","blue_work":"0000000000000000000000000000000000002109fcda4a65","blue_score":"62368","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"},{"hash":"f52c685c3c4b4bdfe1b7393f50aacc677b8fc518565034c3054aa4675e7761b8","version":1538,"parents_by_level":[["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["44f9563c5490863c9181752fa6f529b011ad9c6382d17c28640b7dd13d024b6d","4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","9d3af56258a7d7f0eb4e39273fa3e6316615b770bc213d2b8876e1368fd2ef49"],["4ac670c45c64b97fa7390c038349570f0b948f7807ddffc3995dc287ea6150f6","209be54d5edd77a91aaac2e20addf5565942bb11576abaed553ff1fa56983e91"],["44510bddf2bd3006523354c1776edffa116399e1c890c30af9dc9db5bf5f057d"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["24ec396b144353b2d3401504d0d7ee7398943150e5b4abda52a9b24c0acab74a"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["c3029d7f9f12fc3313ea35a67b62463f955315e1c45c7ebbba8c6cd087172fc1"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"e33954e381d87b8eaffe9b9cd6956f9f6e1e41f53808af2e288275da1706aec0","accepted_id_merkle_root":"172b8b39dab65ec7ec9c04842e1ec8f2d1e40ee014dd8912fe1ad8204958127c","utxo_commitment":"420c0eab255137ddb34d53320adea8c26e46ec1b63fe857affcde761ca2d13f8","timestamp":"1791454593552","bits":486805980,"nonce":"9356002538226592155","daa_score":"62684","blue_work":"000000000000000000000000000000000000210ab904fd6e","blue_score":"62371","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"1dc3901ba4b2cfa3a6e677ff3fdbec1498487b754f6e8c4edc30b5f2352b52b7"}],"execution":{"chain_block":26979,"chain_block_hash":"203f4d0f369c8bb954e6b4daae78b471898c0d80bbda887b6b079d4a96e91476","status":"0x1","gas_used":"0x5208","from":"0x21ee8aed0f39d0600aea7b5ec1b73d4f5b00372d","to":"0x7be2f2601e6b269061d1375b2edd7ef58a6fa861","contract_address":null,"logs":0,"effective_gas_price":"0x178411b200","as_reported_by":"the node (not proven here)"},"tx_as_reported":{"from":"0x21ee8aed0f39d0600aea7b5ec1b73d4f5b00372d","to":"0x7be2f2601e6b269061d1375b2edd7ef58a6fa861","value":"0x297d486920a00","nonce":"0x4cbe","type":"0x2","chain_id":"0x116f"}} \ No newline at end of file diff --git a/tools/reference-apps/light-service/.gitignore b/tools/reference-apps/light-service/.gitignore new file mode 100644 index 000000000..c2658d7d1 --- /dev/null +++ b/tools/reference-apps/light-service/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/tools/reference-apps/light-service/package-lock.json b/tools/reference-apps/light-service/package-lock.json new file mode 100644 index 000000000..9d748be70 --- /dev/null +++ b/tools/reference-apps/light-service/package-lock.json @@ -0,0 +1,43 @@ +{ + "name": "igneum-light-service", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "igneum-light-service", + "version": "0.1.0", + "dependencies": { + "@noble/curves": "2.4.0", + "@noble/hashes": "2.4.0" + } + }, + "node_modules/@noble/curves": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.4.0.tgz", + "integrity": "sha512-P4/62zrgfH33CneE3Dn4WhJVA22YUU0eR51wKIan4NVRvwsA0YnPTwWGpNbpuacSujmSFLvyzpyuR30+fbq2Ew==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "2.4.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.4.0.tgz", + "integrity": "sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + } + } +} diff --git a/tools/reference-apps/light-service/package.json b/tools/reference-apps/light-service/package.json new file mode 100644 index 000000000..3aaf9938c --- /dev/null +++ b/tools/reference-apps/light-service/package.json @@ -0,0 +1,8 @@ +{ + "name": "igneum-light-service", + "version": "0.1.0", + "private": true, + "type": "module", + "description": "Igneum reference apps: the read service behind rpc.devnet.igneum.network/light (runs on build-1)", + "dependencies": { "@noble/curves": "2.4.0", "@noble/hashes": "2.4.0" } +} diff --git a/tools/reference-apps/light-service/serve.mjs b/tools/reference-apps/light-service/serve.mjs new file mode 100644 index 000000000..6ef9c865c --- /dev/null +++ b/tools/reference-apps/light-service/serve.mjs @@ -0,0 +1,265 @@ +// Igneum reference apps, the read service (8 October 2026). Runs on build-1 at 127.0.0.1:26890 behind +// https://rpc.devnet.igneum.network/light/ (the build-server lane's Caddy route, prefix stripped). GET only, CORS open, +// answers JSON that a browser verifies by itself with site/light/core.js: nothing here is a verdict, everything is data +// the page recomputes. Reads a Devnet 3 node that executes (the exec JSON-RPC for records, receipts and eth_getProof; +// the wRPC JSON websocket for block bodies and headers). +// +// /checkpoint the latest certified checkpoint (proxied from the site's /api/checkpoint?source=dn3) +// /balance?address=0x..&checkpoint=&index= +// the newest paid segment record under that checkpoint, the carrier block's coinbase and +// merkle path, the header path carrier..checkpoint, and eth_getProof at the record's block +// /receipt?tx=0x..&checkpoint=&index= +// the raw transaction, its including block's merkle path, the header path to the checkpoint +// /health +// +// Env: LIGHT_PORT (26890), EXEC_RPC (http://127.0.0.1:26881), WRPC (ws://127.0.0.1:28880), DATABASE_URL (the Devnet 3 +// observer's Neon string: /checkpoint reads the dn3_ rows directly), else CHECKPOINT_URL (the site's API). Zero npm dependencies beyond @noble/hashes +// (blake2b, keccak) installed beside this file on the box. +import { createServer } from 'node:http'; +import { blake2b } from '@noble/hashes/blake2.js'; +import { keccak_256 } from '@noble/hashes/sha3.js'; +import { coinbaseTxHash, merkleRoot, merklePath, hexToBytes, bytesToHex, segmentRecordsOf } from '../../../site/light/core.js'; +import { readCheckpoint, neon } from '../../../site/api/checkpoint.mjs'; + +const PORT = Number(process.env.LIGHT_PORT || 26890); +const EXEC = process.env.EXEC_RPC || 'http://127.0.0.1:26881'; +const WRPC = process.env.WRPC || 'ws://127.0.0.1:28880'; +const CHECKPOINT_URL = process.env.CHECKPOINT_URL || 'https://igneum.network/api/checkpoint?source=dn3'; +const SEGMENT_BLOCKS = 8; +const strip = s => String(s).replace(/^0x/i, '').toLowerCase(); +const log = (...a) => console.log(new Date().toISOString(), ...a); + +// ---- the exec JSON-RPC ------------------------------------------------------------------------------------------- +async function exec(method, params) { + const r = await fetch(EXEC, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method, params }), signal: AbortSignal.timeout(20000) }); + const j = await r.json(); + if (j.error) throw new Error(`${method}: ${j.error.message || JSON.stringify(j.error)}`); + return j.result; +} + +// ---- the wRPC JSON websocket, one connection, reopened on loss; u64 nonces kept as strings --------------------------- +let ws = null, wsOpen = null, nextId = 1; const pending = new Map(); +function wrpcConnect() { + if (wsOpen) return wsOpen; + wsOpen = new Promise((resolve, reject) => { + const s = new WebSocket(WRPC); + s.addEventListener('open', () => { ws = s; resolve(s); }); + s.addEventListener('error', e => { wsOpen = null; reject(new Error('wrpc: ' + (e.message || 'socket error'))); }); + s.addEventListener('close', () => { ws = null; wsOpen = null; for (const [, p] of pending) p.reject(new Error('wrpc: closed')); pending.clear(); }); + s.addEventListener('message', e => { + let m; try { m = JSON.parse(String(e.data).replace(/"nonce":(\d+)/g, '"nonce":"$1"')); } catch { return; } + const p = pending.get(m.id); if (!p) return; pending.delete(m.id); + if (m.error) p.reject(new Error('wrpc ' + p.method + ': ' + (m.error.message || JSON.stringify(m.error)))); else p.resolve(m.params); + }); + }); + return wsOpen; +} +async function wrpc(method, params) { + const s = await wrpcConnect(); + const id = nextId++; + return new Promise((resolve, reject) => { + pending.set(id, { resolve, reject, method }); + s.send(JSON.stringify({ id, method, params })); + setTimeout(() => { if (pending.has(id)) { pending.delete(id); reject(new Error('wrpc ' + method + ': timeout')); } }, 20000); + }); +} + +// ---- headers: the verifier's shape (site/verify/core.js headerHash), cached by hash --------------------------------- +const headerCache = new Map(); +function shapeHeader(h) { + return { + hash: h.hash, version: h.version, parents_by_level: h.parentsByLevel, hash_merkle_root: h.hashMerkleRoot, accepted_id_merkle_root: h.acceptedIdMerkleRoot, + utxo_commitment: h.utxoCommitment, timestamp: String(h.timestamp), bits: h.bits, nonce: String(h.nonce), daa_score: String(h.daaScore), + blue_work: h.blueWork, blue_score: String(h.blueScore), pruning_point: h.pruningPoint, vote_key_hash: h.voteKeyHash, + }; +} +async function header(hash) { + const k = strip(hash); + if (headerCache.has(k)) return headerCache.get(k); + const b = (await wrpc('getBlock', { hash: k, includeTransactions: false })).block; + const h = shapeHeader(b.header); + if (headerCache.size > 20000) headerCache.clear(); + headerCache.set(k, h); + return h; +} +async function body(hash) { + return (await wrpc('getBlock', { hash: strip(hash), includeTransactions: true })).block; +} + +// The header path from `from` (a block in the past of chain block `chainNumber`) up to the checkpoint (chain block +// `cpNumber`): [from, ..., chain block chainNumber, ..., checkpoint]; every next header names the previous as a direct parent. +async function headerPath(fromHash, chainNumber, cpNumber, cpHash) { + const chainHashes = []; + for (let n = chainNumber; n <= cpNumber; n++) { + const b = await exec('eth_getBlockByNumber', ['0x' + n.toString(16), false]); + if (!b) throw new Error(`chain block ${n} is not executed on this node`); + chainHashes.push(strip(b.hash)); + } + if (chainHashes[chainHashes.length - 1] !== strip(cpHash)) throw new Error(`chain block ${cpNumber} on this node is ${chainHashes[chainHashes.length - 1].slice(0, 12)}, not the certified checkpoint ${strip(cpHash).slice(0, 12)}`); + // down from the chain block to `from` through direct parents (a merged block sits a few parents below) + const start = chainHashes[0]; + let down = []; + if (strip(fromHash) !== start) { + const target = strip(fromHash); + const prev = new Map([[start, null]]); + let frontier = [start]; let found = false; + for (let depth = 0; depth < 80 && frontier.length && !found; depth++) { + const next = []; + for (const h of frontier) { + const hd = await header(h); + for (const p of (hd.parents_by_level[0] || [])) { + const ps = strip(p); + if (prev.has(ps)) continue; + prev.set(ps, h); + if (ps === target) { found = true; break; } + next.push(ps); + } + if (found) break; + } + frontier = next; + } + if (!found) throw new Error(`block ${target.slice(0, 12)} is not within 80 parents below chain block ${chainNumber}`); + for (let h = target; h !== null; h = prev.get(h)) down.push(h); + down = down.slice(0, -1); // ends with the chain block, which chainHashes carries + } + const order = [...down, ...chainHashes]; + const out = []; + for (const h of order) out.push(await header(h)); + for (let i = 1; i < out.length; i++) if (!(out[i].parents_by_level[0] || []).map(strip).includes(strip(out[i - 1].hash))) throw new Error(`header ${i} of the path does not name header ${i - 1} as a direct parent`); + return out; +} + +// ---- the checkpoint ----------------------------------------------------------------------------------------------- +async function checkpoint() { + if (process.env.DATABASE_URL) { + // the Devnet 3 observer's rows, read the way the site's /api/checkpoint reads them (DATABASE_URL from the box's observer env) + const cp = await readCheckpoint(neon(), 'dn3'); + if (!cp) throw httpError(404, 'no certified Devnet 3 checkpoint stored yet'); + return { ok: true, now: new Date().toISOString(), ...cp }; + } + const r = await fetch(CHECKPOINT_URL, { signal: AbortSignal.timeout(15000), cache: 'no-store' }); + const j = await r.json(); + if (!j.ok) throw new Error('checkpoint: ' + (j.error || r.status)); + return j; +} +async function chainNumberOf(hash) { + const b = await exec('eth_getBlockByHash', ['0x' + strip(hash), false]); + if (!b) throw new Error(`the checkpoint ${strip(hash).slice(0, 12)} is not an executed chain block on this node yet`); + return Number(b.number); +} + +// ---- /balance ------------------------------------------------------------------------------------------------------- +async function balance(q) { + const address = q.get('address') || ''; + if (!/^0x[0-9a-fA-F]{40}$/.test(address)) throw httpError(400, 'address: 0x and 40 hex digits'); + const cpHash = q.get('checkpoint'), cpIndex = Number(q.get('index')); + if (!cpHash || !(cpIndex >= 0)) throw httpError(400, 'checkpoint and index are required (from /api/checkpoint?source=dn3)'); + const cpNumber = await chainNumberOf(cpHash); + // the newest paid segment record carried at or below the checkpoint + let chosen = null; + for (let first = Math.floor(cpNumber / SEGMENT_BLOCKS) * SEGMENT_BLOCKS, k = 0; first >= 0 && k < 400; first -= SEGMENT_BLOCKS, k++) { + const s = await exec('igneum_getSegmentRecords', ['0x' + first.toString(16)]); + if (!s || !s.paid) continue; + const carrierNumber = Number(s.paid.carrierNumber); + if (carrierNumber > cpNumber) continue; + const c = (s.carried || []).find(x => x.valid && Number(x.carrierNumber) === carrierNumber && strip(x.keyHash) === strip(s.paid.keyHash)); + if (!c) continue; + chosen = { first, last: Number(c.last), carrier: strip(c.carrier), carrierNumber, keyHash: c.keyHash, statement: c.statement, paidWei: s.paid.wei }; + break; + } + if (!chosen) throw httpError(503, `no paid segment record carried at or below chain block ${cpNumber} within 400 segments`); + const carrier = await body(chosen.carrier); + const coinbase = carrier.transactions[0]; + const evmHashes = (carrier.evmTransactions || []).map(raw => keccak_256(hexToBytes(strip(raw)))); + const leaves = [coinbaseTxHash(coinbase, blake2b), ...evmHashes]; + const root = bytesToHex(merkleRoot(leaves, blake2b)); + if (root !== strip(carrier.header.hashMerkleRoot)) throw httpError(500, `the carrier's body root recomputes to ${root.slice(0, 12)}, the header says ${strip(carrier.header.hashMerkleRoot).slice(0, 12)}: the serialisation here is wrong, not the chain`); + const records = segmentRecordsOf(hexToBytes(strip(coinbase.payload))); + const rec = records.find(r => Number(r.first) === chosen.first && Number(r.last) === chosen.last); + if (!rec) throw httpError(500, `the carrier's coinbase holds ${records.length} segment record(s), none for segment ${chosen.first}`); + const headers = await headerPath(chosen.carrier, chosen.carrierNumber, cpNumber, cpHash); + const account = await exec('eth_getProof', [address, [], '0x' + chosen.last.toString(16)]); + const chainId = await exec('eth_chainId', []); + return { + ok: true, now: new Date().toISOString(), chain_id: 'igneum-devnet-3', address, + checkpoint: { hash: strip(cpHash), index: cpIndex, chain_block: cpNumber }, + segment: { first: chosen.first, last: chosen.last, carrier: chosen.carrier, carrier_chain_block: chosen.carrierNumber, aggregator_key_hash: chosen.keyHash, paid_wei: chosen.paidWei, statement: chosen.statement }, + headers, + carrier: { coinbase, evm_tx_hashes: evmHashes.map(bytesToHex), leaf_index: 0, merkle_siblings: siblings(leaves, 0), amount_wire_len: 8 }, + segment_record_hex: bytesToHex(rec.bytes), + account: { ...account, evm_chain_id: Number(chainId) }, + }; +} +function siblings(leaves, index) { + // recompute the actual sibling hashes level by level (merklePath only gives the shape) + const H = d => blake2b(d, { dkLen: 32, key: new TextEncoder().encode('MerkleBranchHash') }); + const Z = new Uint8Array(32); const out = []; let level = leaves.slice(); let i = index; + while (level.length > 1) { + out.push(bytesToHex(i % 2 === 0 ? (level[i + 1] || Z) : level[i - 1])); + const next = []; for (let k = 0; k < level.length; k += 2) { const l = level[k], r = level[k + 1] || Z; const m = new Uint8Array(64); m.set(l); m.set(r, 32); next.push(H(m)); } + level = next; i = i >> 1; + } + return out; +} +void merklePath; + +// ---- /receipt ------------------------------------------------------------------------------------------------------- +async function receipt(q) { + const tx = q.get('tx') || ''; + if (!/^0x[0-9a-fA-F]{64}$/.test(tx)) throw httpError(400, 'tx: 0x and 64 hex digits'); + const cpHash = q.get('checkpoint'), cpIndex = Number(q.get('index')); + if (!cpHash || !(cpIndex >= 0)) throw httpError(400, 'checkpoint and index are required (from /api/checkpoint?source=dn3)'); + const t = await exec('eth_getTransactionByHash', [tx]); + if (!t) throw httpError(404, 'the node has not executed a transaction with that hash (unknown, or not yet in a block)'); + const rcpt = await exec('eth_getTransactionReceipt', [tx]); + const cpNumber = await chainNumberOf(cpHash); + const chainNumber = Number(t.blockNumber); + if (chainNumber > cpNumber) throw httpError(409, `not final yet: executed at chain block ${chainNumber}, the latest certified checkpoint is chain block ${cpNumber}; try again in about ${chainNumber - cpNumber + 30} s`); + const including = strip(t.igneum.includingBlock); + const b = await body(including); + const raws = b.evmTransactions || []; + const idx = raws.findIndex(raw => bytesToHex(keccak_256(hexToBytes(strip(raw)))) === strip(tx)); + if (idx < 0) throw httpError(500, 'the including block\'s body does not carry the transaction'); + const leaves = [coinbaseTxHash(b.transactions[0], blake2b), ...raws.map(raw => keccak_256(hexToBytes(strip(raw))))]; + const root = bytesToHex(merkleRoot(leaves, blake2b)); + if (root !== strip(b.header.hashMerkleRoot)) throw httpError(500, `the including block's body root recomputes to ${root.slice(0, 12)}, the header says ${strip(b.header.hashMerkleRoot).slice(0, 12)}`); + const headers = await headerPath(including, chainNumber, cpNumber, cpHash); + return { + ok: true, now: new Date().toISOString(), chain_id: 'igneum-devnet-3', tx_hash: strip(tx), raw_tx_hex: strip(raws[idx]), + checkpoint: { hash: strip(cpHash), index: cpIndex, chain_block: cpNumber }, + including_block: { header: headers[0], leaf_index: idx + 1, leaf_count: leaves.length, merkle_siblings: siblings(leaves, idx + 1) }, + headers, + execution: rcpt ? { chain_block: chainNumber, chain_block_hash: strip(rcpt.blockHash), status: rcpt.status, gas_used: rcpt.gasUsed, from: rcpt.from, to: rcpt.to, contract_address: rcpt.contractAddress, logs: (rcpt.logs || []).length, effective_gas_price: rcpt.effectiveGasPrice, as_reported_by: 'the node (not proven here)' } : null, + tx_as_reported: { from: t.from, to: t.to, value: t.value, nonce: t.nonce, type: t.type, chain_id: t.chainId }, + }; +} + +// ---- the server ----------------------------------------------------------------------------------------------------- +function httpError(status, message) { const e = new Error(message); e.status = status; return e; } +const server = createServer(async (req, res) => { + const u = new URL(req.url || '/', 'http://x'); + res.setHeader('Access-Control-Allow-Origin', '*'); + res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS'); + res.setHeader('Access-Control-Allow-Headers', 'content-type'); + res.setHeader('Cache-Control', 'no-store'); + if (req.method === 'OPTIONS') { res.writeHead(204); return res.end(); } + if (req.method !== 'GET') { res.writeHead(405, { 'content-type': 'application/json' }); return res.end('{"ok":false,"error":"GET only"}'); } + const t0 = Date.now(); + try { + let out; + if (u.pathname === '/health') out = { ok: true, exec: EXEC, wrpc: WRPC, status: await exec('igneum_getExecStatus', []).catch(e => String(e.message)) }; + else if (u.pathname === '/checkpoint') out = await checkpoint(); + else if (u.pathname === '/balance') out = await balance(u.searchParams); + else if (u.pathname === '/receipt') out = await receipt(u.searchParams); + else throw httpError(404, 'no such endpoint: /checkpoint, /balance, /receipt, /health'); + res.writeHead(200, { 'content-type': 'application/json' }); + res.end(JSON.stringify(out)); + log(req.method, u.pathname, 200, Date.now() - t0, 'ms'); + } catch (e) { + const status = e.status || 500; + res.writeHead(status, { 'content-type': 'application/json' }); + res.end(JSON.stringify({ ok: false, error: String(e.message || e) })); + log(req.method, u.pathname + u.search, status, Date.now() - t0, 'ms', String(e.message || e).slice(0, 200)); + } +}); +server.listen(PORT, '127.0.0.1', () => log(`light service on 127.0.0.1:${PORT}, exec ${EXEC}, wrpc ${WRPC}`)); diff --git a/tools/reference-apps/light-service/verify.test.mjs b/tools/reference-apps/light-service/verify.test.mjs new file mode 100644 index 000000000..2f7476329 --- /dev/null +++ b/tools/reference-apps/light-service/verify.test.mjs @@ -0,0 +1,64 @@ +// The reference apps' checks against real Devnet 3 data: the genuine case verifies, every tampered case is refused. +// Known-failed first. Runs under Node 22 with the two noble libraries installed beside this file (npm install here): +// node verify.test.mjs [receipt.json] [balance.json] [checkpoint.json] default: ../fixtures/dn3-*.json +// Exits 1 on the first case that does not behave. The same core.js runs in the browser pages and in the one-file +// offline receipt verifier, so this is the test that proves their negative cases. +import { readFileSync } from 'node:fs'; +import { blake2b } from '@noble/hashes/blake2.js'; +import { keccak_256 } from '@noble/hashes/sha3.js'; +import { bls12_381 } from '@noble/curves/bls12-381.js'; +import { verifyReceipt, verifyBalance } from '../../../site/light/core.js'; + +const deps = { blake2b, bls: bls12_381, keccak: keccak_256 }; +const here = new URL('.', import.meta.url).pathname; +const load = p => JSON.parse(readFileSync(p, 'utf8')); +const clone = x => JSON.parse(JSON.stringify(x)); +const flipHex = (s, at) => { const h = s.replace(/^0x/, ''); const i = Math.min(at, h.length - 1); const d = (parseInt(h[i], 16) ^ 1).toString(16); return (s.startsWith('0x') ? '0x' : '') + h.slice(0, i) + d + h.slice(i + 1); }; +let failed = 0; +function expect(name, result, want) { + const ok = result.verified === want; + const line = `${ok ? 'ok ' : 'FAIL'} ${want ? 'verifies' : 'refused '} ${name}${result.verified ? '' : ' :: ' + result.reason}`; + console.log(line); if (!ok) failed++; +} + +const receiptPath = process.argv[2] || here + '../fixtures/dn3-receipt.json'; +const receipt = load(receiptPath); +console.log(`receipt ${receipt.tx_hash.slice(0, 12)} on ${receipt.chain_id}, checkpoint ${receipt.checkpoint.index}, ${receipt.headers.length} headers`); +// the known-failed cases first +{ const d = clone(receipt); d.raw_tx_hex = flipHex(d.raw_tx_hex, 40); expect('raw transaction altered by one nibble', verifyReceipt(d, deps), false); } +{ const d = clone(receipt); d.tx_hash = flipHex(d.tx_hash, 10); expect('transaction hash altered', verifyReceipt(d, deps), false); } +{ const d = clone(receipt); d.including_block.leaf_index = d.including_block.leaf_index === 1 ? 2 : 1; expect('merkle leaf index moved', verifyReceipt(d, deps), false); } +{ const d = clone(receipt); d.including_block.merkle_siblings[0] = flipHex(d.including_block.merkle_siblings[0], 3); expect('a merkle sibling altered', verifyReceipt(d, deps), false); } +{ const d = clone(receipt); if (d.headers.length > 2) { d.headers.splice(Math.floor(d.headers.length / 2), 1); expect('a header removed from the path', verifyReceipt(d, deps), false); } } +{ const d = clone(receipt); const h = d.headers[Math.floor(d.headers.length / 2)]; h.nonce = String(BigInt(h.nonce) ^ 1n); expect('a header nonce altered', verifyReceipt(d, deps), false); } +{ const d = clone(receipt); d.headers[0].hash_merkle_root = flipHex(d.headers[0].hash_merkle_root, 5); expect('the including block\'s body root altered', verifyReceipt(d, deps), false); } +{ const d = clone(receipt); const c = d.checkpoint.certificate; c.certificate.aggregate_signature_hex = flipHex(c.certificate.aggregate_signature_hex, 20); expect('certificate signature altered', verifyReceipt(d, deps), false); } +{ const d = clone(receipt); d.checkpoint.hash = flipHex(d.checkpoint.hash, 60); expect('receipt points at another checkpoint than its certificate', verifyReceipt(d, deps), false); } +{ const d = clone(receipt); const c = d.checkpoint.certificate; const bm = parseInt(c.certificate.bitmap_hex.slice(0, 2), 16); let p = 0; while (!(bm & (1 << p))) p++; c.certificate.bitmap_hex = (bm & ~(1 << p)).toString(16).padStart(2, '0') + c.certificate.bitmap_hex.slice(2); expect(`a signer dropped from the certificate bitmap (position ${p})`, verifyReceipt(d, deps), false); } +// then the genuine one +const r = verifyReceipt(receipt, deps); +expect(`genuine receipt (${r.ms} ms)`, r, true); +if (r.verified) console.log(` ${r.tx.type === 2 ? 'EIP-1559' : 'type ' + r.tx.type} tx to ${r.tx.to}, value ${r.tx.value} wei, in block ${r.block.slice(0, 12)} at DAA ${r.block_daa}, ${r.headers} headers to checkpoint ${r.checkpoint}`); + +const balancePath = process.argv[3] || here + '../fixtures/dn3-balance.json'; +let balance = null; try { balance = load(balancePath); } catch { console.log('no balance fixture yet (' + balancePath + '), skipping the balance cases'); } +if (balance) { + const cp = balance.checkpoint_certificate || load(process.argv[4] || here + '../fixtures/dn3-checkpoint.json'); + console.log(`balance of ${balance.address} at chain block ${balance.segment.last}, checkpoint ${balance.checkpoint.index}, ${balance.headers.length} headers`); + { const d = clone(balance); d.account.accountProof[d.account.accountProof.length - 1] = flipHex(d.account.accountProof[d.account.accountProof.length - 1], 30); expect('account proof: a node altered', verifyBalance(cp, d, deps), false); } + { const d = clone(balance); d.account.balance = '0x' + (BigInt(d.account.balance) + 1n).toString(16); expect('reported balance raised by one wei', verifyBalance(cp, d, deps), false); } + { const d = clone(balance); d.account.stateRoot = flipHex(d.account.stateRoot, 8); expect('state root altered', verifyBalance(cp, d, deps), false); } + { const d = clone(balance); d.segment_record_hex = flipHex(d.segment_record_hex, 2 * (2 + 8 + 8 + 32 + 48 + 20 + 148) + 3); expect('post_root altered inside the segment record', verifyBalance(cp, d, deps), false); } + { const d = clone(balance); d.segment_record_hex = flipHex(d.segment_record_hex, d.segment_record_hex.length - 10); expect('aggregator signature altered', verifyBalance(cp, d, deps), false); } + { const d = clone(balance); d.carrier.coinbase.payload = flipHex(d.carrier.coinbase.payload, 30); expect('coinbase payload altered', verifyBalance(cp, d, deps), false); } + { const d = clone(balance); d.carrier.merkle_siblings[0] = flipHex(d.carrier.merkle_siblings[0], 1); expect('a merkle sibling altered', verifyBalance(cp, d, deps), false); } + { const d = clone(balance); if (d.headers.length > 2) { d.headers.splice(1, 1); expect('a header removed from the path', verifyBalance(cp, d, deps), false); } } + { const d = clone(balance); d.checkpoint.hash = flipHex(d.checkpoint.hash, 1); expect('proof names another checkpoint than the certificate', verifyBalance(cp, d, deps), false); } + { const c = clone(cp); c.certificate.aggregate_signature_hex = flipHex(c.certificate.aggregate_signature_hex, 20); expect('certificate signature altered', verifyBalance(c, balance, deps), false); } + { const d = clone(balance); d.address = '0x' + '11'.repeat(20); expect('another address with this proof', verifyBalance(cp, d, deps), false); } + const b = verifyBalance(cp, balance, deps); + expect(`genuine balance (${b.ms} ms)`, b, true); + if (b.verified) { console.log(` ${b.balance_wei} wei at chain block ${b.block}, ${b.headers} headers, ${b.aggregator}`); for (const s of b.steps) console.log(' ' + (s.ok ? 'ok ' : 'no ') + s.name + ': ' + s.detail); } +} +console.log(failed ? `FAILED ${failed}` : 'RESULT every case behaved'); +process.exit(failed ? 1 : 0); diff --git a/tools/reference-apps/oracle/contracts/Blake2b.sol b/tools/reference-apps/oracle/contracts/Blake2b.sol new file mode 100644 index 000000000..6c0c01dd4 --- /dev/null +++ b/tools/reference-apps/oracle/contracts/Blake2b.sol @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +// Keyed BLAKE2b-256 through the EIP-152 compression precompile at address 0x09. +// The precompile input is 213 bytes: rounds (u32 big-endian), h (8 u64 little-endian), +// m (128 bytes), t (2 u64 little-endian), f (one byte). It returns the new h (64 bytes). +// Parameter block: h0 ^= 0x01010000 ^ (keylen << 8) ^ outlen, with outlen 32. +// The key padded to 128 bytes is the first block with t = 128 and f = 0. +// The message follows in 128-byte blocks; the last block carries f = 1 and t = 128 + total bytes. +library Blake2b { + uint64 private constant IV0 = 0x6a09e667f3bcc908; + uint64 private constant IV1 = 0xbb67ae8584caa73b; + uint64 private constant IV2 = 0x3c6ef372fe94f82b; + uint64 private constant IV3 = 0xa54ff53a5f1d36f1; + uint64 private constant IV4 = 0x510e527fade682d1; + uint64 private constant IV5 = 0x9b05688c2b3e6c1f; + uint64 private constant IV6 = 0x1f83d9abfb41bd6b; + uint64 private constant IV7 = 0x5be0cd19137e2179; + + function swap64(uint64 v) internal pure returns (uint64 r) { + r = ((v & 0x00000000000000FF) << 56) | ((v & 0x000000000000FF00) << 40) + | ((v & 0x0000000000FF0000) << 24) | ((v & 0x00000000FF000000) << 8) + | ((v & 0x000000FF00000000) >> 8) | ((v & 0x0000FF0000000000) >> 24) + | ((v & 0x00FF000000000000) >> 40) | ((v & 0xFF00000000000000) >> 56); + } + + // The 32-byte keyed digest of `data`. The key is at most 64 bytes and never empty here. + function hash256(bytes memory key, bytes memory data) internal view returns (bytes32 out) { + require(key.length > 0 && key.length <= 64, "blake2b: key length"); + bytes memory buf = new bytes(213); + uint64[8] memory h = [IV0, IV1, IV2, IV3, IV4, IV5, IV6, IV7]; + h[0] ^= uint64(0x01010000) ^ (uint64(key.length) << 8) ^ uint64(32); + assembly { + let p := add(buf, 32) + mstore8(add(p, 3), 12) // rounds, big-endian u32 = 12 + for { let i := 0 } lt(i, 8) { i := add(i, 1) } { + let w := mload(add(h, mul(i, 32))) + // byte-swap the u64 into little-endian + let s := 0 + for { let k := 0 } lt(k, 8) { k := add(k, 1) } { + s := or(shl(8, s), and(shr(mul(k, 8), w), 0xff)) + } + mstore(add(p, add(4, mul(i, 8))), shl(192, s)) + } + } + uint256 n = data.length; + // The key block + _zeroBlock(buf); + assembly { mcopy(add(buf, 100), add(key, 32), mload(key)) } + _compress(buf, 128, n == 0); + // The message blocks + uint256 done = 0; + while (done < n) { + uint256 take = n - done; + if (take > 128) take = 128; + if (take < 128) _zeroBlock(buf); + assembly { mcopy(add(buf, 100), add(add(data, 32), done), take) } + done += take; + _compress(buf, 128 + done, done == n); + } + assembly { out := mload(add(buf, 36)) } + } + + function _zeroBlock(bytes memory buf) private pure { + assembly { + let m := add(buf, 100) + mstore(m, 0) + mstore(add(m, 32), 0) + mstore(add(m, 64), 0) + mstore(add(m, 96), 0) + } + } + + function _compress(bytes memory buf, uint256 t, bool last) private view { + uint64 tle = swap64(uint64(t)); + bool ok; + assembly { + let p := add(buf, 32) + mstore(add(p, 196), shl(192, tle)) // t0 little-endian, then zeros for t1 and f + if last { mstore8(add(p, 212), 1) } + ok := staticcall(gas(), 0x09, p, 213, add(p, 4), 64) + } + require(ok, "blake2b: precompile"); + } +} diff --git a/tools/reference-apps/oracle/contracts/IIgneumCertificateVerifier.sol b/tools/reference-apps/oracle/contracts/IIgneumCertificateVerifier.sol new file mode 100644 index 000000000..c440a8587 --- /dev/null +++ b/tools/reference-apps/oracle/contracts/IIgneumCertificateVerifier.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +// The shared Devnet 3 certificate verifier on Sepolia. The oracle reads certified checkpoints from it. +interface IIgneumCertificateVerifier { + function chainId() external view returns (string memory); + function tableId() external view returns (bytes32); + function verifyCertificate(uint64 index, bytes32 checkpoint, bytes calldata bitmap, bytes calldata signature) + external + view + returns (bool ok, uint256 signedWeight, uint256 totalWeight); + function submitCertificate(uint64 index, bytes32 checkpoint, bytes calldata bitmap, bytes calldata signature) external; + function finalCheckpoint(uint64 index) external view returns (bytes32); + function isFinal(bytes32 checkpoint) external view returns (bool); + function verifyAccount(bytes32 stateRoot, address account, bytes[] calldata proof) + external + pure + returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash); +} diff --git a/tools/reference-apps/oracle/contracts/Mpt.sol b/tools/reference-apps/oracle/contracts/Mpt.sol new file mode 100644 index 000000000..5bd9ce50e --- /dev/null +++ b/tools/reference-apps/oracle/contracts/Mpt.sol @@ -0,0 +1,170 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +// RLP reading and Merkle Patricia trie proofs in Ethereum's layout (keccak-keyed secure trie). +// A proof is the node list eth_getProof returns, root first, in path order. Every node is +// hashed and compared with the reference that led to it. Nodes shorter than 32 bytes may be +// embedded in their parent; those are walked in place. +library Mpt { + bytes32 internal constant EMPTY_ROOT = 0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421; + + struct Item { + bool isList; + uint256 start; // position of the item's prefix + uint256 off; // position of the item's payload + uint256 len; // payload length + } + + function item(bytes memory b, uint256 p) internal pure returns (Item memory it) { + require(p < b.length, "rlp: short"); + uint8 x = uint8(b[p]); + it.start = p; + if (x < 0x80) { + it.off = p; + it.len = 1; + } else if (x < 0xb8) { + it.len = x - 0x80; + it.off = p + 1; + } else if (x < 0xc0) { + uint256 ll = x - 0xb7; + it.len = uintAt(b, p + 1, ll); + it.off = p + 1 + ll; + } else if (x < 0xf8) { + it.isList = true; + it.len = x - 0xc0; + it.off = p + 1; + } else { + uint256 ll = x - 0xf7; + it.isList = true; + it.len = uintAt(b, p + 1, ll); + it.off = p + 1 + ll; + } + require(it.off + it.len <= b.length, "rlp: overrun"); + } + + function uintAt(bytes memory b, uint256 p, uint256 n) internal pure returns (uint256 v) { + require(n <= 32 && p + n <= b.length, "rlp: bad length"); + for (uint256 i = 0; i < n; i++) v = (v << 8) | uint8(b[p + i]); + } + + function slice(bytes memory b, uint256 off, uint256 len) internal pure returns (bytes memory out) { + out = new bytes(len); + assembly { mcopy(add(out, 32), add(add(b, 32), off), len) } + } + + function nibble(bytes32 key, uint256 i) private pure returns (uint8) { + uint8 x = uint8(key[i >> 1]); + return (i & 1) == 0 ? x >> 4 : x & 15; + } + + // Walks the proof for a 32-byte (already hashed) key. Returns (found, value bytes). + // Reverts on any node that does not hash to its reference or is malformed. + function get(bytes32 root, bytes32 key, bytes[] calldata proof) internal pure returns (bool found, bytes memory value) { + if (proof.length == 0) { + require(root == EMPTY_ROOT, "mpt: no nodes for a non-empty root"); + return (false, ""); + } + bytes memory node = proof[0]; + require(keccak256(node) == root, "mpt: the first node is not the root"); + uint256 pi = 1; + uint256 pos = 0; // nibbles of the key consumed + uint256 np = 0; // position of the current node inside `node` + for (uint256 guard = 0; guard < 80; guard++) { + Item memory list = item(node, np); + require(list.isList, "mpt: node is not a list"); + uint256[17] memory starts; + uint256 count = 0; + uint256 p = list.off; + while (p < list.off + list.len) { + require(count < 17, "mpt: too many items"); + Item memory it = item(node, p); + starts[count++] = p; + p = it.off + it.len; + } + Item memory child; + if (count == 17) { + if (pos == 64) { + Item memory v = item(node, starts[16]); + if (v.len == 0) return (false, ""); + return (true, slice(node, v.off, v.len)); + } + child = item(node, starts[nibble(key, pos)]); + pos += 1; + } else if (count == 2) { + Item memory hp = item(node, starts[0]); + require(!hp.isList && hp.len > 0, "mpt: bad path"); + uint8 flag = uint8(node[hp.off]) >> 4; + bool leaf = (flag & 2) != 0; + uint256 n = hp.len * 2 - ((flag & 1) != 0 ? 1 : 2); + for (uint256 i = 0; i < n; i++) { + uint256 k = i + ((flag & 1) != 0 ? 1 : 2); + uint8 x = uint8(node[hp.off + (k >> 1)]); + uint8 nib = (k & 1) == 0 ? x >> 4 : x & 15; + if (pos + i >= 64 || nib != nibble(key, pos + i)) return (false, ""); // the key diverges + } + pos += n; + child = item(node, starts[1]); + if (leaf) { + if (pos != 64) return (false, ""); + return (true, slice(node, child.off, child.len)); + } + } else { + revert("mpt: node with an odd item count"); + } + if (child.isList) { + np = child.start; // an embedded node + continue; + } + if (child.len == 0) return (false, ""); + require(child.len == 32, "mpt: bad reference"); + bytes32 want; + assembly { want := mload(add(add(node, 32), mload(add(child, 64)))) } + require(pi < proof.length, "mpt: a referenced node is missing"); + node = proof[pi++]; + require(keccak256(node) == want, "mpt: node does not hash to its reference"); + np = 0; + } + revert("mpt: path too deep"); + } + + function toUint(bytes memory b, uint256 off, uint256 len) internal pure returns (uint256 v) { + require(len <= 32, "rlp: integer too wide"); + for (uint256 i = 0; i < len; i++) v = (v << 8) | uint8(b[off + i]); + } + + function toBytes32(bytes memory b, uint256 off, uint256 len) internal pure returns (bytes32 v) { + require(len == 32, "rlp: not 32 bytes"); + assembly { v := mload(add(add(b, 32), off)) } + } + + // An eth_getProof account proof under `stateRoot`. + function account(bytes32 stateRoot, address a, bytes[] calldata proof) + internal + pure + returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash) + { + (bool found, bytes memory v) = get(stateRoot, keccak256(abi.encodePacked(a)), proof); + if (!found) return (false, 0, 0, bytes32(0), bytes32(0)); + Item memory list = item(v, 0); + require(list.isList, "mpt: account is not a list"); + Item memory f0 = item(v, list.off); + Item memory f1 = item(v, f0.off + f0.len); + Item memory f2 = item(v, f1.off + f1.len); + Item memory f3 = item(v, f2.off + f2.len); + require(f3.off + f3.len == list.off + list.len, "mpt: account has not four fields"); + exists = true; + nonce = toUint(v, f0.off, f0.len); + balance = toUint(v, f1.off, f1.len); + storageRoot = toBytes32(v, f2.off, f2.len); + codeHash = toBytes32(v, f3.off, f3.len); + } + + // An eth_getProof storage proof under `storageRoot`; a proven absence reads as zero. + function storageSlot(bytes32 storageRoot, bytes32 slot, bytes[] calldata proof) internal pure returns (bytes32) { + (bool found, bytes memory v) = get(storageRoot, keccak256(abi.encodePacked(slot)), proof); + if (!found) return bytes32(0); + Item memory it = item(v, 0); + require(!it.isList && it.off + it.len == v.length, "mpt: storage value is not a string"); + return bytes32(toUint(v, it.off, it.len)); + } +} diff --git a/tools/reference-apps/oracle/contracts/StubCertificateVerifier.sol b/tools/reference-apps/oracle/contracts/StubCertificateVerifier.sol new file mode 100644 index 000000000..7a1a8a2b1 --- /dev/null +++ b/tools/reference-apps/oracle/contracts/StubCertificateVerifier.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +import {IIgneumCertificateVerifier} from "./IIgneumCertificateVerifier.sol"; +import {Mpt} from "./Mpt.sol"; + +// A stand-in for the shared verifier until its Sepolia address lands. It records any certificate +// whose index and checkpoint are non-zero without checking the BLS signature. verifyAccount is real. +contract StubCertificateVerifier is IIgneumCertificateVerifier { + mapping(uint64 => bytes32) private _final; + mapping(bytes32 => bool) private _isFinal; + + event Recorded(uint64 indexed index, bytes32 checkpoint); + + function chainId() external pure returns (string memory) { + return "igneum-devnet-3"; + } + + function tableId() external pure returns (bytes32) { + return keccak256("stub: no voter table installed"); + } + + function verifyCertificate(uint64 index, bytes32 checkpoint, bytes calldata, bytes calldata) + external + pure + returns (bool ok, uint256 signedWeight, uint256 totalWeight) + { + ok = index != 0 && checkpoint != bytes32(0); + return (ok, ok ? 1 : 0, 1); + } + + function submitCertificate(uint64 index, bytes32 checkpoint, bytes calldata, bytes calldata) external { + require(index != 0 && checkpoint != bytes32(0), "stub: index and checkpoint must be non-zero"); + bytes32 have = _final[index]; + require(have == bytes32(0) || have == checkpoint, "stub: index already has another checkpoint"); + _final[index] = checkpoint; + _isFinal[checkpoint] = true; + emit Recorded(index, checkpoint); + } + + function finalCheckpoint(uint64 index) external view returns (bytes32) { + return _final[index]; + } + + function isFinal(bytes32 checkpoint) external view returns (bool) { + return _isFinal[checkpoint]; + } + + function verifyAccount(bytes32 stateRoot, address account, bytes[] calldata proof) + external + pure + returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash) + { + return Mpt.account(stateRoot, account, proof); + } +} diff --git a/tools/reference-apps/receipt/bundle.sh b/tools/reference-apps/receipt/bundle.sh new file mode 100644 index 000000000..4ee06d370 --- /dev/null +++ b/tools/reference-apps/receipt/bundle.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# Bundles the offline receipt verifier into one plain-JavaScript file (site/receipt/verify-receipt.js) with esbuild: the +# noble libraries inlined, Node built-ins external, no npm at run time. Runs on the build box (nothing heavy on the Mac): +# tools/reference-apps/receipt/bundle.sh from the worktree root; needs node and npx (esbuild is fetched by npx) +# The bundle is committed beside the pages: the site deploys from site/ alone and installs nothing. +set -euo pipefail +cd "$(git rev-parse --show-toplevel)" +SRC=tools/reference-apps/receipt/verify-receipt.src.mjs +OUT=site/receipt/verify-receipt.js +mkdir -p site/receipt +( cd tools/reference-apps/light-service && [ -d node_modules/@noble/curves ] || npm install --no-audit --no-fund >/dev/null ) +NODE_PATH=tools/reference-apps/light-service/node_modules npx --yes esbuild@0.24.2 "$SRC" --bundle --platform=node --format=cjs --target=node18 --legal-comments=inline \ + --banner:js="#!/usr/bin/env node +// Igneum payment receipt verifier, one file, offline. Source: tools/reference-apps/receipt/verify-receipt.src.mjs and site/light/core.js +// (the same checks the browser page runs), bundled with @noble/hashes 2.4.0 and @noble/curves 2.4.0 (MIT). Usage: node verify-receipt.js receipt.json [--tamper]" \ + --outfile="$OUT" +chmod +x "$OUT" +echo "bundled $OUT: $(wc -c < "$OUT") bytes, sha256 $(sha256sum "$OUT" | cut -c1-16)" diff --git a/tools/reference-apps/receipt/verify-receipt.src.mjs b/tools/reference-apps/receipt/verify-receipt.src.mjs new file mode 100644 index 000000000..1025208f8 --- /dev/null +++ b/tools/reference-apps/receipt/verify-receipt.src.mjs @@ -0,0 +1,33 @@ +// Igneum payment receipt, the offline verifier (8 October 2026). This is the SOURCE; the one-file build at +// site/receipt/verify-receipt.js bundles it with @noble/hashes (BLAKE2b, keccak) and @noble/curves (BLS12-381) so the +// shipped file needs no npm and no network: `node verify-receipt.js receipt.json [--tamper]`. Build: bundle.sh (esbuild +// on the build box). The checks are site/light/core.js, the same file the browser page runs. +import { readFileSync } from 'node:fs'; +import { blake2b } from '@noble/hashes/blake2.js'; +import { keccak_256 } from '@noble/hashes/sha3.js'; +import { bls12_381 } from '@noble/curves/bls12-381.js'; +import { verifyReceipt, formatIgn } from '../../../site/light/core.js'; + +const args = process.argv.slice(2); +const file = args.find(a => !a.startsWith('--')); +if (!file) { console.error('usage: node verify-receipt.js receipt.json [--tamper] (Igneum receipt, format igneum-receipt-v1; verifies offline)'); process.exit(2); } +const receipt = JSON.parse(readFileSync(file, 'utf8')); +if (receipt.format !== 'igneum-receipt-v1') { console.error(`REFUSED: not an igneum-receipt-v1 file (format ${receipt.format})`); process.exit(1); } +const deps = { blake2b, bls: bls12_381, keccak: keccak_256 }; +const print = r => { for (const s of r.steps) console.log(` ${s.ok ? 'ok ' : 'REFUSED'} ${s.name}\n ${s.detail}`); }; + +if (args.includes('--tamper')) { + // the known-failed case first: the same file with one nibble of the raw transaction altered must be refused + const bad = JSON.parse(JSON.stringify(receipt)); + const h = bad.raw_tx_hex; const i = 40; bad.raw_tx_hex = h.slice(0, i) + (parseInt(h[i], 16) ^ 1).toString(16) + h.slice(i + 1); + const t = verifyReceipt(bad, deps); + console.log(`tampered copy (one nibble of the raw transaction): ${t.verified ? 'NOT REFUSED, this verifier is broken' : 'REFUSED'}${t.reason ? ' :: ' + t.reason : ''}`); + if (t.verified) process.exit(1); +} +const r = verifyReceipt(receipt, deps); +console.log(`receipt 0x${receipt.tx_hash} on ${receipt.chain_id} (Devnet 3, no value)`); +print(r); +if (!r.verified) { console.log(`REFUSED: ${r.reason}`); process.exit(1); } +const t = r.tx; +console.log(`VERIFIED in ${r.ms} ms: ${formatIgn(t.value)} IGN to ${t.to || 'contract creation'} (${t.value} wei), in block ${r.block.slice(0, 16)} at DAA ${r.block_daa} (${new Date(Number(r.block_time)).toISOString()}), final under checkpoint ${r.checkpoint}; ${r.headers} headers checked; ${r.certificate}.`); +console.log('As reported by the node, not proven by this file: from ' + (receipt.tx_as_reported && receipt.tx_as_reported.from) + (receipt.execution ? `, execution status ${receipt.execution.status === '0x1' ? 'success' : 'failed'}` : '') + '. The voter table with weights came from the node (spec 10.1).'); From 43fcca8781a3d40b92965be3ce5e49e5252c166c Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:28:40 +0000 Subject: [PATCH 02/11] Reference apps: client code under site/lc (a directory named light or receipt would shadow the clean URLs /light and /receipt); step details as strings Co-Authored-By: Claude Fable 5.1 --- site/{light => lc}/app.js | 2 +- site/{light => lc}/core.js | 18 ++++++++++-------- site/{light => lc}/test.html | 2 +- site/{receipt => lc}/verify-receipt.js | 4 ++-- site/light.html | 4 ++-- site/receipt.html | 6 +++--- tools/reference-apps/light-service/serve.mjs | 4 ++-- .../light-service/verify.test.mjs | 2 +- tools/reference-apps/receipt/bundle.sh | 8 ++++---- .../receipt/verify-receipt.src.mjs | 6 +++--- 10 files changed, 29 insertions(+), 27 deletions(-) rename site/{light => lc}/app.js (97%) rename site/{light => lc}/core.js (95%) rename site/{light => lc}/test.html (93%) rename site/{receipt => lc}/verify-receipt.js (99%) diff --git a/site/light/app.js b/site/lc/app.js similarity index 97% rename from site/light/app.js rename to site/lc/app.js index ccf97d5a9..293e47095 100644 --- a/site/light/app.js +++ b/site/lc/app.js @@ -86,7 +86,7 @@ export async function runReceipt(tx) { : `
Not verified · Devnet 3, no value

${esc(res.reason)}

`; out.innerHTML = top + negativeHtml('a copy of this receipt with one nibble of the raw transaction altered', neg) + stepsHtml(res) + (res.verified ? `

-

The file carries the raw transaction, the including block's header and merkle path, every header up to the certified checkpoint, the certificate and the voter table. Anyone re-verifies it offline with the one-file verifier: node verify-receipt.js receipt.json (verify-receipt.js, plain JavaScript, no npm, no network). A tampered file fails there the same way the copy above failed here.

` : ''); +

The file carries the raw transaction, the including block's header and merkle path, every header up to the certified checkpoint, the certificate and the voter table. Anyone re-verifies it offline with the one-file verifier: node verify-receipt.js receipt.json (verify-receipt.js, plain JavaScript, no npm, no network). A tampered file fails there the same way the copy above failed here.

` : ''); const dl = $('[data-download]'); if (dl) dl.addEventListener('click', () => { const blob = new Blob([JSON.stringify(receipt, null, 1)], { type: 'application/json' }); diff --git a/site/light/core.js b/site/lc/core.js similarity index 95% rename from site/light/core.js rename to site/lc/core.js index 089b70ecd..c4e7c3467 100644 --- a/site/light/core.js +++ b/site/lc/core.js @@ -275,8 +275,8 @@ export function verifyBalance(cp, proof, deps) { if (proof.chain_id !== cp.chain_id) throw new Error(`chain ${proof.chain_id} is not ${cp.chain_id}`); return `${cp.chain_id}, checkpoint ${cp.index}`; }); - const n = step('header chain from the carrier block up to the checkpoint (every hash recomputed, every parent link checked)', () => - verifyHeaderPath(proof.headers, blake2b, proof.headers[0].hash, cp.hash)); + step('header chain from the carrier block up to the checkpoint (every hash recomputed, every parent link checked)', () => + `${verifyHeaderPath(proof.headers, blake2b, proof.headers[0].hash, cp.hash)} headers, ${strip(proof.headers[0].hash).slice(0, 12)} up to ${strip(cp.hash).slice(0, 12)}`); const carrier = proof.headers[0]; const record = step('the coinbase transaction is in the carrier block (hash recomputed, merkle path to hash_merkle_root)', () => { const cb = coinbaseTxHash(proof.carrier.coinbase, blake2b, proof.carrier.amount_wire_len || 8); @@ -313,7 +313,7 @@ export function verifyBalance(cp, proof, deps) { return `${proof.account.accountProof.length} nodes, ${a.exists ? 'account present' : 'account absent (exclusion proof)'}`; }); const balance = acct.exists ? acct.balance : 0n; - return done({ verified: true, balance, balance_wei: balance.toString(), nonce: acct.nonce.toString(), block: Number(st.number), post_root: st.post_root, checkpoint: Number(cp.index), headers: n, aggregator: agg, certificate: cert }); + return done({ verified: true, balance, balance_wei: balance.toString(), nonce: acct.nonce.toString(), block: Number(st.number), post_root: st.post_root, checkpoint: Number(cp.index), headers: proof.headers.length, aggregator: agg, certificate: cert }); } catch (e) { return done({ verified: false, reason: String(e.message || e) }); } @@ -336,14 +336,16 @@ export function verifyReceipt(receipt, deps) { if (strip(cp.hash) !== strip(receipt.checkpoint.hash) || receipt.chain_id !== cp.chain_id) throw new Error('the receipt names another checkpoint or chain than its certificate'); return `checkpoint ${r.index} on ${cp.chain_id}, ${r.signers} of ${r.voters} voters, ${(r.weight_fraction_total * 100).toFixed(1)}% of total weight`; }); - const tx = step('the transaction hash is keccak256 of the raw signed transaction', () => { + let tx = null; + step('the transaction hash is keccak256 of the raw signed transaction', () => { const raw = hexToBytes(strip(receipt.raw_tx_hex)); const h = bytesToHex(keccak(raw)); if (h !== strip(receipt.tx_hash)) throw new Error(`the raw bytes hash to ${h.slice(0, 12)}, not ${strip(receipt.tx_hash).slice(0, 12)}`); - return parseTx(raw); + tx = parseTx(raw); + return `${raw.length} bytes, type ${tx.type}, to ${tx.to || 'contract creation'}, value ${tx.value} wei, nonce ${tx.nonce}`; }); - const n = step('header chain from the including block up to the checkpoint (every hash recomputed, every parent link checked)', () => - verifyHeaderPath(receipt.headers, blake2b, receipt.including_block.header.hash, cp.hash)); + step('header chain from the including block up to the checkpoint (every hash recomputed, every parent link checked)', () => + `${verifyHeaderPath(receipt.headers, blake2b, receipt.including_block.header.hash, cp.hash)} headers, ${strip(receipt.headers[0].hash).slice(0, 12)} up to ${strip(cp.hash).slice(0, 12)}`); step('the transaction is a leaf of the including block\'s hash_merkle_root', () => { const ib = receipt.including_block; const sibs = ib.merkle_siblings.map(s => hexToBytes(strip(s))); @@ -351,7 +353,7 @@ export function verifyReceipt(receipt, deps) { if (bytesToHex(root) !== strip(receipt.headers[0].hash_merkle_root)) throw new Error('the merkle path does not reach the including block\'s hash_merkle_root'); return `leaf ${ib.leaf_index} of ${ib.leaf_count}`; }); - return done({ verified: true, tx, headers: n, checkpoint: Number(cp.index), certificate: cert, block: strip(receipt.headers[0].hash), block_daa: receipt.headers[0].daa_score, block_time: receipt.headers[0].timestamp }); + return done({ verified: true, tx, headers: receipt.headers.length, checkpoint: Number(cp.index), certificate: cert, block: strip(receipt.headers[0].hash), block_daa: receipt.headers[0].daa_score, block_time: receipt.headers[0].timestamp }); } catch (e) { return done({ verified: false, reason: String(e.message || e) }); } diff --git a/site/light/test.html b/site/lc/test.html similarity index 93% rename from site/light/test.html rename to site/lc/test.html index 9b59198c5..b508608cc 100644 --- a/site/light/test.html +++ b/site/lc/test.html @@ -9,7 +9,7 @@

Igneum reference apps: the negative cases, in this tab (Devnet 3, no value)

-

Each row runs site/light/core.js on live Devnet 3 data from . A tampered case must read refused; the genuine case must read verified. The same cases run under Node in tools/reference-apps/light-service/verify.test.mjs. Parameters: ?api= (the read service), ?address= (the balance to prove; default: the miner of the latest block), ?tx= (a transaction; default: one in a recent block).

+

Each row runs site/lc/core.js on live Devnet 3 data from . A tampered case must read refused; the genuine case must read verified. The same cases run under Node in tools/reference-apps/light-service/verify.test.mjs. Parameters: ?api= (the read service), ?address= (the balance to prove; default: the miner of the latest block), ?tx= (a transaction; default: one in a recent block).

Receipt

caseresultmsreason

Balance

diff --git a/site/receipt/verify-receipt.js b/site/lc/verify-receipt.js similarity index 99% rename from site/receipt/verify-receipt.js rename to site/lc/verify-receipt.js index 752ea7456..e2aec4e52 100644 --- a/site/receipt/verify-receipt.js +++ b/site/lc/verify-receipt.js @@ -1,5 +1,5 @@ #!/usr/bin/env node -// Igneum payment receipt verifier, one file, offline. Source: tools/reference-apps/receipt/verify-receipt.src.mjs and site/light/core.js +// Igneum payment receipt verifier, one file, offline. Source: tools/reference-apps/receipt/verify-receipt.src.mjs and site/lc/core.js // (the same checks the browser page runs), bundled with @noble/hashes 2.4.0 and @noble/curves 2.4.0 (MIT). Usage: node verify-receipt.js receipt.json [--tamper] // tools/reference-apps/receipt/verify-receipt.src.mjs @@ -5141,7 +5141,7 @@ function verifyCheckpoint(data, deps2) { } } -// site/light/core.js +// site/lc/core.js var SEGMENT_RECORD_LEN = 2 + 8 + 8 + 32 + 48 + 20 + 340 + 32 + 96; var ZERO32 = new Uint8Array(32); var te2 = new TextEncoder(); diff --git a/site/light.html b/site/light.html index cf36d779a..d362fd177 100644 --- a/site/light.html +++ b/site/light.html @@ -228,7 +228,7 @@

Why this only works on a proven chain. The balance rests on a state root that an aggregator signed inside a block, after proving the segment's execution, and that every node checks against its own execution before paying the record. On a chain without proofs a light client has only a node's word for a balance.

-

Source: site/light/core.js (the checks), site/light/app.js (this page), tools/reference-apps/light-service/serve.mjs (the read service), fork branch light-apps-node (eth_getProof on the node). Test with the negative cases: /light/test in the browser, tools/reference-apps/light-service/verify.test.mjs under Node.

+

Source: site/lc/core.js (the checks), site/lc/app.js (this page), tools/reference-apps/light-service/serve.mjs (the read service), fork branch light-apps-node (eth_getProof on the node). Test with the negative cases: /lc/test in the browser, tools/reference-apps/light-service/verify.test.mjs under Node.

@@ -252,7 +252,7 @@

What is trusted and said so on the result: the aggregator's statement being the true execution result (nodes check it natively before paying; the SP1 proof behind it is verified by nodes, not in this tab yet), and the voter table with weights, which comes from the node (spec 10.1). The read service names the node it reads.

Devnet 3, no value. The chain may reset. Pages like this one are demonstrations of the verification path, not a product.

- +
diff --git a/site/receipt.html b/site/receipt.html index ca44b083a..3047e95e3 100644 --- a/site/receipt.html +++ b/site/receipt.html @@ -228,7 +228,7 @@

Why this only works on a proven chain. A merchant's receipt is only worth something if the payment cannot be undone and the proof of that fits in a file: here the certificate is a weighted BLS signature by the miners over a checkpoint, and the block holding the payment hashes into that checkpoint's past. On a chain with probabilistic finality a receipt is a guess that ages well; here it is a fact that a file carries.

-

Source: site/light/core.js (the checks), site/light/app.js (this page), tools/reference-apps/receipt/verify-receipt.src.mjs (the one-file verifier, bundled to /receipt/verify-receipt.js). Test with the negative cases: /light/test in the browser, tools/reference-apps/light-service/verify.test.mjs under Node.

+

Source: site/lc/core.js (the checks), site/lc/app.js (this page), tools/reference-apps/receipt/verify-receipt.src.mjs (the one-file verifier, bundled to /lc/verify-receipt.js). Test with the negative cases: /lc/test in the browser, tools/reference-apps/light-service/verify.test.mjs under Node.

@@ -242,7 +242,7 @@

Re-verify offline

-

The verifier is one file of plain JavaScript with the hashing and curve code inside it: verify-receipt.js. It runs under Node 18 or later (node verify-receipt.js receipt.json) and prints each check, then VERIFIED or REFUSED with the reason. It fetches nothing. Flip one byte of the file and it is refused: node verify-receipt.js receipt.json --tamper runs that case first so you see the refusal before the verdict.

+

The verifier is one file of plain JavaScript with the hashing and curve code inside it: verify-receipt.js. It runs under Node 18 or later (node verify-receipt.js receipt.json) and prints each check, then VERIFIED or REFUSED with the reason. It fetches nothing. Flip one byte of the file and it is refused: node verify-receipt.js receipt.json --tamper runs that case first so you see the refusal before the verdict.

What the receipt proves

  1. The transaction hash is keccak256 of the raw signed transaction in the file, so the recipient, the amount and the data are the signed ones.
  2. @@ -253,7 +253,7 @@

    Not proven by the file: the execution result (status, gas) is carried as the node reported it and labelled so; the voter table with weights comes from the node (spec 10.1). Both are named on the result.

    Devnet 3, no value. The chain may reset. A demonstration of the verification path, not a product.

    - +
    diff --git a/tools/reference-apps/light-service/serve.mjs b/tools/reference-apps/light-service/serve.mjs index 6ef9c865c..3966334ca 100644 --- a/tools/reference-apps/light-service/serve.mjs +++ b/tools/reference-apps/light-service/serve.mjs @@ -1,6 +1,6 @@ // Igneum reference apps, the read service (8 October 2026). Runs on build-1 at 127.0.0.1:26890 behind // https://rpc.devnet.igneum.network/light/ (the build-server lane's Caddy route, prefix stripped). GET only, CORS open, -// answers JSON that a browser verifies by itself with site/light/core.js: nothing here is a verdict, everything is data +// answers JSON that a browser verifies by itself with site/lc/core.js: nothing here is a verdict, everything is data // the page recomputes. Reads a Devnet 3 node that executes (the exec JSON-RPC for records, receipts and eth_getProof; // the wRPC JSON websocket for block bodies and headers). // @@ -18,7 +18,7 @@ import { createServer } from 'node:http'; import { blake2b } from '@noble/hashes/blake2.js'; import { keccak_256 } from '@noble/hashes/sha3.js'; -import { coinbaseTxHash, merkleRoot, merklePath, hexToBytes, bytesToHex, segmentRecordsOf } from '../../../site/light/core.js'; +import { coinbaseTxHash, merkleRoot, merklePath, hexToBytes, bytesToHex, segmentRecordsOf } from '../../../site/lc/core.js'; import { readCheckpoint, neon } from '../../../site/api/checkpoint.mjs'; const PORT = Number(process.env.LIGHT_PORT || 26890); diff --git a/tools/reference-apps/light-service/verify.test.mjs b/tools/reference-apps/light-service/verify.test.mjs index 2f7476329..2f0565334 100644 --- a/tools/reference-apps/light-service/verify.test.mjs +++ b/tools/reference-apps/light-service/verify.test.mjs @@ -7,7 +7,7 @@ import { readFileSync } from 'node:fs'; import { blake2b } from '@noble/hashes/blake2.js'; import { keccak_256 } from '@noble/hashes/sha3.js'; import { bls12_381 } from '@noble/curves/bls12-381.js'; -import { verifyReceipt, verifyBalance } from '../../../site/light/core.js'; +import { verifyReceipt, verifyBalance } from '../../../site/lc/core.js'; const deps = { blake2b, bls: bls12_381, keccak: keccak_256 }; const here = new URL('.', import.meta.url).pathname; diff --git a/tools/reference-apps/receipt/bundle.sh b/tools/reference-apps/receipt/bundle.sh index 4ee06d370..c0b937ce3 100644 --- a/tools/reference-apps/receipt/bundle.sh +++ b/tools/reference-apps/receipt/bundle.sh @@ -1,17 +1,17 @@ #!/usr/bin/env bash -# Bundles the offline receipt verifier into one plain-JavaScript file (site/receipt/verify-receipt.js) with esbuild: the +# Bundles the offline receipt verifier into one plain-JavaScript file (site/lc/verify-receipt.js) with esbuild: the # noble libraries inlined, Node built-ins external, no npm at run time. Runs on the build box (nothing heavy on the Mac): # tools/reference-apps/receipt/bundle.sh from the worktree root; needs node and npx (esbuild is fetched by npx) # The bundle is committed beside the pages: the site deploys from site/ alone and installs nothing. set -euo pipefail cd "$(git rev-parse --show-toplevel)" SRC=tools/reference-apps/receipt/verify-receipt.src.mjs -OUT=site/receipt/verify-receipt.js -mkdir -p site/receipt +OUT=site/lc/verify-receipt.js +mkdir -p site/lc ( cd tools/reference-apps/light-service && [ -d node_modules/@noble/curves ] || npm install --no-audit --no-fund >/dev/null ) NODE_PATH=tools/reference-apps/light-service/node_modules npx --yes esbuild@0.24.2 "$SRC" --bundle --platform=node --format=cjs --target=node18 --legal-comments=inline \ --banner:js="#!/usr/bin/env node -// Igneum payment receipt verifier, one file, offline. Source: tools/reference-apps/receipt/verify-receipt.src.mjs and site/light/core.js +// Igneum payment receipt verifier, one file, offline. Source: tools/reference-apps/receipt/verify-receipt.src.mjs and site/lc/core.js // (the same checks the browser page runs), bundled with @noble/hashes 2.4.0 and @noble/curves 2.4.0 (MIT). Usage: node verify-receipt.js receipt.json [--tamper]" \ --outfile="$OUT" chmod +x "$OUT" diff --git a/tools/reference-apps/receipt/verify-receipt.src.mjs b/tools/reference-apps/receipt/verify-receipt.src.mjs index 1025208f8..8fa27569d 100644 --- a/tools/reference-apps/receipt/verify-receipt.src.mjs +++ b/tools/reference-apps/receipt/verify-receipt.src.mjs @@ -1,12 +1,12 @@ // Igneum payment receipt, the offline verifier (8 October 2026). This is the SOURCE; the one-file build at -// site/receipt/verify-receipt.js bundles it with @noble/hashes (BLAKE2b, keccak) and @noble/curves (BLS12-381) so the +// site/lc/verify-receipt.js bundles it with @noble/hashes (BLAKE2b, keccak) and @noble/curves (BLS12-381) so the // shipped file needs no npm and no network: `node verify-receipt.js receipt.json [--tamper]`. Build: bundle.sh (esbuild -// on the build box). The checks are site/light/core.js, the same file the browser page runs. +// on the build box). The checks are site/lc/core.js, the same file the browser page runs. import { readFileSync } from 'node:fs'; import { blake2b } from '@noble/hashes/blake2.js'; import { keccak_256 } from '@noble/hashes/sha3.js'; import { bls12_381 } from '@noble/curves/bls12-381.js'; -import { verifyReceipt, formatIgn } from '../../../site/light/core.js'; +import { verifyReceipt, formatIgn } from '../../../site/lc/core.js'; const args = process.argv.slice(2); const file = args.find(a => !a.startsWith('--')); From 23f64215bf42da68576f6bd366f30123a5ad9096 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:31:00 +0000 Subject: [PATCH 03/11] Reference apps: a receipt proves against the earliest certified checkpoint above its block (the smallest proof, 10 headers and 143 KB instead of 289 headers and 2 MB), the certificate used travels in the receipt Co-Authored-By: Claude Fable 5.1 --- site/api/checkpoint.mjs | 17 +++++++++++++++++ site/lc/app.js | 3 ++- site/lc/test.html | 2 +- tools/reference-apps/light-service/serve.mjs | 15 ++++++++++----- 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/site/api/checkpoint.mjs b/site/api/checkpoint.mjs index 8d5509075..5b645bb8e 100644 --- a/site/api/checkpoint.mjs +++ b/site/api/checkpoint.mjs @@ -73,6 +73,23 @@ function shape(row, source) { }; } +/** The earliest certified Devnet 3 checkpoint whose chain block number is at least `number` (the reference apps' receipt: + * the smallest proof that a block is final), from the dn3_ rows; null when no certificate reaches that block yet. + * `chainNumberOf(hash)` resolves a checkpoint hash to its chain block number (the exec RPC); rows are tried newest first + * until one falls below `number`, so the cost is a few lookups. */ +export async function earliestCheckpointAbove(sql, number, chainNumberOf, table = 'dn3_live_certificates') { + const rows = await sql(`SELECT index, hash FROM ${table} ORDER BY index DESC LIMIT 400`).catch(() => []); + let pick = null; + for (const r of rows) { + const n = await chainNumberOf(r.hash).catch(() => null); + if (n === null) continue; + if (n >= number) pick = r; else break; + } + if (!pick) return null; + const full = await sql(`SELECT * FROM ${table} WHERE index = $1 LIMIT 1`, [Number(pick.index)]); + return full[0] ? shape(full[0], 'dn3') : null; +} + /** The latest certified checkpoint of `want` ('live', 'test' or 'dn3') through `sql`, shaped for the verifier, or null. */ export async function readCheckpoint(sql, want = 'live') { let row = null, source = null; diff --git a/site/lc/app.js b/site/lc/app.js index 293e47095..419028950 100644 --- a/site/lc/app.js +++ b/site/lc/app.js @@ -67,7 +67,8 @@ export async function runReceipt(tx) { const cp = await getJson(`${API}/checkpoint`); setStatus(`checkpoint ${cp.index} fetched; fetching the inclusion proof…`, 'busy'); const r = await getJson(`${API}/receipt?tx=${tx}&checkpoint=${cp.hash}&index=${cp.index}`); - const receipt = { format: 'igneum-receipt-v1', issued: new Date().toISOString(), ...r, checkpoint: { ...r.checkpoint, certificate: cp } }; + // the service may answer with an earlier certificate (the first checkpoint above the block: the smallest proof); it is verified like any other + const receipt = { format: 'igneum-receipt-v1', issued: new Date().toISOString(), ...r, checkpoint: { ...r.checkpoint, certificate: r.checkpoint.certificate || cp } }; delete receipt.ok; delete receipt.now; setStatus('verifying in this tab…', 'busy'); await new Promise(resolve => setTimeout(resolve, 20)); diff --git a/site/lc/test.html b/site/lc/test.html index b508608cc..ac23464e0 100644 --- a/site/lc/test.html +++ b/site/lc/test.html @@ -42,7 +42,7 @@ try { let tx = q.get('tx'); if (!tx) { const cb = await rpc('eth_getBlockByHash', ['0x' + cp.hash, false]); const n = parseInt(cb.number, 16); for (let k = n - 1; k > n - 200 && !tx; k--) { const b = await rpc('eth_getBlockByNumber', ['0x' + k.toString(16), false]); if (b && b.transactions.length) tx = b.transactions[0]; } } const rr = await get(`${API}/receipt?tx=${tx}&checkpoint=${cp.hash}&index=${cp.index}`); - const receipt = { format: 'igneum-receipt-v1', ...rr, checkpoint: { ...rr.checkpoint, certificate: cp } }; + const receipt = { format: 'igneum-receipt-v1', ...rr, checkpoint: { ...rr.checkpoint, certificate: rr.checkpoint.certificate || cp } }; const R = [ ['raw transaction altered by one nibble', d => { d.raw_tx_hex = flipHex(d.raw_tx_hex, 40); }], ['transaction hash altered', d => { d.tx_hash = flipHex(d.tx_hash, 10); }], diff --git a/tools/reference-apps/light-service/serve.mjs b/tools/reference-apps/light-service/serve.mjs index 3966334ca..c66128517 100644 --- a/tools/reference-apps/light-service/serve.mjs +++ b/tools/reference-apps/light-service/serve.mjs @@ -19,7 +19,7 @@ import { createServer } from 'node:http'; import { blake2b } from '@noble/hashes/blake2.js'; import { keccak_256 } from '@noble/hashes/sha3.js'; import { coinbaseTxHash, merkleRoot, merklePath, hexToBytes, bytesToHex, segmentRecordsOf } from '../../../site/lc/core.js'; -import { readCheckpoint, neon } from '../../../site/api/checkpoint.mjs'; +import { readCheckpoint, earliestCheckpointAbove, neon } from '../../../site/api/checkpoint.mjs'; const PORT = Number(process.env.LIGHT_PORT || 26890); const EXEC = process.env.EXEC_RPC || 'http://127.0.0.1:26881'; @@ -207,13 +207,18 @@ void merklePath; async function receipt(q) { const tx = q.get('tx') || ''; if (!/^0x[0-9a-fA-F]{64}$/.test(tx)) throw httpError(400, 'tx: 0x and 64 hex digits'); - const cpHash = q.get('checkpoint'), cpIndex = Number(q.get('index')); - if (!cpHash || !(cpIndex >= 0)) throw httpError(400, 'checkpoint and index are required (from /api/checkpoint?source=dn3)'); + let cpHash = q.get('checkpoint'), cpIndex = Number(q.get('index')); + if (!cpHash || !(cpIndex >= 0)) throw httpError(400, 'checkpoint and index are required (from /checkpoint)'); const t = await exec('eth_getTransactionByHash', [tx]); if (!t) throw httpError(404, 'the node has not executed a transaction with that hash (unknown, or not yet in a block)'); const rcpt = await exec('eth_getTransactionReceipt', [tx]); - const cpNumber = await chainNumberOf(cpHash); const chainNumber = Number(t.blockNumber); + // the smallest proof: the earliest certified checkpoint at or above the block (from the Devnet 3 observer's rows), else + // the checkpoint the caller named; the certificate used is returned so the page verifies against that one + let certificate = null; + if (process.env.DATABASE_URL) certificate = await earliestCheckpointAbove(neon(), chainNumber, chainNumberOf).catch(() => null); + if (certificate) { cpHash = certificate.hash; cpIndex = Number(certificate.index); } + const cpNumber = await chainNumberOf(cpHash); if (chainNumber > cpNumber) throw httpError(409, `not final yet: executed at chain block ${chainNumber}, the latest certified checkpoint is chain block ${cpNumber}; try again in about ${chainNumber - cpNumber + 30} s`); const including = strip(t.igneum.includingBlock); const b = await body(including); @@ -226,7 +231,7 @@ async function receipt(q) { const headers = await headerPath(including, chainNumber, cpNumber, cpHash); return { ok: true, now: new Date().toISOString(), chain_id: 'igneum-devnet-3', tx_hash: strip(tx), raw_tx_hex: strip(raws[idx]), - checkpoint: { hash: strip(cpHash), index: cpIndex, chain_block: cpNumber }, + checkpoint: { hash: strip(cpHash), index: cpIndex, chain_block: cpNumber, certificate: certificate || undefined }, including_block: { header: headers[0], leaf_index: idx + 1, leaf_count: leaves.length, merkle_siblings: siblings(leaves, idx + 1) }, headers, execution: rcpt ? { chain_block: chainNumber, chain_block_hash: strip(rcpt.blockHash), status: rcpt.status, gas_used: rcpt.gasUsed, from: rcpt.from, to: rcpt.to, contract_address: rcpt.contractAddress, logs: (rcpt.logs || []).length, effective_gas_price: rcpt.effectiveGasPrice, as_reported_by: 'the node (not proven here)' } : null, From 64bc14e627518057f26ebe6e20eb9c79e5638e16 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:35:19 +0000 Subject: [PATCH 04/11] Reference apps: the browser test page counts a fetch error as a failure Co-Authored-By: Claude Fable 5.1 --- site/lc/test.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/lc/test.html b/site/lc/test.html index ac23464e0..88a1cc1f1 100644 --- a/site/lc/test.html +++ b/site/lc/test.html @@ -78,7 +78,7 @@ try { row('b', `genuine balance of ${address.slice(0, 12)} at chain block ${proof.segment.last} (${proof.headers.length} headers, checkpoint ${cp.index})`, g, true); } } catch (e) { document.getElementById('done').textContent = 'ERROR ' + (e.message || e); } -const bad = out.filter(x => !x.behaved).length; +const bad = out.filter(x => !x.behaved).length + (document.getElementById('done').textContent.startsWith('ERROR') ? 1 : 0); document.getElementById('done').textContent += (bad ? `\nFAILED ${bad} case(s)` : `\nRESULT every case behaved (${out.length} cases)`) + '\n' + JSON.stringify(out.map(x => ({ table: x.table, name: x.name, verified: x.verified, ms: x.ms, reason: x.reason || null }))); From ce33c57aa3324947f147775e934a38bb62c2daad Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:39:19 +0000 Subject: [PATCH 05/11] Reference apps: the key-value rows wrap at phone width (the overlap check clipped three rows on /oracle at 390 px); a statement's EVM chain id is checked against Devnet 3's two ids (4463 below the class v5 floor, 4464 above) Co-Authored-By: Claude Fable 5.1 --- site/lc/core.js | 7 +++++-- site/light.html | 2 ++ site/oracle.html | 2 ++ site/receipt.html | 2 ++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/site/lc/core.js b/site/lc/core.js index c4e7c3467..59c27c2a5 100644 --- a/site/lc/core.js +++ b/site/lc/core.js @@ -301,8 +301,11 @@ export function verifyBalance(cp, proof, deps) { step('the record\'s statement names the chain and the block whose state it commits', () => { if (Number(st.number) !== Number(record.last)) throw new Error('the statement is not for the segment\'s last block'); if (bytesToHex(record.block) !== st.block_hash) throw new Error('the record\'s block hash is not the statement\'s'); - if (Number(st.chain_id) !== Number(proof.account.evm_chain_id)) throw new Error(`statement chain id ${st.chain_id} is not the proof's ${proof.account.evm_chain_id}`); - return `chain id ${st.chain_id}, chain block ${st.number}, post_root ${st.post_root.slice(0, 12)}, ${st.executed} executed, chain_len ${st.chain_len}`; + // the EVM chain id in the statement is the one in force at that block (Devnet 3: 4463 below its class v5 floor, 4464 above); + // the record's binding to the chain is the signed message, which names the network by its string ("igneum-devnet-3") + const ids = cp.chain_id === 'igneum-devnet-3' ? [4463, 4464] : [Number(proof.account.evm_chain_id)]; + if (!ids.includes(Number(st.chain_id))) throw new Error(`statement chain id ${st.chain_id} is not ${cp.chain_id}'s (${ids.join(' or ')})`); + return `EVM chain id ${st.chain_id}, chain block ${st.number}, post_root ${st.post_root.slice(0, 12)}, ${st.executed} executed, chain_len ${st.chain_len}`; }); const acct = step('account proof under post_root (keccak-keyed Merkle Patricia trie, every node hashed)', () => { if (Number(proof.account.blockNumber) !== Number(st.number)) throw new Error('the account proof is for another block than the statement'); diff --git a/site/light.html b/site/light.html index d362fd177..22affcca1 100644 --- a/site/light.html +++ b/site/light.html @@ -63,6 +63,8 @@ .headline.bad{border-color:var(--molten)} .headline .big{font:900 clamp(32px,6vw,56px)/1.05 var(--f-display);color:var(--bone);margin:10px 0 8px;overflow-wrap:anywhere}.headline .big span{font-size:.45em;color:var(--ash);font-weight:700} .headline .kv{margin-top:var(--s-3)}.headline .kv small{color:var(--ash);display:block}.headline .mono{font-family:var(--f-mono);font-size:13px;overflow-wrap:anywhere} +.kv>div{min-width:0;overflow-wrap:anywhere}.card .kv .mono{font-family:var(--f-mono);font-size:13px} +@media (max-width:640px){.kv{grid-template-columns:1fr}.kv>div{padding:6px 0}.kv .k{padding-top:10px;border-top:1px solid var(--line)}.kv>div:not(.k){border-top:0}} .neg{border-left:2px solid var(--ember);background:var(--row);border-radius:0 var(--r-row) var(--r-row) 0;padding:12px var(--s-4);margin:0 0 var(--s-3);font-size:14px;color:var(--ink-2)} .neg b{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ember-text);margin-right:8px}.neg.wrong{border-color:var(--molten)}.neg.wrong b{color:var(--molten-text)} .neg small{display:block;color:var(--ash);font-family:var(--f-mono);font-size:12px;margin-top:4px;overflow-wrap:anywhere} diff --git a/site/oracle.html b/site/oracle.html index 58bffa1f1..94912176f 100644 --- a/site/oracle.html +++ b/site/oracle.html @@ -63,6 +63,8 @@ .headline.bad{border-color:var(--molten)} .headline .big{font:900 clamp(32px,6vw,56px)/1.05 var(--f-display);color:var(--bone);margin:10px 0 8px;overflow-wrap:anywhere}.headline .big span{font-size:.45em;color:var(--ash);font-weight:700} .headline .kv{margin-top:var(--s-3)}.headline .kv small{color:var(--ash);display:block}.headline .mono{font-family:var(--f-mono);font-size:13px;overflow-wrap:anywhere} +.kv>div{min-width:0;overflow-wrap:anywhere}.card .kv .mono{font-family:var(--f-mono);font-size:13px} +@media (max-width:640px){.kv{grid-template-columns:1fr}.kv>div{padding:6px 0}.kv .k{padding-top:10px;border-top:1px solid var(--line)}.kv>div:not(.k){border-top:0}} .neg{border-left:2px solid var(--ember);background:var(--row);border-radius:0 var(--r-row) var(--r-row) 0;padding:12px var(--s-4);margin:0 0 var(--s-3);font-size:14px;color:var(--ink-2)} .neg b{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ember-text);margin-right:8px}.neg.wrong{border-color:var(--molten)}.neg.wrong b{color:var(--molten-text)} .neg small{display:block;color:var(--ash);font-family:var(--f-mono);font-size:12px;margin-top:4px;overflow-wrap:anywhere} diff --git a/site/receipt.html b/site/receipt.html index 3047e95e3..5cf74d890 100644 --- a/site/receipt.html +++ b/site/receipt.html @@ -63,6 +63,8 @@ .headline.bad{border-color:var(--molten)} .headline .big{font:900 clamp(32px,6vw,56px)/1.05 var(--f-display);color:var(--bone);margin:10px 0 8px;overflow-wrap:anywhere}.headline .big span{font-size:.45em;color:var(--ash);font-weight:700} .headline .kv{margin-top:var(--s-3)}.headline .kv small{color:var(--ash);display:block}.headline .mono{font-family:var(--f-mono);font-size:13px;overflow-wrap:anywhere} +.kv>div{min-width:0;overflow-wrap:anywhere}.card .kv .mono{font-family:var(--f-mono);font-size:13px} +@media (max-width:640px){.kv{grid-template-columns:1fr}.kv>div{padding:6px 0}.kv .k{padding-top:10px;border-top:1px solid var(--line)}.kv>div:not(.k){border-top:0}} .neg{border-left:2px solid var(--ember);background:var(--row);border-radius:0 var(--r-row) var(--r-row) 0;padding:12px var(--s-4);margin:0 0 var(--s-3);font-size:14px;color:var(--ink-2)} .neg b{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ember-text);margin-right:8px}.neg.wrong{border-color:var(--molten)}.neg.wrong b{color:var(--molten-text)} .neg small{display:block;color:var(--ash);font-family:var(--f-mono);font-size:12px;margin-top:4px;overflow-wrap:anywhere} From 107b79cea7b3d4cc4872c272e27993a8a7ea7622 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:41:57 +0000 Subject: [PATCH 06/11] Reference apps: the Sepolia state oracle (tools/reference-apps/oracle: IgneumStateOracle with keyed BLAKE2b through the EIP-152 precompile, the body merkle path, the IGNS record parse and an MPT verifier; StubCertificateVerifier as the stand-in; deploy, demo and the negative cases through eth_call, 34 passed on Sepolia), its addresses on /oracle Co-Authored-By: Claude Fable 5.1 --- site/oracle.html | 6 +- tools/reference-apps/oracle/.gitignore | 1 + tools/reference-apps/oracle/README.md | 52 ++ .../oracle/artifacts/IgneumStateOracle.json | 620 ++++++++++++++++++ .../artifacts/StubCertificateVerifier.json | 212 ++++++ tools/reference-apps/oracle/compile.mjs | 35 + .../oracle/contracts/IgneumStateOracle.sol | 292 +++++++++ tools/reference-apps/oracle/demo.mjs | 40 ++ tools/reference-apps/oracle/deploy.mjs | 40 ++ tools/reference-apps/oracle/deployment.json | 86 +++ tools/reference-apps/oracle/lib.mjs | 345 ++++++++++ tools/reference-apps/oracle/package-lock.json | 381 +++++++++++ tools/reference-apps/oracle/package.json | 9 + tools/reference-apps/oracle/test.mjs | 124 ++++ 14 files changed, 2240 insertions(+), 3 deletions(-) create mode 100644 tools/reference-apps/oracle/.gitignore create mode 100644 tools/reference-apps/oracle/README.md create mode 100644 tools/reference-apps/oracle/artifacts/IgneumStateOracle.json create mode 100644 tools/reference-apps/oracle/artifacts/StubCertificateVerifier.json create mode 100644 tools/reference-apps/oracle/compile.mjs create mode 100644 tools/reference-apps/oracle/contracts/IgneumStateOracle.sol create mode 100644 tools/reference-apps/oracle/demo.mjs create mode 100644 tools/reference-apps/oracle/deploy.mjs create mode 100644 tools/reference-apps/oracle/deployment.json create mode 100644 tools/reference-apps/oracle/lib.mjs create mode 100644 tools/reference-apps/oracle/package-lock.json create mode 100644 tools/reference-apps/oracle/package.json create mode 100644 tools/reference-apps/oracle/test.mjs diff --git a/site/oracle.html b/site/oracle.html index 94912176f..263d9ca55 100644 --- a/site/oracle.html +++ b/site/oracle.html @@ -236,8 +236,8 @@

    On Sepolia

    -
    Oracle
    deploying today; the address lands here with its first stored checkpoint
    -
    Verifier
    the shared IgneumCertificateVerifier (DEX lane), or the stand-in until it lands
    +
    Oracle
    0xefe9879de29c401eeff195d5bf71c86b9caaa1b2 IgneumStateOracle, deployed 8 October 2026 (tx 0xb8650f5b…d644, block 11869608)
    +
    Verifier
    0xa197ef31d5d5613125779179668e2482ac69a6f6 StubCertificateVerifier, the stand-in: it records any well-formed certificate and does not check the BLS signature; the shared IgneumCertificateVerifier replaces it through setVerifier the day it lands
    Chain
    Sepolia, chain id 11155111; Devnet 3 (igneum-devnet-3), no value

    How to read a balance from another contract: IIgneumStateOracle(oracle).provenBalance(number, account, accountProof), where number is a Devnet 3 chain block whose state root the oracle holds and accountProof is the eth_getProof account proof at that block. A storage slot: provenStorage(number, account, slot, accountProof, storageProof). Both revert on any mismatch.

    @@ -250,7 +250,7 @@
  3. The coinbase transaction under the carrier's hash_merkle_root, and the segment record parsed out of its extra data: the record's post_root for its block is stored under the certificate's index.
  4. Every read: a keccak-keyed Merkle Patricia proof against the stored root, verified on chain.
-

Said plainly, on the contract too (trust()): the aggregator's BLS signature on the record is not checked on chain in this slice, and the voter table the verifier holds is installed by its deployer. The negative cases in test.mjs are a flipped proof node, a wrong block number, a header removed from the path, a merkle sibling altered, a record with its post_root altered, a header with its nonce altered: each reverts.

+

Said plainly, on the contract too (trust()): the aggregator's BLS signature on the record is not checked on chain in this slice, and while the stand-in verifier is installed no certificate signature is checked on chain either; the voter table the shared verifier holds is installed by its deployer. Gas on Sepolia, measured 8 October 2026: a 62-header path 13.3 million (about 215,000 per header, 15 precompile blocks each), a 10-header path about 2.2 million, the state-root store 177,000, a balance read 153,000. The negative cases in test.mjs are a flipped proof node, a wrong block number, a header removed from the path, a merkle sibling altered, a record with its post_root altered, a header with its nonce altered: each reverts.

Devnet 3, no value. Sepolia, no value. A demonstration of the verification path, not a product.

diff --git a/tools/reference-apps/oracle/.gitignore b/tools/reference-apps/oracle/.gitignore new file mode 100644 index 000000000..c2658d7d1 --- /dev/null +++ b/tools/reference-apps/oracle/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/tools/reference-apps/oracle/README.md b/tools/reference-apps/oracle/README.md new file mode 100644 index 000000000..8acd8eb60 --- /dev/null +++ b/tools/reference-apps/oracle/README.md @@ -0,0 +1,52 @@ +# Igneum Devnet 3 state oracle on Sepolia + +A contract on Ethereum Sepolia that stores proven Devnet 3 state roots and lets other contracts read a proven +Devnet 3 balance or storage slot. Certificates are read from the shared verifier (`IIgneumCertificateVerifier`); +a `StubCertificateVerifier` stands in until the real one lands (`setVerifier`, deployer only, swaps it). + +Addresses, transaction hashes, blocks and gas are in `deployment.json` (every write is appended under `writes`). + +## What the oracle checks on chain + +1. Every header in the path is hashed with keyed BLAKE2b-256 ("BlockHash") through the EIP-152 precompile and + parsed out of the same bytes. Each next header must list the previous hash among its level-0 parents. The last + hash must be the checkpoint the verifier holds for the given certificate index. +2. The carrier's coinbase transaction is hashed ("TransactionHash") and the merkle path ("MerkleBranchHash", a + missing right child is 32 zero bytes) must reach the carrier's hash_merkle_root, parsed from the header bytes. +3. The coinbase payload is walked from the transaction bytes (so it is bound to the hash); the nested sections + `IGNS || IGNP || IGNF` are taken from the end; the chosen 586-byte segment record gives the statement's + number, block hash and post_root (number must equal the record's `last`, block hash must equal the record's + block, chain id must be Devnet 3's 0x116f). The root is stored under the number with the certificate index. +4. `provenBalance`, `provenAccount` and `provenStorage` verify eth_getProof account and storage proofs against + the stored post_root with the contract's own RLP and keccak-keyed Merkle Patricia trie walk, and revert with a + reason on any mismatch. + +Not checked on chain in this slice (also stated by `trust()`): the aggregator's BLS signature over the segment +record and the ZK proof behind it. Also not checked: the segment record's version field (the layout is fixed +either way). + +## Files + +- `contracts/Blake2b.sol`: keyed BLAKE2b-256 over the precompile at 0x09. +- `contracts/Mpt.sol`: RLP reading, MPT proofs, account and storage decoding. +- `contracts/IIgneumCertificateVerifier.sol`, `contracts/StubCertificateVerifier.sol`, `contracts/IgneumStateOracle.sol`. +- `compile.mjs`: solc-js (via IR, optimizer 200, cancun) to `artifacts/*.json`. +- `deploy.mjs`: EIP-1559 deploy of the stub and the oracle, writes `deployment.json` (`--force`, `--oracle-only`). +- `demo.mjs`: submits the certificate and the state root for `fixtures/dn3-balance.json` (or the synthetic vector + when the fixture is absent) and prints the Sepolia-read balance beside the fixture's. +- `test.mjs`: the vectors and negatives through eth_call. Part A is the receipt fixture (real headers, a real merkle + path); part B is a seeded synthetic vector (segment record, coinbase, three-header path, account and storage + proofs); part C is the balance fixture when it exists. +- `lib.mjs`: the byte layouts, a JS mirror of the BLAKE2b driver (checked against @noble/hashes), the trie builder. + +## Run + +``` +node compile.mjs +node deploy.mjs +node test.mjs +node demo.mjs +``` + +The deployer key is read from `~/.config/igneum/sepolia-deployer`. Sepolia's gas schedule is repriced (a plain +transfer estimates 12,000 gas), so the numbers in `deployment.json` are what this network charges. diff --git a/tools/reference-apps/oracle/artifacts/IgneumStateOracle.json b/tools/reference-apps/oracle/artifacts/IgneumStateOracle.json new file mode 100644 index 000000000..c0fccdc76 --- /dev/null +++ b/tools/reference-apps/oracle/artifacts/IgneumStateOracle.json @@ -0,0 +1,620 @@ +{ + "name": "IgneumStateOracle", + "solc": "0.8.28+commit.7893614a.Emscripten.clang", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "verifier_", + "type": "address" + }, + { + "internalType": "uint64", + "name": "evmChainId_", + "type": "uint64" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint64", + "name": "number", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "postRoot", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "certIndex", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "carrier", + "type": "bytes32" + } + ], + "name": "StateRoot", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "verifier", + "type": "address" + } + ], + "name": "VerifierSet", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "headers", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "checkpoint", + "type": "bytes32" + } + ], + "name": "checkHeaderPath", + "outputs": [ + { + "internalType": "bytes32", + "name": "carrier", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "merkle", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "evmChainId", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "header", + "type": "bytes" + } + ], + "name": "headerHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "leaf", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "siblings", + "type": "bytes32[]" + } + ], + "name": "merkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "h", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "h", + "type": "bytes" + } + ], + "name": "parseHeader", + "outputs": [ + { + "internalType": "uint256", + "name": "parentsOff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "parentCount", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "merkle", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "t", + "type": "bytes" + } + ], + "name": "payloadOf", + "outputs": [ + { + "internalType": "uint256", + "name": "off", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "len", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "number", + "type": "uint64" + }, + { + "internalType": "address", + "name": "a", + "type": "address" + }, + { + "internalType": "bytes[]", + "name": "accountProof", + "type": "bytes[]" + } + ], + "name": "provenAccount", + "outputs": [ + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "storageRoot", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "codeHash", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "number", + "type": "uint64" + }, + { + "internalType": "address", + "name": "a", + "type": "address" + }, + { + "internalType": "bytes[]", + "name": "accountProof", + "type": "bytes[]" + } + ], + "name": "provenBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "number", + "type": "uint64" + }, + { + "internalType": "address", + "name": "a", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "slot", + "type": "bytes32" + }, + { + "internalType": "bytes[]", + "name": "accountProof", + "type": "bytes[]" + }, + { + "internalType": "bytes[]", + "name": "storageProof", + "type": "bytes[]" + } + ], + "name": "provenStorage", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "t", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "recordIndex", + "type": "uint256" + } + ], + "name": "readRecord", + "outputs": [ + { + "internalType": "uint64", + "name": "number", + "type": "uint64" + }, + { + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "postRoot", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "chainId", + "type": "uint64" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "t", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "payloadOff", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payloadLen", + "type": "uint256" + } + ], + "name": "segmentSection", + "outputs": [ + { + "internalType": "uint256", + "name": "off", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "len", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "v", + "type": "address" + } + ], + "name": "setVerifier", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "number", + "type": "uint64" + } + ], + "name": "stateRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "postRoot", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "carrier", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "certIndex", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "certIndex", + "type": "uint64" + }, + { + "internalType": "bytes[]", + "name": "headers", + "type": "bytes[]" + }, + { + "internalType": "bytes", + "name": "coinbaseTx", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "leafIndex", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "siblings", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "recordIndex", + "type": "uint256" + } + ], + "name": "submitStateRoot", + "outputs": [ + { + "internalType": "uint64", + "name": "number", + "type": "uint64" + }, + { + "internalType": "bytes32", + "name": "postRoot", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "tx_", + "type": "bytes" + } + ], + "name": "transactionHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "trust", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "verifier", + "outputs": [ + { + "internalType": "contract IIgneumCertificateVerifier", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "certIndex", + "type": "uint64" + }, + { + "internalType": "bytes[]", + "name": "headers", + "type": "bytes[]" + }, + { + "internalType": "bytes", + "name": "coinbaseTx", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "leafIndex", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "siblings", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "recordIndex", + "type": "uint256" + } + ], + "name": "verifyStateRoot", + "outputs": [ + { + "internalType": "uint64", + "name": "number", + "type": "uint64" + }, + { + "internalType": "bytes32", + "name": "postRoot", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "carrier", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60a0346100a957601f61312538819003918201601f19168301916001600160401b038311848410176100ad5780849260409485528339810103126100a95780516001600160a01b03811691908290036100a95760200151906001600160401b03821682036100a9575f80546001600160a01b0319908116929092179055600180549091163317905560805260405161306390816100c2823960805181818161053d01526118170152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632b7ac3f3146101445780632bf5baf51461013f5780634aefb0a11461013a5780634cf83845146101355780635437988d146101305780635bed35da1461012b57806362636ea11461012657806364d42b17146101215780636f9fdd661461011c57806372464ca0146101175780637b8affcd146101125780638a01db611461010d5780638da5cb5b14610108578063b378a99714610103578063c60c7964146100fe578063ecb2c31d146100f9578063f2916104146100f4578063f837d413146100ef5763fa228c7f146100ea575f80fd5b610b5b565b610b1c565b610ae4565b610aa1565b610a79565b6108cc565b6107ff565b6107cc565b61075b565b610730565b61058b565b61051e565b6104fe565b610470565b6102f7565b610270565b610210565b610199565b3461016b575f36600319011261016b575f546040516001600160a01b039091168152602090f35b5f80fd5b600435906001600160401b038216820361016b57565b35906001600160401b038216820361016b57565b3461016b57602036600319011261016b5760806001600160401b036101c46101bf61016f565b610b9f565b9160409493945194855260208501526040840152166060820152f35b9181601f8401121561016b578235916001600160401b03831161016b576020808501948460051b01011161016b57565b3461016b57604036600319011261016b576004356001600160401b03811161016b5761024e61024560409236906004016101e0565b60243591610da6565b82519182526020820152f35b600435906001600160a01b038216820361016b57565b3461016b5760a036600319011261016b5761028961016f565b602435906001600160a01b038216820361016b57604435916064356001600160401b03811161016b576102c09036906004016101e0565b60843593916001600160401b03851161016b576020956102e76102ef9636906004016101e0565b959094610e78565b604051908152f35b3461016b57602036600319011261016b5761031061025a565b6001546001600160a01b0316330361036e575f80546001600160a01b0319166001600160a01b039290921691821790556040519081527f480b37e3d134e44cb444c9703493c7db564c707cb8a18cecea165f340431da1f90602090a1005b60405162461bcd60e51b81526020600482015260126024820152716f7261636c653a206f776e6572206f6e6c7960701b6044820152606490fd5b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176103dd57604052565b6103a8565b604051906103f16080836103bc565b565b906103f160405192836103bc565b6001600160401b0381116103dd57601f01601f191660200190565b92919261042882610401565b9161043660405193846103bc565b82948184528183011161016b578281602093845f960137010152565b9080601f8301121561016b5781602061046d9335910161041c565b90565b3461016b57604036600319011261016b576004356001600160401b03811161016b576001600160401b036104b66104ad6080933690600401610452565b60243590611189565b91846040959495519516855260208501526040840152166060820152f35b602060031982011261016b57600435906001600160401b03821161016b5761046d91600401610452565b3461016b5760206102ef610511366104d4565b6105196112e3565b611dc8565b3461016b575f36600319011261016b5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461016b575f36600319011261016b5761072c6101606105ae60405191826103bc565b61012b81527f436865636b6564206f6e20636861696e3a20686561646572206861736865732060208201527f616e6420706172656e74206c696e6b7320746f2061206365727469666965642060408201527f636865636b706f696e742c2074686520636f696e62617365206d65726b6c652060608201527f706174682c20746865207365676d656e74207265636f7264206c61796f75742c60808201527f20616e6420746865206163636f756e7420616e642073746f726167652070726f60a08201527f6f667320756e64657220706f73745f726f6f742e204e6f7420636865636b656460c08201527f206f6e20636861696e20696e207468697320736c6963653a207468652061676760e08201527f72656761746f72277320424c53207369676e6174757265206f766572207468656101008201527f207365676d656e74207265636f726420616e6420746865205a4b2070726f6f666101208201526a103132b434b7321034ba1760a91b61014082015260405191829182610561565b0390f35b3461016b576060610748610743366104d4565b611310565b9060405192835260208301526040820152f35b3461016b5760206102ef61076e366104d4565b6105196113da565b606060031982011261016b576004356001600160401b038116810361016b57916024356001600160a01b038116810361016b5791604435906001600160401b03821161016b576107c8916004016101e0565b9091565b3461016b5760206107f26107ea6107e236610776565b939092610b9f565b505050612067565b5050915050604051908152f35b3461016b575f36600319011261016b576001546040516001600160a01b039091168152602090f35b60c060031982011261016b5761083d6004610185565b916024356001600160401b03811161016b578261085c916004016101e0565b92909291604435916001600160401b03831161016b578060238401121561016b578260040135926001600160401b03841161016b57816024858301011161016b57602401929160643591608435906001600160401b03821161016b576108c4916004016101e0565b909160a43590565b3461016b576108ef6108dd36610827565b9688999896919695929594939461174b565b9091936001600160401b03841692835f52600260205260405f2054868115918215610a6f575b505015610a14576109f57fb650e8bdb81a79cecbd85292ffa6c38212615677fdc7f99f3332f642d3b1ce2d936109c761094c6103e2565b8981528460208201528260408201526109718660608301906001600160401b03169052565b61098c896001600160401b03165f52600260205260405f2090565b606060036001600160401b039284518155602085015160018201556040850151600282015501920151166001600160401b0319825416179055565b6040519384938985909493926001600160401b03906060936080840197845260208401521660408201520152565b0390a2604080516001600160401b039290921682526020820192909252f35b60405162461bcd60e51b815260206004820152602d60248201527f6f7261636c653a20616e6f7468657220726f6f742069732073746f726564206660448201526c6f72207468617420626c6f636b60981b6064820152608490fd5b149050865f610915565b3461016b57610a8f610a8a366104d4565b61149c565b60408051928352602083019190915290f35b3461016b576080610ac3610ab436610827565b9796909695919594929461174b565b916001600160401b0360405194168452602084015260408301526060820152f35b3461016b5760a0610afa6107ea6107e236610776565b9260409291925194151585526020850152604084015260608301526080820152f35b3461016b57606036600319011261016b576004356001600160401b03811161016b57610b4f610a8f913690600401610452565b60243560443591611945565b3461016b57606036600319011261016b576004356044356024356001600160401b03821161016b57602092610b976102ef9336906004016101e0565b929091611ab3565b6001600160401b03165f52600260205260405f2080548015610bdb576001820154926001600160401b0360036002850154940154169193929190565b60405162461bcd60e51b815260206004820152602560248201527f6f7261636c653a206e6f2070726f76656e20726f6f7420666f72207468617420604482015264626c6f636b60d81b6064820152608490fd5b634e487b7160e01b5f52603260045260245ffd5b9015610c7c57803590601e198136030182121561016b5701908135916001600160401b03831161016b57602001823603811361016b579190565b610c2e565b9190811015610c7c5760051b81013590601e198136030182121561016b5701908135916001600160401b03831161016b57602001823603811361016b579190565b15610cc957565b60405162461bcd60e51b815260206004820152603c60248201527f686561646572733a20612068656164657220646f6573206e6f74206e616d652060448201527f7468652070726576696f7573206f6e65206173206120706172656e74000000006064820152608490fd5b15610d3b57565b60405162461bcd60e51b815260206004820152603860248201527f686561646572733a20746865206c61737420686561646572206973206e6f742060448201527f7468652063657274696669656420636865636b706f696e7400000000000000006064820152608490fd5b919290925f935f938115610e43575f915f5b818110610dcd57505050906103f19114610d34565b610de2610ddb828486610c81565b369161041c565b96610dec88611310565b92919690841597885f14610e235750505050610e0b90976105196113da565b93610e19575b600101610db8565b9296508692610e11565b610e0b945091610e3991610e3e938d959d611b64565b610cc2565b61076e565b60405162461bcd60e51b815260206004820152600d60248201526c686561646572733a206e6f6e6560981b6044820152606490fd5b906107ea610e8b94929796959397610b9f565b50959291505015610e9f5761046d93611c10565b50509050610eab575f90565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a2073746f726167652070726f6f6620666f7220616e20616273656e74604482015267081858d8dbdd5b9d60c21b6064820152608490fd5b634e487b7160e01b5f52601160045260245ffd5b9060018201809211610f2357565b610f01565b90600a8201809211610f2357565b9060128201809211610f2357565b9060768201809211610f2357565b9060088201809211610f2357565b9060108201809211610f2357565b9060948201809211610f2357565b6008019081600811610f2357565b9060248201809211610f2357565b9060028201809211610f2357565b9060228201809211610f2357565b6013019081601311610f2357565b9060138201809211610f2357565b6080019081608011610f2357565b91908201809211610f2357565b9061024a82029180830461024a1490151715610f2357565b600581901b91906001600160fb1b03811603610f2357565b908160011b9180830460021490151715610f2357565b1561103857565b606460405162461bcd60e51b815260206004820152602060248201527f7265636f72643a20696e646578206265796f6e64207468652073656374696f6e6044820152fd5b1561108357565b60405162461bcd60e51b815260206004820152603560248201527f7265636f72643a2073746174656d656e74206973206e6f7420666f7220746865604482015274207365676d656e742773206c61737420626c6f636b60581b6064820152608490fd5b156110ed57565b60405162461bcd60e51b815260206004820152602960248201527f7265636f72643a20626c6f636b2068617368206973206e6f74207468652073746044820152686174656d656e74277360b81b6064820152608490fd5b1561114b57565b60405162461bcd60e51b81526020600482015260166024820152751c9958dbdc990e881e995c9bc81c1bdcdd17dc9bdbdd60521b6044820152606490fd5b919061119e6111978461149c565b9085611945565b61024a810661129157826111be6111ca926111c36111be6111d097610f15565b610feb565b1115611031565b90610fde565b6111e26111dc82610f28565b84611d16565b906111fe6111f86111f283610f36565b86611d41565b91610f44565b926112866112246112186112128789611d41565b60c01c90565b6001600160401b031690565b9261127f6001600160401b0361126d61124b6112186112126112458c610f52565b8d611d41565b9961126761126161125b8c610f60565b83611d41565b9a610f6e565b90611d41565b96166001600160401b0389161461107c565b85146110e6565b6103f1831515611144565b60405162461bcd60e51b81526020600482015260166024820152750e4cac6dee4c87440e6cac6e8d2dedc40d8cadccee8d60531b6044820152606490fd5b604051906112de6020836103bc565b5f8252565b604051906112f26040836103bc565b600f82526e0a8e4c2dce6c2c6e8d2dedc90c2e6d608b1b6020830152565b906001600160401b0361132283611cd0565b1690600182106113955761133861121884611cee565b9160129361134f61134885611003565b6012610fde565b906001925b808410611366575061046d9250611d41565b909161138b816111ca61138661138161121860019689611d16565b611003565b610f7c565b9301929190611354565b60405162461bcd60e51b815260206004820152601860248201527f6865616465723a206e6f20706172656e74206c6576656c7300000000000000006044820152606490fd5b604051906113e96040836103bc565b6009825268084d8dec6d690c2e6d60bb1b6020830152565b1561140857565b60405162461bcd60e51b815260206004820152600f60248201526e18dbda5b98985cd94e881cda1bdc9d608a1b6044820152606490fd5b908151811015610c7c570160200190565b1561145757565b60405162461bcd60e51b815260206004820152601a60248201527f636f696e626173653a207061796c6f6164206f76657272756e730000000000006044820152606490fd5b9061ffff6114a983611d02565b166114b661121884611cd0565b90600a9060015f91109283159384925b878382106115b8576114eb94506114e593506112189250859150611d16565b91610f52565b905f5b81811061152f5750506115019150610f8a565b906103f161151b6115156112188587611d16565b93610f52565b936115268486610fde565b90511015611450565b61154d61153d859394610f28565b6111ca611386611218838b611d16565b9361155f575b600101929190926114ee565b926115a260019161157288518210611401565b60ff611598611592611584848c61143f565b516001600160f81b03191690565b60f81c90565b166115aa57610f15565b939050611553565b6115b390610fa6565b610f15565b916115dd6115e792936111ca6113866112186115d686999a9b610f8a565b8094611d16565b9061160d57610f52565b936115f9575b600101908492916114c6565b92611605600191610f98565b9390506115ed565b61161690610f15565b610f52565b9081602091031261016b575190565b6040513d5f823e3d90fd5b1561163c57565b60405162461bcd60e51b8152602060048201526024808201527f6f7261636c653a206e6f206365727469666963617465206174207468617420696044820152630dcc8caf60e31b6064820152608490fd5b1561169457565b60405162461bcd60e51b815260206004820152603a60248201527f6d65726b6c653a207061746820646f6573206e6f74207265616368207468652060448201527f63617272696572277320686173685f6d65726b6c655f726f6f740000000000006064820152608490fd5b1561170657565b60405162461bcd60e51b815260206004820152601a60248201527f7265636f72643a2073746174656d656e7420636861696e2069640000000000006044820152606490fd5b9660206117a4979493929996959a9861177961176d5f5460018060a01b031690565b6001600160a01b031690565b60405180809b819463b1b0945360e01b8352600483019190916001600160401b036020820193169052565b03915afa93841561188c576117e76117dd6117ff966117f9956103f19d6118049c5f9361185b575b506117d8831515611635565b610da6565b95909c369161041c565b956117f4876105196112e3565b611ab3565b1461168d565b611189565b9592939194909493956001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168015918215611848575b50506116ff565b6001600160401b03161490505f80611841565b61187e91935060203d602011611885575b61187681836103bc565b81019061161b565b915f6117cc565b503d61186c565b61162a565b1561189857565b60405162461bcd60e51b815260206004820152601960248201527f636f696e626173653a20736372697074206f76657272756e73000000000000006044820152606490fd5b156118e457565b60405162461bcd60e51b815260206004820152601960248201527f636f696e626173653a206e6f2049474e532073656374696f6e000000000000006044820152606490fd5b600719810191908211610f2357565b91908203918211610f2357565b909291601381106119d95761046d916119b66119af6119a86119be946119a26119806119796119738c610f36565b8861143f565b5160f81c90565b6119948361198d83610fb4565b1115611891565b61199d8b610fc2565b610fde565b98610fde565b87846121ae565b8683612262565b9485916122bd565b6119ca848214156118dd565b6119d48194611929565b611938565b60405162461bcd60e51b815260206004820152601b60248201527f636f696e626173653a207061796c6f616420746f6f2073686f727400000000006044820152606490fd5b9190811015610c7c5760051b0190565b60405190611a3d6040836103bc565b601082526f09acae4d6d8ca84e4c2dcc6d090c2e6d60831b6020830152565b15611a6357565b60405162461bcd60e51b815260206004820152602260248201527f6d65726b6c653a206c65616620696e646578206265796f6e64207468652070616044820152610e8d60f31b6064820152608490fd5b939290915f915b808310611ace575050506103f19015611a5c565b90919294611b29600191828816155f14611b3257611b2290611b1a611af4888789611a1e565b60408051602081019490945290359083015281606081015b03601f1981018352826103bc565b610519611a2e565b9660011c90565b93019190611aba565b611b5f90611b1a611b44888789611a1e565b60408051913560208301528101929092528160608101611b0c565b611b22565b909291925f5b848110611b7a5750505050505f90565b6001600160fb1b0381168103610f23578060051b8201808311610f2357611ba2859185611d41565b14611baf57600101611b6a565b5050505050600190565b15611bc057565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a2073746f726167652076616c7565206973206e6f74206120737472696044820152616e6760f01b6064820152608490fd5b611c389392916040516020810191825260208152611c2f6040826103bc565b519020906125ee565b9015611c8f57611c4781612b4f565b90815115151580611c70575b91611c6061046d93611bb9565b6060604082015191015191612d4f565b5060408201519160608101518301809311610f23578151909214611c53565b505f90565b15611c9b57565b60405162461bcd60e51b815260206004820152600d60248201526c1a195859195c8e881cda1bdc9d609a1b6044820152606490fd5b602261046d91611ce48151600a1115611c94565b015160c01c612ddd565b602a61046d91611ce4815160121115611c94565b602061046d91611ce4815160081115611c94565b906008810190818111610f235782611d3660209361046d95511015611c94565b01015160c01c612ddd565b906020810191828211610f2357611d5d60209382511015611c94565b01015190565b15611d6a57565b60405162461bcd60e51b81526020600482015260136024820152720c4d8c2d6ca64c47440d6caf240d8cadccee8d606b1b6044820152606490fd5b6040516101009190611db783826103bc565b60d5815291601f1901366020840137565b611ddd81518015159081611fc4575b50611d63565b611de5611da5565b91611df16101006103f3565b676a09e667f3bcc908815267bb67ae8584caa73b6020820152673c6ef372fe94f82b604082015267a54ff53a5f1d36f1606082015267510e527fade682d16080820152679b05688c2b3e6c1f60a0820152671f83d9abfb41bd6b60c0820152675be0cd19137e217960e0820152611ea66301010020611e8a611e7a86516001600160401b031690565b60081b67ffffffffffffff001690565b83516001600160401b0316181882906001600160401b03169052565b600c60238501535f5b60088110611f7d575050805191611eda8460c45f918260648201528260848201528260a48201520152565b80516020606486019201825e611ef1831585612e4d565b5f5b838110611f0557505050506024015190565b80611f13611f349286611938565b9060808211611f74575b60808210611f51575b81602082870101855e610fde565b90611f4b611f4183610fd0565b8584149087612ec3565b90611ef3565b611f6f8760c45f918260648201528260848201528260a48201520152565b611f26565b60809150611f1d565b8060051b8201515f905f905b60088210611fa957505060c01b600382901b860160240152600101611eaf565b909160019060ff838560031b1c169060081b17920190611f89565b6040915011155f611dd7565b15611fd757565b60405162461bcd60e51b815260206004820152601a60248201527f6d70743a206163636f756e74206973206e6f742061206c6973740000000000006044820152606490fd5b1561202357565b606460405162461bcd60e51b815260206004820152602060248201527f6d70743a206163636f756e7420686173206e6f7420666f7572206669656c64736044820152fd5b60405160609290921b6bffffffffffffffffffffffff191660208301908152612099949392611c2f8160348101611b0c565b9190156121a1576120a982612b4f565b9081516120b590151590565b6120be90611fd0565b604082019182516120cf9085612c55565b9160408301948551936060019384516120e791610fde565b6120f19082612c55565b94604086019586519060600190815161210991610fde565b6121139084612c55565b90604082019687519260600192835161212b91610fde565b6121359086612c55565b93604085019788519560600195865161214d91610fde565b9151906060015161215d91610fde565b146121679061201c565b6001995190516121779186612d4f565b975190516121859185612d4f565b955190516121939184612ed9565b935190519061046d92612ed9565b5f91508190819081908190565b6008820190818311610f23578391821061225c57016324a3a72360e11b63ffffffff60e01b601c83015116036122575782600719810111610f23576018015161222e9060e081901c906122249060c81c63ff000000165b62ff0000600884901b161761ff00600884901c16179160181c60ff1690565b1763ffffffff1690565b9061224261223b83610f52565b9184611938565b10612253576119d461046d92611929565b5090565b505090565b50505090565b6008820190818311610f23578391821061225c570163049474e560e41b63ffffffff60e01b601c83015116036122575782600719810111610f23576018015161222e9060e081901c906122249060c81c63ff00000016612205565b6008820190818311610f23578391821061225c57016349474e5360e01b63ffffffff60e01b601c83015116036122575782600719810111610f23576018015161222e9060e081901c906122249060c81c63ff00000016612205565b1561231f57565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a206e6f206e6f64657320666f722061206e6f6e2d656d70747920726f6044820152611bdd60f21b6064820152608490fd5b1561237657565b60405162461bcd60e51b815260206004820152602360248201527f6d70743a20746865206669727374206e6f6465206973206e6f742074686520726044820152621bdbdd60ea1b6064820152608490fd5b156123ce57565b60405162461bcd60e51b815260206004820152601760248201527f6d70743a206e6f6465206973206e6f742061206c6973740000000000000000006044820152606490fd5b6040519061022061242481846103bc565b368337565b1561243057565b60405162461bcd60e51b81526020600482015260136024820152726d70743a20746f6f206d616e79206974656d7360681b6044820152606490fd5b5f198114610f235760010190565b906011811015610c7c5760051b0190565b60405190608082018281106001600160401b038211176103dd576040525f6060838281528260208201528260408201520152565b156124c557565b60405162461bcd60e51b815260206004820152600d60248201526c0dae0e87440c4c2c840e0c2e8d609b1b6044820152606490fd5b1561250157565b60405162461bcd60e51b81526020600482015260126024820152716d70743a20626164207265666572656e636560701b6044820152606490fd5b1561254257565b60405162461bcd60e51b815260206004820152602160248201527f6d70743a2061207265666572656e636564206e6f6465206973206d697373696e6044820152606760f81b6064820152608490fd5b1561259857565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a206e6f646520646f6573206e6f74206861736820746f20697473207260448201526765666572656e636560c01b6064820152608490fd5b939291938215612a545761261a61260c610ddb858897969597610c42565b91825160208401201461236f565b5f918290600190825b605084106126655760405162461bcd60e51b815260206004820152601260248201527106d70743a207061746820746f6f20646565760741b6044820152606490fd5b61266f9085612c55565b9461268261267d8751151590565b6123c7565b61268a612413565b965f986040880197606089519101905b6126a78a51835190610fde565b81101561270257906126f68c836126e58e9f9d9e9d6126a7968e6126d060116126d59410612429565b612c55565b926126df8161246b565b9e612479565b526060604082015191015190610fde565b9a999b9a90915061269a565b505096509796909694919461271561248a565b50601181036128365750604087146127e95761275161274a6127579261274461273e8b8b612f22565b60ff1690565b90612479565b5183612c55565b96610f15565b955b80516127d957606081018051156127c5576020929161277c8460409351146124fa565b01510101519261278d81831061253b565b6127b56127a7610ddb61279f8561246b565b94848c610c81565b948551602087012014612591565b60015f935b019296959496612623565b505050505050505090505f9061046d6112cf565b60206001919592950151936127ba565b93509596505050612808925061280191506102000190565b5182612c55565b9060608201805115612829576040612824930151905191612f49565b600191565b5050505f9061046d6112cf565b909690600203612a0f5761284b875183612c55565b9061285d6128598351151590565b1590565b80612a02575b61286c906124be565b604082019061289b606061289361288a61159261158487518a61143f565b60041c600f1690565b94015161101b565b60018416158015916128b7916129f95760ff60015b1690611938565b925f5b84811061291c575050506128dd6128d66002936128e493610fde565b9960200190565b5184612c55565b911615612759579697509492505050604091500361291057816060604061282494015191015191612f49565b50505f9061046d6112cf565b5f9c979b96999a92939495989c50835f146129e15789600161296161159261158461294b60ff855b1687610fde565b9461295b88516111ca8860011c90565b9061143f565b91166129d95760041c600f165b604061297a8388610fde565b10908115916129b5575b5061299d576001019b97949392919998959a969b6128ba565b50505050505050955050505050505f9061046d6112cf565b905060ff6129cf61273e6129c9858a610fde565b87612f22565b911614155f612984565b600f1661296e565b89600161296161159261158461294b60ff6002612944565b60ff60026128b0565b5060608201511515612863565b60405162461bcd60e51b815260206004820181905260248201527f6d70743a206e6f6465207769746820616e206f6464206974656d20636f756e746044820152606490fd5b9050612a859293507f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421915014612318565b5f9061046d6112cf565b15612a9657565b60405162461bcd60e51b815260206004820152600a6024820152691c9b1c0e881cda1bdc9d60b21b6044820152606490fd5b60ff60f6199116019060ff8211610f2357565b60ff60bf199116019060ff8211610f2357565b60ff60b6199116019060ff8211610f2357565b60ff607f199116019060ff8211610f2357565b15612b1b57565b60405162461bcd60e51b815260206004820152600c60248201526b3936381d1037bb32b9393ab760a11b6044820152606490fd5b906103f1612b5b61248a565b92612b6881511515612a8f565b612b786115926115845f8461143f565b5f602086015260ff81166080811015612bb75750505f6040850152600160608501525b612bae6040850151606086015190610fde565b90511015612b14565b60b8811015612be5575061273e612bcd91612b01565b6060850152612bdb5f610f15565b6040850152612b9b565b60c0811015612c1f5750612bfe61273e612bdb92612aee565b612c1181612c0b5f610f15565b85612f84565b606087015261199d5f610f15565b60f81115612c3d5761273e612bcd91612c388760019052565b612adb565b612c4c61273e612bdb92612ac8565b60018652612bfe565b6103f190929192612c6461248a565b93612c7182518210612a8f565b612c81611592611584838561143f565b9080602087015260ff8216608081105f14612cb2575060408601819052600160608701819052612bae925090610fde565b60b8811015612cd55750612ccb61273e612bdb93612b01565b6060870152610f15565b60c0811015612d0f575061199d612cf161273e612bdb94612aee565b91612d0583612cff83610f15565b87612f84565b6060890152610f15565b60f81115612d2b57612ccb61273e612bdb93612c388960019052565b61199d612d3d61273e612bdb94612ac8565b6001885291612d0583612cff83610f15565b9092915f9360208211612da05791905f925b818410612d6e5750505050565b9091929460081b85820190818311610f2357612d9561273e6115926115846001958961143f565b179501929190612d61565b60405162461bcd60e51b8152602060048201526015602482015274726c703a20696e746567657220746f6f207769646560581b6044820152606490fd5b612e4967ff00000000000000603883901b8116600884811b64ff000000001690601886901b65ff00000000001690602887901b66ff000000000000169063ff0000009088901c16931717171762ff0000601885901c161761ff00602885901c1617921660381c60ff1690565b1790565b604091612e5a6080612ddd565b60c01b60e4830152612eb7575b60d5602060248301920160095afa15612e7c57565b60405162461bcd60e51b8152602060048201526013602482015272626c616b6532623a20707265636f6d70696c6560681b6044820152606490fd5b600160f4820153612e67565b9091612e5a6001600160401b0360409416612ddd565b91602003612ee957016020015190565b60405162461bcd60e51b8152602060048201526011602482015270726c703a206e6f7420333220627974657360781b6044820152606490fd5b8160011c906020821015610c7c57901a90600116612f435760041c60ff1690565b600f1690565b9291906020612f5783610401565b91612f6560405193846103bc565b838352612f7184610401565b8284019390601f1901368537950101905e565b9291905f93602083111580613019575b15612fe25791905f925b828410612fab5750505050565b90919294612fbb60019160081b90565b612fd761273e611592611584612fd18b89610fde565b8761143f565b179501929190612f9e565b60405162461bcd60e51b815260206004820152600f60248201526e0e4d8e07440c4c2c840d8cadccee8d608b1b6044820152606490fd5b50828201808311610f235781511015612f9456fea2646970667358221220ce879094835d769d272d5d167c77090fc9d7fde70913d367e3ed7080aa3b6bfd64736f6c634300081c0033", + "deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c80632b7ac3f3146101445780632bf5baf51461013f5780634aefb0a11461013a5780634cf83845146101355780635437988d146101305780635bed35da1461012b57806362636ea11461012657806364d42b17146101215780636f9fdd661461011c57806372464ca0146101175780637b8affcd146101125780638a01db611461010d5780638da5cb5b14610108578063b378a99714610103578063c60c7964146100fe578063ecb2c31d146100f9578063f2916104146100f4578063f837d413146100ef5763fa228c7f146100ea575f80fd5b610b5b565b610b1c565b610ae4565b610aa1565b610a79565b6108cc565b6107ff565b6107cc565b61075b565b610730565b61058b565b61051e565b6104fe565b610470565b6102f7565b610270565b610210565b610199565b3461016b575f36600319011261016b575f546040516001600160a01b039091168152602090f35b5f80fd5b600435906001600160401b038216820361016b57565b35906001600160401b038216820361016b57565b3461016b57602036600319011261016b5760806001600160401b036101c46101bf61016f565b610b9f565b9160409493945194855260208501526040840152166060820152f35b9181601f8401121561016b578235916001600160401b03831161016b576020808501948460051b01011161016b57565b3461016b57604036600319011261016b576004356001600160401b03811161016b5761024e61024560409236906004016101e0565b60243591610da6565b82519182526020820152f35b600435906001600160a01b038216820361016b57565b3461016b5760a036600319011261016b5761028961016f565b602435906001600160a01b038216820361016b57604435916064356001600160401b03811161016b576102c09036906004016101e0565b60843593916001600160401b03851161016b576020956102e76102ef9636906004016101e0565b959094610e78565b604051908152f35b3461016b57602036600319011261016b5761031061025a565b6001546001600160a01b0316330361036e575f80546001600160a01b0319166001600160a01b039290921691821790556040519081527f480b37e3d134e44cb444c9703493c7db564c707cb8a18cecea165f340431da1f90602090a1005b60405162461bcd60e51b81526020600482015260126024820152716f7261636c653a206f776e6572206f6e6c7960701b6044820152606490fd5b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176103dd57604052565b6103a8565b604051906103f16080836103bc565b565b906103f160405192836103bc565b6001600160401b0381116103dd57601f01601f191660200190565b92919261042882610401565b9161043660405193846103bc565b82948184528183011161016b578281602093845f960137010152565b9080601f8301121561016b5781602061046d9335910161041c565b90565b3461016b57604036600319011261016b576004356001600160401b03811161016b576001600160401b036104b66104ad6080933690600401610452565b60243590611189565b91846040959495519516855260208501526040840152166060820152f35b602060031982011261016b57600435906001600160401b03821161016b5761046d91600401610452565b3461016b5760206102ef610511366104d4565b6105196112e3565b611dc8565b3461016b575f36600319011261016b5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461016b575f36600319011261016b5761072c6101606105ae60405191826103bc565b61012b81527f436865636b6564206f6e20636861696e3a20686561646572206861736865732060208201527f616e6420706172656e74206c696e6b7320746f2061206365727469666965642060408201527f636865636b706f696e742c2074686520636f696e62617365206d65726b6c652060608201527f706174682c20746865207365676d656e74207265636f7264206c61796f75742c60808201527f20616e6420746865206163636f756e7420616e642073746f726167652070726f60a08201527f6f667320756e64657220706f73745f726f6f742e204e6f7420636865636b656460c08201527f206f6e20636861696e20696e207468697320736c6963653a207468652061676760e08201527f72656761746f72277320424c53207369676e6174757265206f766572207468656101008201527f207365676d656e74207265636f726420616e6420746865205a4b2070726f6f666101208201526a103132b434b7321034ba1760a91b61014082015260405191829182610561565b0390f35b3461016b576060610748610743366104d4565b611310565b9060405192835260208301526040820152f35b3461016b5760206102ef61076e366104d4565b6105196113da565b606060031982011261016b576004356001600160401b038116810361016b57916024356001600160a01b038116810361016b5791604435906001600160401b03821161016b576107c8916004016101e0565b9091565b3461016b5760206107f26107ea6107e236610776565b939092610b9f565b505050612067565b5050915050604051908152f35b3461016b575f36600319011261016b576001546040516001600160a01b039091168152602090f35b60c060031982011261016b5761083d6004610185565b916024356001600160401b03811161016b578261085c916004016101e0565b92909291604435916001600160401b03831161016b578060238401121561016b578260040135926001600160401b03841161016b57816024858301011161016b57602401929160643591608435906001600160401b03821161016b576108c4916004016101e0565b909160a43590565b3461016b576108ef6108dd36610827565b9688999896919695929594939461174b565b9091936001600160401b03841692835f52600260205260405f2054868115918215610a6f575b505015610a14576109f57fb650e8bdb81a79cecbd85292ffa6c38212615677fdc7f99f3332f642d3b1ce2d936109c761094c6103e2565b8981528460208201528260408201526109718660608301906001600160401b03169052565b61098c896001600160401b03165f52600260205260405f2090565b606060036001600160401b039284518155602085015160018201556040850151600282015501920151166001600160401b0319825416179055565b6040519384938985909493926001600160401b03906060936080840197845260208401521660408201520152565b0390a2604080516001600160401b039290921682526020820192909252f35b60405162461bcd60e51b815260206004820152602d60248201527f6f7261636c653a20616e6f7468657220726f6f742069732073746f726564206660448201526c6f72207468617420626c6f636b60981b6064820152608490fd5b149050865f610915565b3461016b57610a8f610a8a366104d4565b61149c565b60408051928352602083019190915290f35b3461016b576080610ac3610ab436610827565b9796909695919594929461174b565b916001600160401b0360405194168452602084015260408301526060820152f35b3461016b5760a0610afa6107ea6107e236610776565b9260409291925194151585526020850152604084015260608301526080820152f35b3461016b57606036600319011261016b576004356001600160401b03811161016b57610b4f610a8f913690600401610452565b60243560443591611945565b3461016b57606036600319011261016b576004356044356024356001600160401b03821161016b57602092610b976102ef9336906004016101e0565b929091611ab3565b6001600160401b03165f52600260205260405f2080548015610bdb576001820154926001600160401b0360036002850154940154169193929190565b60405162461bcd60e51b815260206004820152602560248201527f6f7261636c653a206e6f2070726f76656e20726f6f7420666f72207468617420604482015264626c6f636b60d81b6064820152608490fd5b634e487b7160e01b5f52603260045260245ffd5b9015610c7c57803590601e198136030182121561016b5701908135916001600160401b03831161016b57602001823603811361016b579190565b610c2e565b9190811015610c7c5760051b81013590601e198136030182121561016b5701908135916001600160401b03831161016b57602001823603811361016b579190565b15610cc957565b60405162461bcd60e51b815260206004820152603c60248201527f686561646572733a20612068656164657220646f6573206e6f74206e616d652060448201527f7468652070726576696f7573206f6e65206173206120706172656e74000000006064820152608490fd5b15610d3b57565b60405162461bcd60e51b815260206004820152603860248201527f686561646572733a20746865206c61737420686561646572206973206e6f742060448201527f7468652063657274696669656420636865636b706f696e7400000000000000006064820152608490fd5b919290925f935f938115610e43575f915f5b818110610dcd57505050906103f19114610d34565b610de2610ddb828486610c81565b369161041c565b96610dec88611310565b92919690841597885f14610e235750505050610e0b90976105196113da565b93610e19575b600101610db8565b9296508692610e11565b610e0b945091610e3991610e3e938d959d611b64565b610cc2565b61076e565b60405162461bcd60e51b815260206004820152600d60248201526c686561646572733a206e6f6e6560981b6044820152606490fd5b906107ea610e8b94929796959397610b9f565b50959291505015610e9f5761046d93611c10565b50509050610eab575f90565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a2073746f726167652070726f6f6620666f7220616e20616273656e74604482015267081858d8dbdd5b9d60c21b6064820152608490fd5b634e487b7160e01b5f52601160045260245ffd5b9060018201809211610f2357565b610f01565b90600a8201809211610f2357565b9060128201809211610f2357565b9060768201809211610f2357565b9060088201809211610f2357565b9060108201809211610f2357565b9060948201809211610f2357565b6008019081600811610f2357565b9060248201809211610f2357565b9060028201809211610f2357565b9060228201809211610f2357565b6013019081601311610f2357565b9060138201809211610f2357565b6080019081608011610f2357565b91908201809211610f2357565b9061024a82029180830461024a1490151715610f2357565b600581901b91906001600160fb1b03811603610f2357565b908160011b9180830460021490151715610f2357565b1561103857565b606460405162461bcd60e51b815260206004820152602060248201527f7265636f72643a20696e646578206265796f6e64207468652073656374696f6e6044820152fd5b1561108357565b60405162461bcd60e51b815260206004820152603560248201527f7265636f72643a2073746174656d656e74206973206e6f7420666f7220746865604482015274207365676d656e742773206c61737420626c6f636b60581b6064820152608490fd5b156110ed57565b60405162461bcd60e51b815260206004820152602960248201527f7265636f72643a20626c6f636b2068617368206973206e6f74207468652073746044820152686174656d656e74277360b81b6064820152608490fd5b1561114b57565b60405162461bcd60e51b81526020600482015260166024820152751c9958dbdc990e881e995c9bc81c1bdcdd17dc9bdbdd60521b6044820152606490fd5b919061119e6111978461149c565b9085611945565b61024a810661129157826111be6111ca926111c36111be6111d097610f15565b610feb565b1115611031565b90610fde565b6111e26111dc82610f28565b84611d16565b906111fe6111f86111f283610f36565b86611d41565b91610f44565b926112866112246112186112128789611d41565b60c01c90565b6001600160401b031690565b9261127f6001600160401b0361126d61124b6112186112126112458c610f52565b8d611d41565b9961126761126161125b8c610f60565b83611d41565b9a610f6e565b90611d41565b96166001600160401b0389161461107c565b85146110e6565b6103f1831515611144565b60405162461bcd60e51b81526020600482015260166024820152750e4cac6dee4c87440e6cac6e8d2dedc40d8cadccee8d60531b6044820152606490fd5b604051906112de6020836103bc565b5f8252565b604051906112f26040836103bc565b600f82526e0a8e4c2dce6c2c6e8d2dedc90c2e6d608b1b6020830152565b906001600160401b0361132283611cd0565b1690600182106113955761133861121884611cee565b9160129361134f61134885611003565b6012610fde565b906001925b808410611366575061046d9250611d41565b909161138b816111ca61138661138161121860019689611d16565b611003565b610f7c565b9301929190611354565b60405162461bcd60e51b815260206004820152601860248201527f6865616465723a206e6f20706172656e74206c6576656c7300000000000000006044820152606490fd5b604051906113e96040836103bc565b6009825268084d8dec6d690c2e6d60bb1b6020830152565b1561140857565b60405162461bcd60e51b815260206004820152600f60248201526e18dbda5b98985cd94e881cda1bdc9d608a1b6044820152606490fd5b908151811015610c7c570160200190565b1561145757565b60405162461bcd60e51b815260206004820152601a60248201527f636f696e626173653a207061796c6f6164206f76657272756e730000000000006044820152606490fd5b9061ffff6114a983611d02565b166114b661121884611cd0565b90600a9060015f91109283159384925b878382106115b8576114eb94506114e593506112189250859150611d16565b91610f52565b905f5b81811061152f5750506115019150610f8a565b906103f161151b6115156112188587611d16565b93610f52565b936115268486610fde565b90511015611450565b61154d61153d859394610f28565b6111ca611386611218838b611d16565b9361155f575b600101929190926114ee565b926115a260019161157288518210611401565b60ff611598611592611584848c61143f565b516001600160f81b03191690565b60f81c90565b166115aa57610f15565b939050611553565b6115b390610fa6565b610f15565b916115dd6115e792936111ca6113866112186115d686999a9b610f8a565b8094611d16565b9061160d57610f52565b936115f9575b600101908492916114c6565b92611605600191610f98565b9390506115ed565b61161690610f15565b610f52565b9081602091031261016b575190565b6040513d5f823e3d90fd5b1561163c57565b60405162461bcd60e51b8152602060048201526024808201527f6f7261636c653a206e6f206365727469666963617465206174207468617420696044820152630dcc8caf60e31b6064820152608490fd5b1561169457565b60405162461bcd60e51b815260206004820152603a60248201527f6d65726b6c653a207061746820646f6573206e6f74207265616368207468652060448201527f63617272696572277320686173685f6d65726b6c655f726f6f740000000000006064820152608490fd5b1561170657565b60405162461bcd60e51b815260206004820152601a60248201527f7265636f72643a2073746174656d656e7420636861696e2069640000000000006044820152606490fd5b9660206117a4979493929996959a9861177961176d5f5460018060a01b031690565b6001600160a01b031690565b60405180809b819463b1b0945360e01b8352600483019190916001600160401b036020820193169052565b03915afa93841561188c576117e76117dd6117ff966117f9956103f19d6118049c5f9361185b575b506117d8831515611635565b610da6565b95909c369161041c565b956117f4876105196112e3565b611ab3565b1461168d565b611189565b9592939194909493956001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168015918215611848575b50506116ff565b6001600160401b03161490505f80611841565b61187e91935060203d602011611885575b61187681836103bc565b81019061161b565b915f6117cc565b503d61186c565b61162a565b1561189857565b60405162461bcd60e51b815260206004820152601960248201527f636f696e626173653a20736372697074206f76657272756e73000000000000006044820152606490fd5b156118e457565b60405162461bcd60e51b815260206004820152601960248201527f636f696e626173653a206e6f2049474e532073656374696f6e000000000000006044820152606490fd5b600719810191908211610f2357565b91908203918211610f2357565b909291601381106119d95761046d916119b66119af6119a86119be946119a26119806119796119738c610f36565b8861143f565b5160f81c90565b6119948361198d83610fb4565b1115611891565b61199d8b610fc2565b610fde565b98610fde565b87846121ae565b8683612262565b9485916122bd565b6119ca848214156118dd565b6119d48194611929565b611938565b60405162461bcd60e51b815260206004820152601b60248201527f636f696e626173653a207061796c6f616420746f6f2073686f727400000000006044820152606490fd5b9190811015610c7c5760051b0190565b60405190611a3d6040836103bc565b601082526f09acae4d6d8ca84e4c2dcc6d090c2e6d60831b6020830152565b15611a6357565b60405162461bcd60e51b815260206004820152602260248201527f6d65726b6c653a206c65616620696e646578206265796f6e64207468652070616044820152610e8d60f31b6064820152608490fd5b939290915f915b808310611ace575050506103f19015611a5c565b90919294611b29600191828816155f14611b3257611b2290611b1a611af4888789611a1e565b60408051602081019490945290359083015281606081015b03601f1981018352826103bc565b610519611a2e565b9660011c90565b93019190611aba565b611b5f90611b1a611b44888789611a1e565b60408051913560208301528101929092528160608101611b0c565b611b22565b909291925f5b848110611b7a5750505050505f90565b6001600160fb1b0381168103610f23578060051b8201808311610f2357611ba2859185611d41565b14611baf57600101611b6a565b5050505050600190565b15611bc057565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a2073746f726167652076616c7565206973206e6f74206120737472696044820152616e6760f01b6064820152608490fd5b611c389392916040516020810191825260208152611c2f6040826103bc565b519020906125ee565b9015611c8f57611c4781612b4f565b90815115151580611c70575b91611c6061046d93611bb9565b6060604082015191015191612d4f565b5060408201519160608101518301809311610f23578151909214611c53565b505f90565b15611c9b57565b60405162461bcd60e51b815260206004820152600d60248201526c1a195859195c8e881cda1bdc9d609a1b6044820152606490fd5b602261046d91611ce48151600a1115611c94565b015160c01c612ddd565b602a61046d91611ce4815160121115611c94565b602061046d91611ce4815160081115611c94565b906008810190818111610f235782611d3660209361046d95511015611c94565b01015160c01c612ddd565b906020810191828211610f2357611d5d60209382511015611c94565b01015190565b15611d6a57565b60405162461bcd60e51b81526020600482015260136024820152720c4d8c2d6ca64c47440d6caf240d8cadccee8d606b1b6044820152606490fd5b6040516101009190611db783826103bc565b60d5815291601f1901366020840137565b611ddd81518015159081611fc4575b50611d63565b611de5611da5565b91611df16101006103f3565b676a09e667f3bcc908815267bb67ae8584caa73b6020820152673c6ef372fe94f82b604082015267a54ff53a5f1d36f1606082015267510e527fade682d16080820152679b05688c2b3e6c1f60a0820152671f83d9abfb41bd6b60c0820152675be0cd19137e217960e0820152611ea66301010020611e8a611e7a86516001600160401b031690565b60081b67ffffffffffffff001690565b83516001600160401b0316181882906001600160401b03169052565b600c60238501535f5b60088110611f7d575050805191611eda8460c45f918260648201528260848201528260a48201520152565b80516020606486019201825e611ef1831585612e4d565b5f5b838110611f0557505050506024015190565b80611f13611f349286611938565b9060808211611f74575b60808210611f51575b81602082870101855e610fde565b90611f4b611f4183610fd0565b8584149087612ec3565b90611ef3565b611f6f8760c45f918260648201528260848201528260a48201520152565b611f26565b60809150611f1d565b8060051b8201515f905f905b60088210611fa957505060c01b600382901b860160240152600101611eaf565b909160019060ff838560031b1c169060081b17920190611f89565b6040915011155f611dd7565b15611fd757565b60405162461bcd60e51b815260206004820152601a60248201527f6d70743a206163636f756e74206973206e6f742061206c6973740000000000006044820152606490fd5b1561202357565b606460405162461bcd60e51b815260206004820152602060248201527f6d70743a206163636f756e7420686173206e6f7420666f7572206669656c64736044820152fd5b60405160609290921b6bffffffffffffffffffffffff191660208301908152612099949392611c2f8160348101611b0c565b9190156121a1576120a982612b4f565b9081516120b590151590565b6120be90611fd0565b604082019182516120cf9085612c55565b9160408301948551936060019384516120e791610fde565b6120f19082612c55565b94604086019586519060600190815161210991610fde565b6121139084612c55565b90604082019687519260600192835161212b91610fde565b6121359086612c55565b93604085019788519560600195865161214d91610fde565b9151906060015161215d91610fde565b146121679061201c565b6001995190516121779186612d4f565b975190516121859185612d4f565b955190516121939184612ed9565b935190519061046d92612ed9565b5f91508190819081908190565b6008820190818311610f23578391821061225c57016324a3a72360e11b63ffffffff60e01b601c83015116036122575782600719810111610f23576018015161222e9060e081901c906122249060c81c63ff000000165b62ff0000600884901b161761ff00600884901c16179160181c60ff1690565b1763ffffffff1690565b9061224261223b83610f52565b9184611938565b10612253576119d461046d92611929565b5090565b505090565b50505090565b6008820190818311610f23578391821061225c570163049474e560e41b63ffffffff60e01b601c83015116036122575782600719810111610f23576018015161222e9060e081901c906122249060c81c63ff00000016612205565b6008820190818311610f23578391821061225c57016349474e5360e01b63ffffffff60e01b601c83015116036122575782600719810111610f23576018015161222e9060e081901c906122249060c81c63ff00000016612205565b1561231f57565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a206e6f206e6f64657320666f722061206e6f6e2d656d70747920726f6044820152611bdd60f21b6064820152608490fd5b1561237657565b60405162461bcd60e51b815260206004820152602360248201527f6d70743a20746865206669727374206e6f6465206973206e6f742074686520726044820152621bdbdd60ea1b6064820152608490fd5b156123ce57565b60405162461bcd60e51b815260206004820152601760248201527f6d70743a206e6f6465206973206e6f742061206c6973740000000000000000006044820152606490fd5b6040519061022061242481846103bc565b368337565b1561243057565b60405162461bcd60e51b81526020600482015260136024820152726d70743a20746f6f206d616e79206974656d7360681b6044820152606490fd5b5f198114610f235760010190565b906011811015610c7c5760051b0190565b60405190608082018281106001600160401b038211176103dd576040525f6060838281528260208201528260408201520152565b156124c557565b60405162461bcd60e51b815260206004820152600d60248201526c0dae0e87440c4c2c840e0c2e8d609b1b6044820152606490fd5b1561250157565b60405162461bcd60e51b81526020600482015260126024820152716d70743a20626164207265666572656e636560701b6044820152606490fd5b1561254257565b60405162461bcd60e51b815260206004820152602160248201527f6d70743a2061207265666572656e636564206e6f6465206973206d697373696e6044820152606760f81b6064820152608490fd5b1561259857565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a206e6f646520646f6573206e6f74206861736820746f20697473207260448201526765666572656e636560c01b6064820152608490fd5b939291938215612a545761261a61260c610ddb858897969597610c42565b91825160208401201461236f565b5f918290600190825b605084106126655760405162461bcd60e51b815260206004820152601260248201527106d70743a207061746820746f6f20646565760741b6044820152606490fd5b61266f9085612c55565b9461268261267d8751151590565b6123c7565b61268a612413565b965f986040880197606089519101905b6126a78a51835190610fde565b81101561270257906126f68c836126e58e9f9d9e9d6126a7968e6126d060116126d59410612429565b612c55565b926126df8161246b565b9e612479565b526060604082015191015190610fde565b9a999b9a90915061269a565b505096509796909694919461271561248a565b50601181036128365750604087146127e95761275161274a6127579261274461273e8b8b612f22565b60ff1690565b90612479565b5183612c55565b96610f15565b955b80516127d957606081018051156127c5576020929161277c8460409351146124fa565b01510101519261278d81831061253b565b6127b56127a7610ddb61279f8561246b565b94848c610c81565b948551602087012014612591565b60015f935b019296959496612623565b505050505050505090505f9061046d6112cf565b60206001919592950151936127ba565b93509596505050612808925061280191506102000190565b5182612c55565b9060608201805115612829576040612824930151905191612f49565b600191565b5050505f9061046d6112cf565b909690600203612a0f5761284b875183612c55565b9061285d6128598351151590565b1590565b80612a02575b61286c906124be565b604082019061289b606061289361288a61159261158487518a61143f565b60041c600f1690565b94015161101b565b60018416158015916128b7916129f95760ff60015b1690611938565b925f5b84811061291c575050506128dd6128d66002936128e493610fde565b9960200190565b5184612c55565b911615612759579697509492505050604091500361291057816060604061282494015191015191612f49565b50505f9061046d6112cf565b5f9c979b96999a92939495989c50835f146129e15789600161296161159261158461294b60ff855b1687610fde565b9461295b88516111ca8860011c90565b9061143f565b91166129d95760041c600f165b604061297a8388610fde565b10908115916129b5575b5061299d576001019b97949392919998959a969b6128ba565b50505050505050955050505050505f9061046d6112cf565b905060ff6129cf61273e6129c9858a610fde565b87612f22565b911614155f612984565b600f1661296e565b89600161296161159261158461294b60ff6002612944565b60ff60026128b0565b5060608201511515612863565b60405162461bcd60e51b815260206004820181905260248201527f6d70743a206e6f6465207769746820616e206f6464206974656d20636f756e746044820152606490fd5b9050612a859293507f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421915014612318565b5f9061046d6112cf565b15612a9657565b60405162461bcd60e51b815260206004820152600a6024820152691c9b1c0e881cda1bdc9d60b21b6044820152606490fd5b60ff60f6199116019060ff8211610f2357565b60ff60bf199116019060ff8211610f2357565b60ff60b6199116019060ff8211610f2357565b60ff607f199116019060ff8211610f2357565b15612b1b57565b60405162461bcd60e51b815260206004820152600c60248201526b3936381d1037bb32b9393ab760a11b6044820152606490fd5b906103f1612b5b61248a565b92612b6881511515612a8f565b612b786115926115845f8461143f565b5f602086015260ff81166080811015612bb75750505f6040850152600160608501525b612bae6040850151606086015190610fde565b90511015612b14565b60b8811015612be5575061273e612bcd91612b01565b6060850152612bdb5f610f15565b6040850152612b9b565b60c0811015612c1f5750612bfe61273e612bdb92612aee565b612c1181612c0b5f610f15565b85612f84565b606087015261199d5f610f15565b60f81115612c3d5761273e612bcd91612c388760019052565b612adb565b612c4c61273e612bdb92612ac8565b60018652612bfe565b6103f190929192612c6461248a565b93612c7182518210612a8f565b612c81611592611584838561143f565b9080602087015260ff8216608081105f14612cb2575060408601819052600160608701819052612bae925090610fde565b60b8811015612cd55750612ccb61273e612bdb93612b01565b6060870152610f15565b60c0811015612d0f575061199d612cf161273e612bdb94612aee565b91612d0583612cff83610f15565b87612f84565b6060890152610f15565b60f81115612d2b57612ccb61273e612bdb93612c388960019052565b61199d612d3d61273e612bdb94612ac8565b6001885291612d0583612cff83610f15565b9092915f9360208211612da05791905f925b818410612d6e5750505050565b9091929460081b85820190818311610f2357612d9561273e6115926115846001958961143f565b179501929190612d61565b60405162461bcd60e51b8152602060048201526015602482015274726c703a20696e746567657220746f6f207769646560581b6044820152606490fd5b612e4967ff00000000000000603883901b8116600884811b64ff000000001690601886901b65ff00000000001690602887901b66ff000000000000169063ff0000009088901c16931717171762ff0000601885901c161761ff00602885901c1617921660381c60ff1690565b1790565b604091612e5a6080612ddd565b60c01b60e4830152612eb7575b60d5602060248301920160095afa15612e7c57565b60405162461bcd60e51b8152602060048201526013602482015272626c616b6532623a20707265636f6d70696c6560681b6044820152606490fd5b600160f4820153612e67565b9091612e5a6001600160401b0360409416612ddd565b91602003612ee957016020015190565b60405162461bcd60e51b8152602060048201526011602482015270726c703a206e6f7420333220627974657360781b6044820152606490fd5b8160011c906020821015610c7c57901a90600116612f435760041c60ff1690565b600f1690565b9291906020612f5783610401565b91612f6560405193846103bc565b838352612f7184610401565b8284019390601f1901368537950101905e565b9291905f93602083111580613019575b15612fe25791905f925b828410612fab5750505050565b90919294612fbb60019160081b90565b612fd761273e611592611584612fd18b89610fde565b8761143f565b179501929190612f9e565b60405162461bcd60e51b815260206004820152600f60248201526e0e4d8e07440c4c2c840d8cadccee8d608b1b6044820152606490fd5b50828201808311610f235781511015612f9456fea2646970667358221220ce879094835d769d272d5d167c77090fc9d7fde70913d367e3ed7080aa3b6bfd64736f6c634300081c0033" +} diff --git a/tools/reference-apps/oracle/artifacts/StubCertificateVerifier.json b/tools/reference-apps/oracle/artifacts/StubCertificateVerifier.json new file mode 100644 index 000000000..b009a1eeb --- /dev/null +++ b/tools/reference-apps/oracle/artifacts/StubCertificateVerifier.json @@ -0,0 +1,212 @@ +{ + "name": "StubCertificateVerifier", + "solc": "0.8.28+commit.7893614a.Emscripten.clang", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint64", + "name": "index", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "checkpoint", + "type": "bytes32" + } + ], + "name": "Recorded", + "type": "event" + }, + { + "inputs": [], + "name": "chainId", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "index", + "type": "uint64" + } + ], + "name": "finalCheckpoint", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "checkpoint", + "type": "bytes32" + } + ], + "name": "isFinal", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "index", + "type": "uint64" + }, + { + "internalType": "bytes32", + "name": "checkpoint", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "submitCertificate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "tableId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "stateRoot", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes[]", + "name": "proof", + "type": "bytes[]" + } + ], + "name": "verifyAccount", + "outputs": [ + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "storageRoot", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "codeHash", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "index", + "type": "uint64" + }, + { + "internalType": "bytes32", + "name": "checkpoint", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "verifyCertificate", + "outputs": [ + { + "internalType": "bool", + "name": "ok", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "signedWeight", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalWeight", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x608080604052346015576114c8908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80635e9c528a14610084578063662464951461007f5780639a8a05921461007a578063a59da8f714610075578063b1b0945314610070578063c2c1e2cb1461006b5763da3686de14610066575f80fd5b61043c565b610402565b6103c8565b610289565b610221565b6101c5565b3461012c57606036600319011261012c576024356004356001600160a01b038216820361012c57604435906001600160401b03821161012c573660238301121561012c578160040135906001600160401b03821161012c573660248360051b8501011161012c576101289360246100fc9401916105fe565b6040805195151586526020860194909452928401919091526060830152608082015290819060a0820190565b0390f35b5f80fd5b9181601f8401121561012c578235916001600160401b03831161012c576020838186019501011161012c57565b608060031982011261012c576004356001600160401b038116810361012c5791602435916044356001600160401b03811161012c578161019f91600401610130565b92909291606435906001600160401b03821161012c576101c191600401610130565b9091565b3461012c5760606001600160401b036101dd3661015d565b50505050911615159081610217575b50801561020f5760ff60015b604051921515835216602082015260016040820152f35b60ff5f6101f8565b905015155f6101ec565b3461012c575f36600319011261012c576040805190610240818361047f565b600f825260208201916e69676e65756d2d6465766e65742d3360881b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b3461012c576102973661015d565b505050506001600160401b03821691821515806103bf575b1561036657817f99f47e4a7ab820120d8b7a21d713cce18c78fa6a1d27124cc2e0c2a5069a26a4926103248361030e6102fb610357966001600160401b03165f525f60205260405f2090565b5484811591821561035c575b50506104d4565b6001600160401b03165f525f60205260405f2090565b5561034761033a825f52600160205260405f2090565b805460ff19166001179055565b6040519081529081906020820190565b0390a2005b149050845f610307565b60405162461bcd60e51b815260206004820152602b60248201527f737475623a20696e64657820616e6420636865636b706f696e74206d7573742060448201526a6265206e6f6e2d7a65726f60a81b6064820152608490fd5b508115156102af565b3461012c57602036600319011261012c576004356001600160401b03811680910361012c575f525f602052602060405f2054604051908152f35b3461012c575f36600319011261012c5760206040517f859962dfd79b64b7948cb28d6252ff8d57d5d13693b86df35a60a583de6220cc8152f35b3461012c57602036600319011261012c576004355f526001602052602060ff60405f2054166040519015158152f35b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176104a057604052565b61046b565b6001600160401b0381116104a057601f01601f191660200190565b604051906104cf60208361047f565b5f8252565b156104db57565b60405162461bcd60e51b815260206004820152602a60248201527f737475623a20696e64657820616c72656164792068617320616e6f746865722060448201526918da1958dadc1bda5b9d60b21b6064820152608490fd5b1561053a57565b60405162461bcd60e51b815260206004820152601a60248201527f6d70743a206163636f756e74206973206e6f742061206c6973740000000000006044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b90600182018092116105a157565b61057f565b919082018092116105a157565b156105ba57565b606460405162461bcd60e51b815260206004820152602060248201527f6d70743a206163636f756e7420686173206e6f7420666f7572206669656c64736044820152fd5b60405160609290921b6bffffffffffffffffffffffff1916602083019081526014835261063b94939261063260348261047f565b51902090610b27565b9190156107465761064b826110a9565b90815161065790151590565b61066090610533565b6040820191825161067190856111b6565b916040830194855193606001938451610689916105a6565b61069390826111b6565b9460408601958651906060019081516106ab916105a6565b6106b590846111b6565b9060408201968751926060019283516106cd916105a6565b6106d790866111b6565b9360408501978851956060019586516106ef916105a6565b915190606001516106ff916105a6565b14610709906105b3565b60019951905161071991866112b0565b9751905161072791856112b0565b95519051610735918461133e565b93519051906107439261133e565b90565b5f91508190819081908190565b1561075a57565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a206e6f206e6f64657320666f722061206e6f6e2d656d70747920726f6044820152611bdd60f21b6064820152608490fd5b634e487b7160e01b5f52603260045260245ffd5b90156107f857803590601e198136030182121561012c5701908135916001600160401b03831161012c57602001823603811361012c579190565b6107aa565b91908110156107f85760051b81013590601e198136030182121561012c5701908135916001600160401b03831161012c57602001823603811361012c579190565b92919261084a826104a5565b91610858604051938461047f565b82948184528183011161012c578281602093845f960137010152565b1561087b57565b60405162461bcd60e51b815260206004820152602360248201527f6d70743a20746865206669727374206e6f6465206973206e6f742074686520726044820152621bdbdd60ea1b6064820152608490fd5b156108d357565b60405162461bcd60e51b815260206004820152601760248201527f6d70743a206e6f6465206973206e6f742061206c6973740000000000000000006044820152606490fd5b60405190610220610929818461047f565b368337565b1561093557565b60405162461bcd60e51b81526020600482015260136024820152726d70743a20746f6f206d616e79206974656d7360681b6044820152606490fd5b5f1981146105a15760010190565b9060118110156107f85760051b0190565b60405190608082018281106001600160401b038211176104a0576040525f6060838281528260208201528260408201520152565b156109ca57565b60405162461bcd60e51b815260206004820152600d60248201526c0dae0e87440c4c2c840e0c2e8d609b1b6044820152606490fd5b9081518110156107f8570160200190565b908160011b91808304600214901517156105a157565b919082039182116105a157565b15610a3a57565b60405162461bcd60e51b81526020600482015260126024820152716d70743a20626164207265666572656e636560701b6044820152606490fd5b15610a7b57565b60405162461bcd60e51b815260206004820152602160248201527f6d70743a2061207265666572656e636564206e6f6465206973206d697373696e6044820152606760f81b6064820152608490fd5b15610ad157565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a206e6f646520646f6573206e6f74206861736820746f20697473207260448201526765666572656e636560c01b6064820152608490fd5b939291938215610fae57610b5a610b4c610b458588979695976107be565b369161083e565b918251602084012014610874565b5f918290600190825b60508410610ba55760405162461bcd60e51b815260206004820152601260248201527106d70743a207061746820746f6f20646565760741b6044820152606490fd5b610baf90856111b6565b94610bc2610bbd8751151590565b6108cc565b610bca610918565b965f986040880197606089519101905b610be78a518351906105a6565b811015610c425790610c368c83610c258e9f9d9e9d610be7968e610c106011610c15941061092e565b6111b6565b92610c1f81610970565b9e61097e565b5260606040820151910151906105a6565b9a999b9a909150610bda565b5050965097969096949194610c5561098f565b5060118103610d76575060408714610d2957610c91610c8a610c9792610c84610c7e8b8b611387565b60ff1690565b9061097e565b51836111b6565b96610593565b955b8051610d195760608101805115610d055760209291610cbc846040935114610a33565b015101015192610ccd818310610a74565b610cf5610ce7610b45610cdf85610970565b94848c6107fd565b948551602087012014610aca565b60015f935b019296959496610b63565b505050505050505090505f906107436104c0565b6020600191959295015193610cfa565b93509596505050610d489250610d4191506102000190565b51826111b6565b9060608201805115610d69576040610d649301519051916113ae565b600191565b5050505f906107436104c0565b909690600203610f6957610d8b8751836111b6565b90610d9d610d998351151590565b1590565b80610f5c575b610dac906109c3565b6040820190610def6060610de7610dde610dd8610dca87518a6109ff565b516001600160f81b03191690565b60f81c90565b60041c600f1690565b940151610a10565b6001841615801591610e0b91610f535760ff60015b1690610a26565b925f5b848110610e7057505050610e31610e2a600293610e38936105a6565b9960200190565b51846111b6565b911615610c995796975094925050506040915003610e64578160606040610d64940151910151916113ae565b50505f906107436104c0565b5f9c979b96999a92939495989c50835f14610f3b57896001610ebb610dd8610dca610e9f60ff855b16876105a6565b94610eb58851610eaf8860011c90565b906105a6565b906109ff565b9116610f335760041c600f165b6040610ed483886105a6565b1090811591610f0f575b50610ef7576001019b97949392919998959a969b610e0e565b50505050505050955050505050505f906107436104c0565b905060ff610f29610c7e610f23858a6105a6565b87611387565b911614155f610ede565b600f16610ec8565b896001610ebb610dd8610dca610e9f60ff6002610e98565b60ff6002610e04565b5060608201511515610da3565b60405162461bcd60e51b815260206004820181905260248201527f6d70743a206e6f6465207769746820616e206f6464206974656d20636f756e746044820152606490fd5b9050610fdf9293507f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421915014610753565b5f906107436104c0565b15610ff057565b60405162461bcd60e51b815260206004820152600a6024820152691c9b1c0e881cda1bdc9d60b21b6044820152606490fd5b60ff60f6199116019060ff82116105a157565b60ff60bf199116019060ff82116105a157565b60ff60b6199116019060ff82116105a157565b60ff607f199116019060ff82116105a157565b1561107557565b60405162461bcd60e51b815260206004820152600c60248201526b3936381d1037bb32b9393ab760a11b6044820152606490fd5b906111116110b561098f565b926110c281511515610fe9565b6110d2610dd8610dca5f846109ff565b5f602086015260ff811660808110156111135750505f6040850152600160608501525b61110860408501516060860151906105a6565b9051101561106e565b565b60b88110156111415750610c7e6111299161105b565b60608501526111375f610593565b60408501526110f5565b60c0811015611180575061115a610c7e61113792611048565b61116d816111675f610593565b856113e9565b606087015261117b5f610593565b6105a6565b60f8111561119e57610c7e611129916111998760019052565b611035565b6111ad610c7e61113792611022565b6001865261115a565b611111909291926111c561098f565b936111d282518210610fe9565b6111e2610dd8610dca83856109ff565b9080602087015260ff8216608081105f146112135750604086018190526001606087018190526111089250906105a6565b60b8811015611236575061122c610c7e6111379361105b565b6060870152610593565b60c0811015611270575061117b611252610c7e61113794611048565b916112668361126083610593565b876113e9565b6060890152610593565b60f8111561128c5761122c610c7e611137936111998960019052565b61117b61129e610c7e61113794611022565b60018852916112668361126083610593565b9092915f93602082116113015791905f925b8184106112cf5750505050565b9091929460081b858201908183116105a1576112f6610c7e610dd8610dca600195896109ff565b1795019291906112c2565b60405162461bcd60e51b8152602060048201526015602482015274726c703a20696e746567657220746f6f207769646560581b6044820152606490fd5b9160200361134e57016020015190565b60405162461bcd60e51b8152602060048201526011602482015270726c703a206e6f7420333220627974657360781b6044820152606490fd5b8160011c9060208210156107f857901a906001166113a85760041c60ff1690565b600f1690565b92919060206113bc836104a5565b916113ca604051938461047f565b8383526113d6846104a5565b8284019390601f1901368537950101905e565b9291905f9360208311158061147e575b156114475791905f925b8284106114105750505050565b9091929461142060019160081b90565b61143c610c7e610dd8610dca6114368b896105a6565b876109ff565b179501929190611403565b60405162461bcd60e51b815260206004820152600f60248201526e0e4d8e07440c4c2c840d8cadccee8d608b1b6044820152606490fd5b508282018083116105a157815110156113f956fea2646970667358221220c53733b7178146a825c866a59c165b563029898b6eab335ced53f7e5dc39298364736f6c634300081c0033", + "deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c80635e9c528a14610084578063662464951461007f5780639a8a05921461007a578063a59da8f714610075578063b1b0945314610070578063c2c1e2cb1461006b5763da3686de14610066575f80fd5b61043c565b610402565b6103c8565b610289565b610221565b6101c5565b3461012c57606036600319011261012c576024356004356001600160a01b038216820361012c57604435906001600160401b03821161012c573660238301121561012c578160040135906001600160401b03821161012c573660248360051b8501011161012c576101289360246100fc9401916105fe565b6040805195151586526020860194909452928401919091526060830152608082015290819060a0820190565b0390f35b5f80fd5b9181601f8401121561012c578235916001600160401b03831161012c576020838186019501011161012c57565b608060031982011261012c576004356001600160401b038116810361012c5791602435916044356001600160401b03811161012c578161019f91600401610130565b92909291606435906001600160401b03821161012c576101c191600401610130565b9091565b3461012c5760606001600160401b036101dd3661015d565b50505050911615159081610217575b50801561020f5760ff60015b604051921515835216602082015260016040820152f35b60ff5f6101f8565b905015155f6101ec565b3461012c575f36600319011261012c576040805190610240818361047f565b600f825260208201916e69676e65756d2d6465766e65742d3360881b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b3461012c576102973661015d565b505050506001600160401b03821691821515806103bf575b1561036657817f99f47e4a7ab820120d8b7a21d713cce18c78fa6a1d27124cc2e0c2a5069a26a4926103248361030e6102fb610357966001600160401b03165f525f60205260405f2090565b5484811591821561035c575b50506104d4565b6001600160401b03165f525f60205260405f2090565b5561034761033a825f52600160205260405f2090565b805460ff19166001179055565b6040519081529081906020820190565b0390a2005b149050845f610307565b60405162461bcd60e51b815260206004820152602b60248201527f737475623a20696e64657820616e6420636865636b706f696e74206d7573742060448201526a6265206e6f6e2d7a65726f60a81b6064820152608490fd5b508115156102af565b3461012c57602036600319011261012c576004356001600160401b03811680910361012c575f525f602052602060405f2054604051908152f35b3461012c575f36600319011261012c5760206040517f859962dfd79b64b7948cb28d6252ff8d57d5d13693b86df35a60a583de6220cc8152f35b3461012c57602036600319011261012c576004355f526001602052602060ff60405f2054166040519015158152f35b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176104a057604052565b61046b565b6001600160401b0381116104a057601f01601f191660200190565b604051906104cf60208361047f565b5f8252565b156104db57565b60405162461bcd60e51b815260206004820152602a60248201527f737475623a20696e64657820616c72656164792068617320616e6f746865722060448201526918da1958dadc1bda5b9d60b21b6064820152608490fd5b1561053a57565b60405162461bcd60e51b815260206004820152601a60248201527f6d70743a206163636f756e74206973206e6f742061206c6973740000000000006044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b90600182018092116105a157565b61057f565b919082018092116105a157565b156105ba57565b606460405162461bcd60e51b815260206004820152602060248201527f6d70743a206163636f756e7420686173206e6f7420666f7572206669656c64736044820152fd5b60405160609290921b6bffffffffffffffffffffffff1916602083019081526014835261063b94939261063260348261047f565b51902090610b27565b9190156107465761064b826110a9565b90815161065790151590565b61066090610533565b6040820191825161067190856111b6565b916040830194855193606001938451610689916105a6565b61069390826111b6565b9460408601958651906060019081516106ab916105a6565b6106b590846111b6565b9060408201968751926060019283516106cd916105a6565b6106d790866111b6565b9360408501978851956060019586516106ef916105a6565b915190606001516106ff916105a6565b14610709906105b3565b60019951905161071991866112b0565b9751905161072791856112b0565b95519051610735918461133e565b93519051906107439261133e565b90565b5f91508190819081908190565b1561075a57565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a206e6f206e6f64657320666f722061206e6f6e2d656d70747920726f6044820152611bdd60f21b6064820152608490fd5b634e487b7160e01b5f52603260045260245ffd5b90156107f857803590601e198136030182121561012c5701908135916001600160401b03831161012c57602001823603811361012c579190565b6107aa565b91908110156107f85760051b81013590601e198136030182121561012c5701908135916001600160401b03831161012c57602001823603811361012c579190565b92919261084a826104a5565b91610858604051938461047f565b82948184528183011161012c578281602093845f960137010152565b1561087b57565b60405162461bcd60e51b815260206004820152602360248201527f6d70743a20746865206669727374206e6f6465206973206e6f742074686520726044820152621bdbdd60ea1b6064820152608490fd5b156108d357565b60405162461bcd60e51b815260206004820152601760248201527f6d70743a206e6f6465206973206e6f742061206c6973740000000000000000006044820152606490fd5b60405190610220610929818461047f565b368337565b1561093557565b60405162461bcd60e51b81526020600482015260136024820152726d70743a20746f6f206d616e79206974656d7360681b6044820152606490fd5b5f1981146105a15760010190565b9060118110156107f85760051b0190565b60405190608082018281106001600160401b038211176104a0576040525f6060838281528260208201528260408201520152565b156109ca57565b60405162461bcd60e51b815260206004820152600d60248201526c0dae0e87440c4c2c840e0c2e8d609b1b6044820152606490fd5b9081518110156107f8570160200190565b908160011b91808304600214901517156105a157565b919082039182116105a157565b15610a3a57565b60405162461bcd60e51b81526020600482015260126024820152716d70743a20626164207265666572656e636560701b6044820152606490fd5b15610a7b57565b60405162461bcd60e51b815260206004820152602160248201527f6d70743a2061207265666572656e636564206e6f6465206973206d697373696e6044820152606760f81b6064820152608490fd5b15610ad157565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a206e6f646520646f6573206e6f74206861736820746f20697473207260448201526765666572656e636560c01b6064820152608490fd5b939291938215610fae57610b5a610b4c610b458588979695976107be565b369161083e565b918251602084012014610874565b5f918290600190825b60508410610ba55760405162461bcd60e51b815260206004820152601260248201527106d70743a207061746820746f6f20646565760741b6044820152606490fd5b610baf90856111b6565b94610bc2610bbd8751151590565b6108cc565b610bca610918565b965f986040880197606089519101905b610be78a518351906105a6565b811015610c425790610c368c83610c258e9f9d9e9d610be7968e610c106011610c15941061092e565b6111b6565b92610c1f81610970565b9e61097e565b5260606040820151910151906105a6565b9a999b9a909150610bda565b5050965097969096949194610c5561098f565b5060118103610d76575060408714610d2957610c91610c8a610c9792610c84610c7e8b8b611387565b60ff1690565b9061097e565b51836111b6565b96610593565b955b8051610d195760608101805115610d055760209291610cbc846040935114610a33565b015101015192610ccd818310610a74565b610cf5610ce7610b45610cdf85610970565b94848c6107fd565b948551602087012014610aca565b60015f935b019296959496610b63565b505050505050505090505f906107436104c0565b6020600191959295015193610cfa565b93509596505050610d489250610d4191506102000190565b51826111b6565b9060608201805115610d69576040610d649301519051916113ae565b600191565b5050505f906107436104c0565b909690600203610f6957610d8b8751836111b6565b90610d9d610d998351151590565b1590565b80610f5c575b610dac906109c3565b6040820190610def6060610de7610dde610dd8610dca87518a6109ff565b516001600160f81b03191690565b60f81c90565b60041c600f1690565b940151610a10565b6001841615801591610e0b91610f535760ff60015b1690610a26565b925f5b848110610e7057505050610e31610e2a600293610e38936105a6565b9960200190565b51846111b6565b911615610c995796975094925050506040915003610e64578160606040610d64940151910151916113ae565b50505f906107436104c0565b5f9c979b96999a92939495989c50835f14610f3b57896001610ebb610dd8610dca610e9f60ff855b16876105a6565b94610eb58851610eaf8860011c90565b906105a6565b906109ff565b9116610f335760041c600f165b6040610ed483886105a6565b1090811591610f0f575b50610ef7576001019b97949392919998959a969b610e0e565b50505050505050955050505050505f906107436104c0565b905060ff610f29610c7e610f23858a6105a6565b87611387565b911614155f610ede565b600f16610ec8565b896001610ebb610dd8610dca610e9f60ff6002610e98565b60ff6002610e04565b5060608201511515610da3565b60405162461bcd60e51b815260206004820181905260248201527f6d70743a206e6f6465207769746820616e206f6464206974656d20636f756e746044820152606490fd5b9050610fdf9293507f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421915014610753565b5f906107436104c0565b15610ff057565b60405162461bcd60e51b815260206004820152600a6024820152691c9b1c0e881cda1bdc9d60b21b6044820152606490fd5b60ff60f6199116019060ff82116105a157565b60ff60bf199116019060ff82116105a157565b60ff60b6199116019060ff82116105a157565b60ff607f199116019060ff82116105a157565b1561107557565b60405162461bcd60e51b815260206004820152600c60248201526b3936381d1037bb32b9393ab760a11b6044820152606490fd5b906111116110b561098f565b926110c281511515610fe9565b6110d2610dd8610dca5f846109ff565b5f602086015260ff811660808110156111135750505f6040850152600160608501525b61110860408501516060860151906105a6565b9051101561106e565b565b60b88110156111415750610c7e6111299161105b565b60608501526111375f610593565b60408501526110f5565b60c0811015611180575061115a610c7e61113792611048565b61116d816111675f610593565b856113e9565b606087015261117b5f610593565b6105a6565b60f8111561119e57610c7e611129916111998760019052565b611035565b6111ad610c7e61113792611022565b6001865261115a565b611111909291926111c561098f565b936111d282518210610fe9565b6111e2610dd8610dca83856109ff565b9080602087015260ff8216608081105f146112135750604086018190526001606087018190526111089250906105a6565b60b8811015611236575061122c610c7e6111379361105b565b6060870152610593565b60c0811015611270575061117b611252610c7e61113794611048565b916112668361126083610593565b876113e9565b6060890152610593565b60f8111561128c5761122c610c7e611137936111998960019052565b61117b61129e610c7e61113794611022565b60018852916112668361126083610593565b9092915f93602082116113015791905f925b8184106112cf5750505050565b9091929460081b858201908183116105a1576112f6610c7e610dd8610dca600195896109ff565b1795019291906112c2565b60405162461bcd60e51b8152602060048201526015602482015274726c703a20696e746567657220746f6f207769646560581b6044820152606490fd5b9160200361134e57016020015190565b60405162461bcd60e51b8152602060048201526011602482015270726c703a206e6f7420333220627974657360781b6044820152606490fd5b8160011c9060208210156107f857901a906001166113a85760041c60ff1690565b600f1690565b92919060206113bc836104a5565b916113ca604051938461047f565b8383526113d6846104a5565b8284019390601f1901368537950101905e565b9291905f9360208311158061147e575b156114475791905f925b8284106114105750505050565b9091929461142060019160081b90565b61143c610c7e610dd8610dca6114368b896105a6565b876109ff565b179501929190611403565b60405162461bcd60e51b815260206004820152600f60248201526e0e4d8e07440c4c2c840d8cadccee8d608b1b6044820152606490fd5b508282018083116105a157815110156113f956fea2646970667358221220c53733b7178146a825c866a59c165b563029898b6eab335ced53f7e5dc39298364736f6c634300081c0033" +} diff --git a/tools/reference-apps/oracle/compile.mjs b/tools/reference-apps/oracle/compile.mjs new file mode 100644 index 000000000..1ca0520e0 --- /dev/null +++ b/tools/reference-apps/oracle/compile.mjs @@ -0,0 +1,35 @@ +// Compiles the oracle contracts with solc-js and writes artifacts/.json ({abi, bytecode, deployedBytecode}). +import solc from 'solc'; +import { readFileSync, writeFileSync, readdirSync, mkdirSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import path from 'node:path'; + +const here = path.dirname(fileURLToPath(import.meta.url)); +const dir = path.join(here, 'contracts'); +const sources = {}; +for (const f of readdirSync(dir)) if (f.endsWith('.sol')) sources[f] = { content: readFileSync(path.join(dir, f), 'utf8') }; +const input = { + language: 'Solidity', + sources, + settings: { + optimizer: { enabled: true, runs: 200 }, + evmVersion: 'cancun', + viaIR: true, + outputSelection: { '*': { '*': ['abi', 'evm.bytecode.object', 'evm.deployedBytecode.object'] } }, + }, +}; +const out = JSON.parse(solc.compile(JSON.stringify(input))); +let failed = false; +for (const e of out.errors ?? []) { console.error(e.formattedMessage); if (e.severity === 'error') failed = true; } +if (failed) process.exit(1); +mkdirSync(path.join(here, 'artifacts'), { recursive: true }); +const want = ['IgneumStateOracle', 'StubCertificateVerifier']; +for (const file of Object.keys(out.contracts)) { + for (const [name, c] of Object.entries(out.contracts[file])) { + if (!want.includes(name)) continue; + const art = { name, solc: solc.version(), abi: c.abi, bytecode: '0x' + c.evm.bytecode.object, deployedBytecode: '0x' + c.evm.deployedBytecode.object }; + writeFileSync(path.join(here, 'artifacts', name + '.json'), JSON.stringify(art, null, 1) + '\n'); + console.log(name, 'creation bytes', c.evm.bytecode.object.length / 2, 'runtime bytes', c.evm.deployedBytecode.object.length / 2); + } +} +console.log('solc', solc.version()); diff --git a/tools/reference-apps/oracle/contracts/IgneumStateOracle.sol b/tools/reference-apps/oracle/contracts/IgneumStateOracle.sol new file mode 100644 index 000000000..ee3418a94 --- /dev/null +++ b/tools/reference-apps/oracle/contracts/IgneumStateOracle.sol @@ -0,0 +1,292 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +import {IIgneumCertificateVerifier} from "./IIgneumCertificateVerifier.sol"; +import {Blake2b} from "./Blake2b.sol"; +import {Mpt} from "./Mpt.sol"; + +// Stores proven Igneum Devnet 3 state roots on Sepolia and answers balance and storage reads under them. +// +// A state root enters through submitStateRoot with: +// headers the serialized headers from the carrier block up to a certified checkpoint, carrier first +// coinbaseTx the carrier's serialized coinbase transaction +// leafIndex, siblings the merkle path from the coinbase hash to the carrier's hash_merkle_root +// recordIndex which segment record inside the coinbase payload's IGNS section to take +// Every header is hashed with keyed BLAKE2b-256 ("BlockHash") on chain and parsed out of the same bytes. +// Each next header must list the previous hash among its level-0 parents. The last hash must be the +// checkpoint the verifier holds for the given certificate index. The coinbase hash ("TransactionHash") +// must reach the carrier's hash_merkle_root through the path ("MerkleBranchHash"). The record's +// statement then gives (number, block hash, post state root), which is stored under the number. +contract IgneumStateOracle { + struct Root { + bytes32 postRoot; + bytes32 blockHash; + bytes32 carrier; + uint64 certIndex; + } + + IIgneumCertificateVerifier public verifier; + address public owner; + uint64 public immutable evmChainId; // the statement's chain id, 0 to skip the check + mapping(uint64 => Root) private _roots; + + event StateRoot(uint64 indexed number, bytes32 postRoot, bytes32 blockHash, uint64 certIndex, bytes32 carrier); + event VerifierSet(address verifier); + + uint256 private constant RECORD_LEN = 586; + + constructor(address verifier_, uint64 evmChainId_) { + verifier = IIgneumCertificateVerifier(verifier_); + owner = msg.sender; + evmChainId = evmChainId_; + } + + function setVerifier(address v) external { + require(msg.sender == owner, "oracle: owner only"); + verifier = IIgneumCertificateVerifier(v); + emit VerifierSet(v); + } + + function trust() external pure returns (string memory) { + return "Checked on chain: header hashes and parent links to a certified checkpoint, the coinbase merkle path, the segment record layout, and the account and storage proofs under post_root. Not checked on chain in this slice: the aggregator's BLS signature over the segment record and the ZK proof behind it."; + } + + // ---- hashes ------------------------------------------------------------------------------------- + + function headerHash(bytes memory header) public view returns (bytes32) { + return Blake2b.hash256("BlockHash", header); + } + + function transactionHash(bytes memory tx_) public view returns (bytes32) { + return Blake2b.hash256("TransactionHash", tx_); + } + + function merkleRoot(bytes32 leaf, uint256 index, bytes32[] calldata siblings) public view returns (bytes32 h) { + h = leaf; + for (uint256 i = 0; i < siblings.length; i++) { + h = (index & 1) == 0 + ? Blake2b.hash256("MerkleBranchHash", abi.encodePacked(h, siblings[i])) + : Blake2b.hash256("MerkleBranchHash", abi.encodePacked(siblings[i], h)); + index >>= 1; + } + require(index == 0, "merkle: leaf index beyond the path"); + } + + // ---- headers ------------------------------------------------------------------------------------ + + function le64(bytes memory b, uint256 off) private pure returns (uint64) { + require(off + 8 <= b.length, "header: short"); + uint256 w; + assembly { w := mload(add(add(b, 32), off)) } + return Blake2b.swap64(uint64(w >> 192)); + } + + function word(bytes memory b, uint256 off) private pure returns (bytes32 w) { + require(off + 32 <= b.length, "header: short"); + assembly { w := mload(add(add(b, 32), off)) } + } + + // Parses the level-0 parents and hash_merkle_root out of a serialized header. + function parseHeader(bytes memory h) public pure returns (uint256 parentsOff, uint256 parentCount, bytes32 merkle) { + uint64 levels = le64(h, 2); + require(levels >= 1, "header: no parent levels"); + uint256 off = 10; + parentCount = le64(h, off); + parentsOff = off + 8; + off = parentsOff + 32 * parentCount; + for (uint256 l = 1; l < levels; l++) { + uint256 cnt = le64(h, off); + off += 8 + 32 * cnt; + } + merkle = word(h, off); + } + + function listsParent(bytes memory h, uint256 parentsOff, uint256 parentCount, bytes32 x) private pure returns (bool) { + for (uint256 i = 0; i < parentCount; i++) { + if (word(h, parentsOff + 32 * i) == x) return true; + } + return false; + } + + // Hashes every header, checks each parent link, and that the last hash is `checkpoint`. + // Returns the carrier's hash and hash_merkle_root. + function checkHeaderPath(bytes[] calldata headers, bytes32 checkpoint) public view returns (bytes32 carrier, bytes32 merkle) { + require(headers.length > 0, "headers: none"); + bytes32 prev; + for (uint256 i = 0; i < headers.length; i++) { + bytes memory h = headers[i]; + (uint256 pOff, uint256 pCount, bytes32 m) = parseHeader(h); + if (i == 0) { + merkle = m; + } else { + require(listsParent(h, pOff, pCount, prev), "headers: a header does not name the previous one as a parent"); + } + prev = headerHash(h); + if (i == 0) carrier = prev; + } + require(prev == checkpoint, "headers: the last header is not the certified checkpoint"); + } + + // ---- the coinbase transaction and its segment record --------------------------------------------- + + // Walks the serialized transaction to the payload. Amounts are 8 bytes on the wire. + function payloadOf(bytes memory t) public pure returns (uint256 off, uint256 len) { + uint16 version = uint16(le64(t, 0) & 0xffff); + uint256 p = 2; + uint256 nIn = le64(t, p); + p += 8; + for (uint256 i = 0; i < nIn; i++) { + p += 36; + uint256 sigLen = le64(t, p); + p += 8 + sigLen; + if (version < 1) p += 1; + p += 8; + if (version >= 1) p += 2; + } + uint256 nOut = le64(t, p); + p += 8; + for (uint256 i = 0; i < nOut; i++) { + p += 8 + 2; + uint256 spkLen = le64(t, p); + p += 8 + spkLen; + if (version >= 1) { + require(p < t.length, "coinbase: short"); + if (uint8(t[p]) != 0) p += 34; + p += 1; + } + } + p += 8 + 20 + 8; + len = le64(t, p); + off = p + 8; + require(off + len <= t.length, "coinbase: payload overruns"); + } + + // The nested sections at the end of the extra data: items || len_le32 || TAG. Returns the IGNS items. + function segmentSection(bytes memory t, uint256 payloadOff, uint256 payloadLen) public pure returns (uint256 off, uint256 len) { + require(payloadLen >= 19, "coinbase: payload too short"); + uint256 scriptLen = uint8(t[payloadOff + 18]); + require(19 + scriptLen <= payloadLen, "coinbase: script overruns"); + uint256 start = payloadOff + 19 + scriptLen; + uint256 end = payloadOff + payloadLen; + end = takeSection(t, start, end, "IGNF"); + end = takeSection(t, start, end, "IGNP"); + uint256 before = takeSection(t, start, end, "IGNS"); + require(before != end, "coinbase: no IGNS section"); + off = before; + len = end - 8 - before; + } + + // If the bytes in [start, end) end with `tag`, returns the start of that section; else returns `end`. + function takeSection(bytes memory t, uint256 start, uint256 end, bytes4 tag) private pure returns (uint256) { + if (end < start + 8) return end; + bytes4 have; + assembly { have := mload(add(add(t, 32), sub(end, 4))) } + if (have != tag) return end; + uint256 len = le32(t, end - 8); + if (len + 8 > end - start) return end; + return end - 8 - len; + } + + function le32(bytes memory b, uint256 off) private pure returns (uint32) { + uint256 w; + assembly { w := mload(add(add(b, 32), off)) } + uint32 be = uint32(w >> 224); + return ((be & 0xff) << 24) | ((be & 0xff00) << 8) | ((be & 0xff0000) >> 8) | (be >> 24); + } + + // Reads record `recordIndex` of the IGNS section: (last block number, block hash, post state root, chain id). + function readRecord(bytes memory t, uint256 recordIndex) + public + pure + returns (uint64 number, bytes32 blockHash, bytes32 postRoot, uint64 chainId) + { + (uint256 pOff, uint256 pLen) = payloadOf(t); + (uint256 sOff, uint256 sLen) = segmentSection(t, pOff, pLen); + require(sLen % RECORD_LEN == 0, "record: section length"); + require((recordIndex + 1) * RECORD_LEN <= sLen, "record: index beyond the section"); + uint256 r = sOff + recordIndex * RECORD_LEN; + uint64 last = le64(t, r + 10); + bytes32 block_ = word(t, r + 18); + uint256 pv = r + 118; + chainId = uint64(uint256(word(t, pv)) >> 192); + number = uint64(uint256(word(t, pv + 8)) >> 192); + blockHash = word(t, pv + 16); + postRoot = word(t, pv + 148); + require(number == last, "record: statement is not for the segment's last block"); + require(blockHash == block_, "record: block hash is not the statement's"); + require(postRoot != bytes32(0), "record: zero post_root"); + } + + // ---- the whole check ---------------------------------------------------------------------------- + + function verifyStateRoot( + uint64 certIndex, + bytes[] calldata headers, + bytes calldata coinbaseTx, + uint256 leafIndex, + bytes32[] calldata siblings, + uint256 recordIndex + ) public view returns (uint64 number, bytes32 postRoot, bytes32 blockHash, bytes32 carrier) { + bytes32 checkpoint = verifier.finalCheckpoint(certIndex); + require(checkpoint != bytes32(0), "oracle: no certificate at that index"); + bytes32 merkle; + (carrier, merkle) = checkHeaderPath(headers, checkpoint); + bytes memory t = coinbaseTx; + bytes32 leaf = transactionHash(t); + require(merkleRoot(leaf, leafIndex, siblings) == merkle, "merkle: path does not reach the carrier's hash_merkle_root"); + uint64 chainId; + (number, blockHash, postRoot, chainId) = readRecord(t, recordIndex); + require(evmChainId == 0 || chainId == evmChainId, "record: statement chain id"); + } + + function submitStateRoot( + uint64 certIndex, + bytes[] calldata headers, + bytes calldata coinbaseTx, + uint256 leafIndex, + bytes32[] calldata siblings, + uint256 recordIndex + ) external returns (uint64 number, bytes32 postRoot) { + bytes32 blockHash; + bytes32 carrier; + (number, postRoot, blockHash, carrier) = verifyStateRoot(certIndex, headers, coinbaseTx, leafIndex, siblings, recordIndex); + Root storage r = _roots[number]; + require(r.postRoot == bytes32(0) || r.postRoot == postRoot, "oracle: another root is stored for that block"); + _roots[number] = Root(postRoot, blockHash, carrier, certIndex); + emit StateRoot(number, postRoot, blockHash, certIndex, carrier); + } + + // ---- reads -------------------------------------------------------------------------------------- + + function stateRoot(uint64 number) public view returns (bytes32 postRoot, bytes32 blockHash, bytes32 carrier, uint64 certIndex) { + Root storage r = _roots[number]; + require(r.postRoot != bytes32(0), "oracle: no proven root for that block"); + return (r.postRoot, r.blockHash, r.carrier, r.certIndex); + } + + function provenAccount(uint64 number, address a, bytes[] calldata accountProof) + public + view + returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash) + { + (bytes32 root,,,) = stateRoot(number); + return Mpt.account(root, a, accountProof); + } + + function provenBalance(uint64 number, address a, bytes[] calldata accountProof) external view returns (uint256 balance) { + (,, balance,,) = provenAccount(number, a, accountProof); + } + + function provenStorage(uint64 number, address a, bytes32 slot, bytes[] calldata accountProof, bytes[] calldata storageProof) + external + view + returns (bytes32) + { + (bool exists,,, bytes32 storageRoot,) = provenAccount(number, a, accountProof); + if (!exists) { + require(storageProof.length == 0, "mpt: storage proof for an absent account"); + return bytes32(0); + } + return Mpt.storageSlot(storageRoot, slot, storageProof); + } +} diff --git a/tools/reference-apps/oracle/demo.mjs b/tools/reference-apps/oracle/demo.mjs new file mode 100644 index 000000000..58fdac9ba --- /dev/null +++ b/tools/reference-apps/oracle/demo.mjs @@ -0,0 +1,40 @@ +// Reads a Devnet 3 balance from Sepolia. With fixtures/dn3-balance.json: submits its certificate through the verifier +// (stub or real), submits the state root with the full proof, then calls provenBalance and prints the Sepolia-read +// balance beside the fixture's. Without it: the same flow on the synthetic vector, and says so. +import { readFileSync, existsSync } from 'node:fs'; +import * as L from './lib.mjs'; + +const d = L.deployment(); +const pub = L.publicClient(); +const wallet = L.walletClient(L.deployerAccount()); +const abi = L.artifact('IgneumStateOracle').abi; +const read = (functionName, args) => pub.readContract({ address: d.oracle.address, abi, functionName, args }); +const fx = L.fixtures + '/dn3-balance.json'; +const real = existsSync(fx); +const V = real ? L.vectorFromBalanceFixture(JSON.parse(readFileSync(fx, 'utf8'))) : L.buildSynthetic(); +console.log(L.ukTime(), 'UK oracle', d.oracle.address, 'on Sepolia, verifier', await read('verifier'), real ? '' : '(no dn3-balance.json yet: synthetic vector)'); +console.log('vector:', V.kind, 'checkpoint', V.certIndex, V.checkpoint.slice(0, 12), 'headers', V.headers.length, 'chain block', V.number, 'address', L.hex0x(V.address)); + +const c = await L.ensureCertificate(pub, wallet, d, V.certIndex, L.hex0x(L.hexToBytes(V.checkpoint)), V.bitmap, V.signature); +console.log(L.ukTime(), 'UK certificate', V.certIndex, c.already ? 'already recorded on the verifier' : 'recorded: tx ' + c.tx + ' block ' + c.block + ' gas ' + c.gasUsed); +const r = await L.ensureStateRoot(pub, wallet, d, V); +console.log(L.ukTime(), 'UK state root for block', V.number, r.already ? 'already stored' : 'stored: tx ' + r.tx + ' block ' + r.block + ' gas ' + r.gasUsed + ' (' + r.headers + ' headers, ' + r.calldataBytes + ' bytes of calldata)'); +const [root, blockHash, carrier, certIndex] = await read('stateRoot', [V.number]); +console.log('stored post_root', root, 'block hash', blockHash.slice(0, 14), 'carrier', carrier.slice(0, 14), 'certificate', certIndex); + +const balance = await read('provenBalance', [V.number, L.hex0x(V.address), V.accountProof.map(L.hex0x)]); +const expected = real ? V.balance : V.account.balance; +const ign = w => (Number(w / 10n ** 12n) / 1e6).toFixed(6); +console.log(''); +console.log('Sepolia-read balance :', balance.toString(), 'wei =', ign(balance), 'IGN'); +console.log('fixture balance :', expected.toString(), 'wei =', ign(expected), 'IGN'); +console.log(balance === expected ? 'MATCH' : 'MISMATCH'); +if (real && V.storageProofs.length) { + for (const sp of V.storageProofs) { + const v = await read('provenStorage', [V.number, L.hex0x(V.address), L.hex0x(sp.slot), V.accountProof.map(L.hex0x), sp.proof.map(L.hex0x)]); + console.log('slot', L.hex0x(sp.slot).slice(0, 14), 'Sepolia-read', v, 'fixture', sp.value.toString(), BigInt(v) === sp.value ? 'MATCH' : 'MISMATCH'); + } +} +console.log(''); +console.log('trust():', await read('trust')); +process.exit(balance === expected ? 0 : 1); diff --git a/tools/reference-apps/oracle/deploy.mjs b/tools/reference-apps/oracle/deploy.mjs new file mode 100644 index 000000000..47e83e9ca --- /dev/null +++ b/tools/reference-apps/oracle/deploy.mjs @@ -0,0 +1,40 @@ +// Deploys StubCertificateVerifier and IgneumStateOracle(stub, Devnet 3 EVM chain id) to Sepolia with EIP-1559 +// transactions, waits for each receipt and writes deployment.json. Refuses to redeploy over an existing +// deployment.json unless --force is given; --oracle-only keeps the stub from deployment.json and redeploys the oracle. +import { writeFileSync, existsSync } from 'node:fs'; +import path from 'node:path'; +import { here, artifact, publicClient, walletClient, deployerAccount, EVM_CHAIN_ID, ukTime, deployment } from './lib.mjs'; + +const out = path.join(here, 'deployment.json'); +if (existsSync(out) && !process.argv.includes('--force')) { + const d = deployment(); + console.log('deployment.json exists (stub', d.stub.address, 'oracle', d.oracle.address + '); pass --force to redeploy'); + process.exit(0); +} +const account = deployerAccount(); +const pub = publicClient(); +const wallet = walletClient(account); +const bal = await pub.getBalance({ address: account.address }); +console.log(ukTime(), 'UK deployer', account.address, 'balance', Number(bal) / 1e18, 'ETH'); + +async function deploy(name, args) { + const art = artifact(name); + const hash = await wallet.deployContract({ abi: art.abi, bytecode: art.bytecode, args }); + console.log(ukTime(), 'UK', name, 'sent', hash); + const r = await pub.waitForTransactionReceipt({ hash, timeout: 180_000 }); + if (r.status !== 'success') throw new Error(name + ' deployment reverted in ' + hash); + console.log(ukTime(), 'UK', name, 'at', r.contractAddress, 'block', r.blockNumber, 'gas', r.gasUsed); + return { address: r.contractAddress, tx: hash, block: Number(r.blockNumber), gasUsed: Number(r.gasUsed) }; +} +const oracleOnly = process.argv.includes('--oracle-only'); +const previous = existsSync(out) ? deployment() : null; +const stub = oracleOnly && previous ? previous.stub : await deploy('StubCertificateVerifier', []); +const oracle = await deploy('IgneumStateOracle', [stub.address, EVM_CHAIN_ID]); +const after = await pub.getBalance({ address: account.address }); +const d = { + network: 'sepolia', chainId: 11155111, rpc: 'https://ethereum-sepolia-rpc.publicnode.com', deployer: account.address, + evmChainId: EVM_CHAIN_ID, verifier: 'stub', stub, oracle, deployedAt: new Date().toISOString(), spentWei: (bal - after).toString(), + previous: previous ? [...(previous.previous || []), { stub: previous.stub, oracle: previous.oracle, deployedAt: previous.deployedAt, writes: previous.writes || [] }] : [], +}; +writeFileSync(out, JSON.stringify(d, null, 1) + '\n'); +console.log(ukTime(), 'UK wrote', out, 'spent', Number(bal - after) / 1e18, 'ETH'); diff --git a/tools/reference-apps/oracle/deployment.json b/tools/reference-apps/oracle/deployment.json new file mode 100644 index 000000000..88b282d1e --- /dev/null +++ b/tools/reference-apps/oracle/deployment.json @@ -0,0 +1,86 @@ +{ + "network": "sepolia", + "chainId": 11155111, + "rpc": "https://ethereum-sepolia-rpc.publicnode.com", + "deployer": "0xe1D08384ef4c4c1511c8f05F94C914C4DeDc2787", + "evmChainId": 4463, + "verifier": "stub", + "stub": { + "address": "0xa197ef31d5d5613125779179668e2482ac69a6f6", + "tx": "0xa01091b62dfb4a89b25afb57a3d384677a9ad62370748504d2b3f288c0d3ad38", + "block": 11869583, + "gasUsed": 8434842 + }, + "oracle": { + "address": "0xefe9879de29c401eeff195d5bf71c86b9caaa1b2", + "tx": "0xb8650f5b2a6965b94fde56a668e9c593b227f5b7e8d78949e32edd7f79d2d644", + "block": 11869608, + "gasUsed": 19585581 + }, + "deployedAt": "2026-10-08T10:37:13.434Z", + "spentWei": "19585913954877", + "previous": [ + { + "stub": { + "address": "0xa197ef31d5d5613125779179668e2482ac69a6f6", + "tx": "0xa01091b62dfb4a89b25afb57a3d384677a9ad62370748504d2b3f288c0d3ad38", + "block": 11869583, + "gasUsed": 8434842 + }, + "oracle": { + "address": "0xa0754e555933b21703cdc6f9ff62e22ddb0a641e", + "tx": "0x411b44f37c17834fab674a1fb5f6a0d9680cc0d3c485797068961158139edbb7", + "block": 11869584, + "gasUsed": 19585581 + }, + "deployedAt": "2026-10-08T10:32:27.409Z", + "writes": [ + { + "at": "2026-10-08T10:35:00Z", + "what": "submitCertificate", + "vector": "synthetic", + "index": "9001", + "tx": "0x4ee21dc6fc3b5e72e29ae04bb6cace759193ce117246e4417704b8e627d8b0de", + "block": 11869597, + "gasUsed": 239120 + }, + { + "at": "2026-10-08T10:35:00Z", + "what": "submitStateRoot", + "vector": "synthetic", + "number": "27039", + "certIndex": "9001", + "tx": "0x2d7f282580fdbb245af47abe429d48573d72c06403bf75fdc5407ffdd97d8df0", + "block": 11869598, + "gasUsed": 580161, + "headers": 3 + } + ] + } + ], + "writes": [ + { + "at": "2026-10-08T10:37:50.681Z", + "what": "submitCertificate", + "index": "9002", + "checkpoint": "0x6bef4a7e59cae5ef017598418fa0d3be7f1528d8169191014596d9cc232fd036", + "verifier": "0xa197ef31D5D5613125779179668E2482AC69a6F6", + "tx": "0x6c2e8ff6506853aac877712b3a5e51ac57ab3426f71a03422ffd9cfae5c3ef4c", + "block": 11869611, + "gasUsed": 239120 + }, + { + "at": "2026-10-08T10:38:04.312Z", + "what": "submitStateRoot", + "vector": "synthetic", + "number": "9000027039", + "postRoot": "0xb03ecb60bbd03a652155ee5e4c76bc5ad2e8623fe24ef3810ea4f4628e94dff6", + "certIndex": "9002", + "tx": "0x8907936e01b8e1ce323a68263d574128793b4db55d74738484a4881ff6788219", + "block": 11869612, + "gasUsed": 580281, + "calldataBytes": 1863, + "headers": 3 + } + ] +} diff --git a/tools/reference-apps/oracle/lib.mjs b/tools/reference-apps/oracle/lib.mjs new file mode 100644 index 000000000..27e0713c6 --- /dev/null +++ b/tools/reference-apps/oracle/lib.mjs @@ -0,0 +1,345 @@ +// Shared helpers for the oracle scripts: byte layouts (header, coinbase transaction, segment record, coinbase +// payload), a JS mirror of the BLAKE2b driver the contract runs through the EIP-152 precompile, a small +// Merkle Patricia trie builder for synthetic vectors, and the RPC plumbing (viem, Sepolia, the deployer key). +import { readFileSync, writeFileSync } from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { blake2b } from '@noble/hashes/blake2.js'; +import { keccak_256 } from '@noble/hashes/sha3.js'; +import { createPublicClient, createWalletClient, http, defineChain } from 'viem'; +import { privateKeyToAccount } from 'viem/accounts'; +import { headerHash, coinbaseTxHash, merkleRootFromPath, rlpEncode, trimBig, hexToBytes, bytesToHex, segmentRecordsOf } from '../../../site/lc/core.js'; + +export { blake2b, keccak_256, headerHash, coinbaseTxHash, merkleRootFromPath, rlpEncode, trimBig, hexToBytes, bytesToHex }; +export const here = path.dirname(fileURLToPath(import.meta.url)); +export const fixtures = path.resolve(here, '../fixtures'); +export const RPC = 'https://ethereum-sepolia-rpc.publicnode.com'; +export const EVM_CHAIN_ID = 0x116f; // Devnet 3's EVM chain id, from the receipt fixture +export const strip = s => String(s).replace(/^0x/i, ''); +export const hex0x = b => '0x' + bytesToHex(b); +const te = new TextEncoder(); + +export function concat(parts) { const n = parts.reduce((a, p) => a + p.length, 0); const m = new Uint8Array(n); let o = 0; for (const p of parts) { m.set(p, o); o += p.length; } return m; } +export const u16le = v => { const b = new Uint8Array(2); new DataView(b.buffer).setUint16(0, Number(v), true); return b; }; +export const u32le = v => { const b = new Uint8Array(4); new DataView(b.buffer).setUint32(0, Number(v), true); return b; }; +export const u64le = v => { const b = new Uint8Array(8); new DataView(b.buffer).setBigUint64(0, BigInt(v), true); return b; }; +export const u32be = v => { const b = new Uint8Array(4); new DataView(b.buffer).setUint32(0, Number(v), false); return b; }; +export const u64be = v => { const b = new Uint8Array(8); new DataView(b.buffer).setBigUint64(0, BigInt(v), false); return b; }; +export function randomBytes(n) { const b = new Uint8Array(n); for (let i = 0; i < n; i++) b[i] = Math.floor(Math.random() * 256); return b; } +// A seeded byte source (xorshift32) so a synthetic vector is the same on every run. +export function seeded(seed) { let x = seed >>> 0 || 1; return n => { const b = new Uint8Array(n); for (let i = 0; i < n; i++) { x ^= x << 13; x >>>= 0; x ^= x >>> 17; x ^= x << 5; x >>>= 0; b[i] = x & 0xff; } return b; }; } + +// ---- the header, byte for byte as site/verify/core.js headerHash hashes it ----------------------------------- +export function serializeHeader(h) { + const levels = h.parents_by_level || []; + const parts = [u16le(h.version), u64le(levels.length)]; + for (const level of levels) { parts.push(u64le(level.length)); for (const p of level) parts.push(hexToBytes(strip(p))); } + parts.push(hexToBytes(strip(h.hash_merkle_root)), hexToBytes(strip(h.accepted_id_merkle_root)), hexToBytes(strip(h.utxo_commitment)), + u64le(h.timestamp), u32le(h.bits), u64le(h.nonce), u64le(h.daa_score), u64le(h.blue_score)); + const bw = String(h.blue_work).replace(/^0+/, ''); + const bwBytes = bw.length ? hexToBytes(bw.length % 2 ? '0' + bw : bw) : new Uint8Array(0); + parts.push(u64le(bwBytes.length), bwBytes, hexToBytes(strip(h.pruning_point)), hexToBytes(strip(h.vote_key_hash))); + return concat(parts); +} + +// ---- the coinbase transaction, byte for byte as site/light/core.js coinbaseTxHash hashes it --------------------- +export function serializeCoinbase(tx, amountWireLen = 8) { + const version = Number(tx.version || 0); + const parts = [u16le(version), u64le((tx.inputs || []).length)]; + for (const inp of tx.inputs || []) { + parts.push(hexToBytes(strip(inp.previousOutpoint.transactionId)), u32le(inp.previousOutpoint.index)); + const sig = hexToBytes(strip(inp.signatureScript || '')); + parts.push(u64le(sig.length), sig); + if (version < 1) parts.push(new Uint8Array([Number(inp.sigOpCount || 0)])); + parts.push(u64le(inp.sequence)); + if (version >= 1) parts.push(u16le(inp.computeBudget || 0)); + } + parts.push(u64le((tx.outputs || []).length)); + for (const out of tx.outputs || []) { + const v = new Uint8Array(amountWireLen); let x = BigInt(out.value); + for (let i = 0; i < amountWireLen; i++) { v[i] = Number(x & 0xffn); x >>= 8n; } + const spk = hexToBytes(strip(out.scriptPublicKey)); + parts.push(v, spk.subarray(0, 2), u64le(spk.length - 2), spk.subarray(2)); + if (version >= 1) parts.push(new Uint8Array([out.covenant ? 1 : 0])); + } + const payload = hexToBytes(strip(tx.payload || '')); + parts.push(u64le(tx.lockTime || 0), hexToBytes(strip(tx.subnetworkId)), u64le(tx.gas || 0), u64le(payload.length), payload); + const mass = BigInt(tx.mass || 0); + if (version < 1) { if (mass > 0n) parts.push(u64le(mass)); } else parts.push(u64le(mass)); + return concat(parts); +} + +// ---- the segment record (586 bytes) and the coinbase payload sections ---------------------------------------- +export function encodeBlockStatement(s) { + return concat([u64be(s.chain_id), u64be(s.number), s.block_hash, s.parent_hash, u32be(s.shard_count), s.tx_commitment, s.pre_root, s.post_root, s.receipts, + u64be(s.gas_used), u64be(s.pgas_used), u32be(s.executed), u32be(s.skipped), s.provers, s.shard_vk, s.agg_vk, u64be(s.chain_len)]); +} +export function encodeSegmentRecord(r) { + const pv = encodeBlockStatement(r.statement); + if (pv.length !== 340) throw new Error('statement is ' + pv.length + ' bytes'); + const b = concat([u16le(r.version), u64le(r.first), u64le(r.last), r.block, r.pubkey, r.payout, pv, r.proof_hash, r.signature]); + if (b.length !== 586) throw new Error('record is ' + b.length + ' bytes'); + return b; +} +const section = (items, tag) => concat([items, u32le(items.length), te.encode(tag)]); +// blue_score || subsidy || script version || script len || script || IGNS || IGNP || IGNF +export function buildCoinbasePayload({ blueScore = 1n, subsidy = 0n, script = new Uint8Array(0), minerBytes = new Uint8Array(0), records = [], ignp = new Uint8Array(0), ignf = new Uint8Array(0) }) { + return concat([u64le(blueScore), u64le(subsidy), u16le(0), new Uint8Array([script.length]), script, minerBytes, + section(concat(records), 'IGNS'), section(ignp, 'IGNP'), section(ignf, 'IGNF')]); +} + +// ---- keyed BLAKE2b-256 the way the contract drives the EIP-152 compression function ------------------------- +const MASK = (1n << 64n) - 1n; +const IV = [0x6a09e667f3bcc908n, 0xbb67ae8584caa73bn, 0x3c6ef372fe94f82bn, 0xa54ff53a5f1d36f1n, 0x510e527fade682d1n, 0x9b05688c2b3e6c1fn, 0x1f83d9abfb41bd6bn, 0x5be0cd19137e2179n]; +const SIGMA = [ + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3], + [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4], [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8], + [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13], [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9], + [12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11], [13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10], + [6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5], [10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0], +]; +const rotr = (x, n) => ((x >> n) | (x << (64n - n))) & MASK; +// The compression function F(h, m, t, f) with 12 rounds, exactly what the precompile computes. +export function blake2bF(h, m, t0, t1, f) { + const v = new Array(16); + for (let i = 0; i < 8; i++) { v[i] = h[i]; v[i + 8] = IV[i]; } + v[12] ^= t0; v[13] ^= t1; if (f) v[14] ^= MASK; + const G = (a, b, c, d, x, y) => { + v[a] = (v[a] + v[b] + x) & MASK; v[d] = rotr(v[d] ^ v[a], 32n); v[c] = (v[c] + v[d]) & MASK; v[b] = rotr(v[b] ^ v[c], 24n); + v[a] = (v[a] + v[b] + y) & MASK; v[d] = rotr(v[d] ^ v[a], 16n); v[c] = (v[c] + v[d]) & MASK; v[b] = rotr(v[b] ^ v[c], 63n); + }; + for (let r = 0; r < 12; r++) { + const s = SIGMA[r % 10]; + G(0, 4, 8, 12, m[s[0]], m[s[1]]); G(1, 5, 9, 13, m[s[2]], m[s[3]]); G(2, 6, 10, 14, m[s[4]], m[s[5]]); G(3, 7, 11, 15, m[s[6]], m[s[7]]); + G(0, 5, 10, 15, m[s[8]], m[s[9]]); G(1, 6, 11, 12, m[s[10]], m[s[11]]); G(2, 7, 8, 13, m[s[12]], m[s[13]]); G(3, 4, 9, 14, m[s[14]], m[s[15]]); + } + for (let i = 0; i < 8; i++) h[i] ^= v[i] ^ v[i + 8]; +} +const wordsLE = block => { const dv = new DataView(block.buffer, block.byteOffset, 128); const m = []; for (let i = 0; i < 16; i++) m.push(dv.getBigUint64(i * 8, true)); return m; }; +// Same driver as Blake2b.sol: parameter block, the key as the first block (t = 128), then the message blocks. +export function keyedBlake2b256(key, data) { + const h = IV.slice(); + h[0] ^= 0x01010000n ^ (BigInt(key.length) << 8n) ^ 32n; + const kb = new Uint8Array(128); kb.set(key); + blake2bF(h, wordsLE(kb), 128n, 0n, data.length === 0); + let done = 0; + while (done < data.length) { + const take = Math.min(128, data.length - done); + const mb = new Uint8Array(128); mb.set(data.subarray(done, done + take)); + done += take; + blake2bF(h, wordsLE(mb), 128n + BigInt(done), 0n, done === data.length); + } + const out = new Uint8Array(32); const dv = new DataView(out.buffer); + for (let i = 0; i < 4; i++) dv.setBigUint64(i * 8, h[i], true); + return out; +} +export const nobleKeyed = (key, data) => blake2b(data, { dkLen: 32, key }); + +// ---- a Merkle Patricia trie builder (secure trie, 32-byte keys) for synthetic vectors -------------------------- +const nibblesOf = b => { const out = []; for (const x of b) out.push(x >> 4, x & 15); return out; }; +function hp(nibs, leaf) { + const odd = nibs.length & 1; const flag = (leaf ? 2 : 0) | odd; + const out = []; let i = 0; + if (odd) { out.push((flag << 4) | nibs[0]); i = 1; } else out.push(flag << 4); + for (; i < nibs.length; i += 2) out.push((nibs[i] << 4) | nibs[i + 1]); + return new Uint8Array(out); +} +const common = (a, b) => { let i = 0; while (i < a.length && i < b.length && a[i] === b[i]) i++; return i; }; +export class Trie { + constructor() { this.root = null; } + put(keyBytes, valueBytes) { this.root = this._put(this.root, nibblesOf(keyBytes), valueBytes); } + _put(n, path, value) { + if (!n) return { kind: 'leaf', path, value }; + if (n.kind === 'leaf') { + const cp = common(n.path, path); + if (cp === n.path.length && cp === path.length) return { kind: 'leaf', path, value }; + const br = { kind: 'branch', children: new Array(16).fill(null), value: null }; + const place = (p, v) => { if (p.length === cp) br.value = v; else br.children[p[cp]] = { kind: 'leaf', path: p.slice(cp + 1), value: v }; }; + place(n.path, n.value); place(path, value); + return cp ? { kind: 'ext', path: path.slice(0, cp), child: br } : br; + } + if (n.kind === 'ext') { + const cp = common(n.path, path); + if (cp === n.path.length) return { kind: 'ext', path: n.path, child: this._put(n.child, path.slice(cp), value) }; + const br = { kind: 'branch', children: new Array(16).fill(null), value: null }; + const rem = n.path.slice(cp); + br.children[rem[0]] = rem.length === 1 ? n.child : { kind: 'ext', path: rem.slice(1), child: n.child }; + if (path.length === cp) br.value = value; else br.children[path[cp]] = { kind: 'leaf', path: path.slice(cp + 1), value }; + return cp ? { kind: 'ext', path: path.slice(0, cp), child: br } : br; + } + if (path.length === 0) return { ...n, value }; + const children = n.children.slice(); + children[path[0]] = this._put(children[path[0]], path.slice(1), value); + return { kind: 'branch', children, value: n.value }; + } + encode(n) { + if (n.kind === 'leaf') return rlpEncodeRaw([hp(n.path, true), n.value]); + if (n.kind === 'ext') return rlpEncodeRaw([hp(n.path, false), this.ref(n.child)]); + return rlpEncodeRaw([...n.children.map(c => (c ? this.ref(c) : new Uint8Array(0))), n.value || new Uint8Array(0)]); + } + // A child reference: the keccak of its encoding, or the encoding itself (spliced in raw) when shorter than 32 bytes. + ref(n) { const e = this.encode(n); return e.length < 32 ? { __raw: e } : keccak_256(e); } + rootHash() { return this.root ? keccak_256(this.encode(this.root)) : keccak_256(rlpEncode(new Uint8Array(0))); } + // The proof nodes for a key, root first: every hash-referenced node on the path (embedded ones travel inside their parent). + proof(keyBytes) { + const out = []; let n = this.root; let path = nibblesOf(keyBytes); let embedded = false; + while (n) { + const e = this.encode(n); + if (!embedded) out.push(e); + let c; + if (n.kind === 'leaf') break; + if (n.kind === 'ext') { if (common(n.path, path) !== n.path.length) break; path = path.slice(n.path.length); c = n.child; } + else { if (!path.length) break; c = n.children[path[0]]; path = path.slice(1); if (!c) break; } + embedded = this.encode(c).length < 32; n = c; + } + return out; + } +} +// rlpEncode in core.js knows only bytes and lists; this one also splices a {__raw} item in as it is. +export function rlpEncodeRaw(item) { + if (item && item.__raw) return item.__raw; + if (item instanceof Uint8Array) return rlpEncode(item); + const body = concat(item.map(rlpEncodeRaw)); + const n = body.length; + const prefix = n < 56 ? new Uint8Array([0xc0 + n]) : (() => { const bytes = []; let x = n; while (x > 0) { bytes.unshift(x & 0xff); x = Math.floor(x / 256); } return new Uint8Array([0xf7 + bytes.length, ...bytes]); })(); + return concat([prefix, body]); +} + +export const EMPTY_ROOT = '56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'; +export const encodeAccount = a => rlpEncode([trimBig(a.nonce), trimBig(a.balance), hexToBytes(strip(a.storageRoot)), hexToBytes(strip(a.codeHash))]); + +// ---- RPC plumbing ---------------------------------------------------------------------------------------------- +export const sepolia = defineChain({ id: 0xaa36a7, name: 'Sepolia', nativeCurrency: { name: 'Sepolia Ether', symbol: 'ETH', decimals: 18 }, rpcUrls: { default: { http: [RPC] } } }); +export const publicClient = () => createPublicClient({ chain: sepolia, transport: http(RPC, { timeout: 120_000 }) }); +export function deployerAccount() { + const k = JSON.parse(readFileSync(path.join(process.env.HOME, '.config/igneum/sepolia-deployer'), 'utf8')); + return privateKeyToAccount(k.private_key); +} +export const walletClient = account => createWalletClient({ account, chain: sepolia, transport: http(RPC, { timeout: 120_000 }) }); +export const artifact = name => JSON.parse(readFileSync(path.join(here, 'artifacts', name + '.json'), 'utf8')); +export const deployment = () => JSON.parse(readFileSync(path.join(here, 'deployment.json'), 'utf8')); +export const ukTime = () => new Date().toLocaleTimeString('en-GB', { timeZone: 'Europe/London', hour: '2-digit', minute: '2-digit', second: '2-digit' }); +// The revert reason out of a viem error, or the message's first line. +export function reasonOf(e) { + const m = String(e.shortMessage || e.message || e); + const r = /reason:\s*([^\n]+)/.exec(String(e.message || '')) || /reverted with the following reason:\s*([^\n]+)/.exec(String(e.message || '')); + return r ? r[1].trim() : m.split('\n')[0]; +} + +// ---- a synthetic balance proof: a state trie, a segment record, a coinbase, a merkle path and a two-header path -- +// Everything the contract checks is real; only the aggregator's signature and the certificate are made up, which is +// what the stub verifier accepts. The checkpoint index is 9002 so it never collides with a real certificate (9001 holds an earlier synthetic vector). +export function buildSynthetic(evmChainId = EVM_CHAIN_ID, seed = 0x1a2b3c4d) { + const randomBytes = seeded(seed); + const address = randomBytes(20); + const storage = new Trie(); + const slot1 = new Uint8Array(32); slot1[31] = 1; + const slot5 = new Uint8Array(32); slot5[31] = 5; + const v1 = hexToBytes('abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789'); + storage.put(keccak_256(slot1), rlpEncode(v1)); + storage.put(keccak_256(slot5), rlpEncode(trimBig(42n))); + for (let i = 0; i < 6; i++) storage.put(keccak_256(randomBytes(32)), rlpEncode(trimBig(BigInt(1000 + i)))); + const account = { nonce: 7n, balance: 123456789n * 10n ** 15n, storageRoot: bytesToHex(storage.rootHash()), codeHash: bytesToHex(keccak_256(new Uint8Array(0))) }; + const state = new Trie(); + state.put(keccak_256(address), encodeAccount(account)); + for (let i = 0; i < 9; i++) state.put(keccak_256(randomBytes(20)), encodeAccount({ nonce: BigInt(i), balance: BigInt(i) * 10n ** 18n, storageRoot: EMPTY_ROOT, codeHash: account.codeHash })); + const postRoot = state.rootHash(); + const number = 9_000_027_039n; // far above any Devnet 3 block number, so it never collides with a real record + const blockHash = randomBytes(32); + const record = encodeSegmentRecord({ + version: 2, first: number - 3n, last: number, block: blockHash, pubkey: randomBytes(48), payout: randomBytes(20), + statement: { chain_id: BigInt(evmChainId), number, block_hash: blockHash, parent_hash: randomBytes(32), shard_count: 1, tx_commitment: randomBytes(32), pre_root: randomBytes(32), post_root: postRoot, receipts: randomBytes(32), gas_used: 21000n, pgas_used: 0n, executed: 1, skipped: 0, provers: randomBytes(32), shard_vk: randomBytes(32), agg_vk: randomBytes(32), chain_len: 4n }, + proof_hash: randomBytes(32), signature: randomBytes(96), + }); + const payload = buildCoinbasePayload({ blueScore: 62371n, subsidy: 50000000n, script: hexToBytes('20' + bytesToHex(randomBytes(32)) + 'ac'), minerBytes: te.encode('synthetic'), records: [record], ignf: randomBytes(40) }); + const coinbase = { version: 1, inputs: [], outputs: [{ value: '50000000', scriptPublicKey: '0000' + '20' + bytesToHex(randomBytes(32)) + 'ac' }], lockTime: 0, subnetworkId: '0100000000000000000000000000000000000000', gas: 0, payload: bytesToHex(payload), mass: 0 }; + const cbBytes = serializeCoinbase(coinbase); + const leaf = coinbaseTxHash(coinbase, blake2b); + const leaves = [leaf, randomBytes(32), randomBytes(32)]; + const H = d => blake2b(d, { dkLen: 32, key: te.encode('MerkleBranchHash') }); + const siblings = [leaves[1], H(concat([leaves[2], new Uint8Array(32)]))]; + const merkle = merkleRootFromPath(leaf, 0, siblings, blake2b); + const mk = (merkleRoot, parents, blueScore) => ({ version: 1538, parents_by_level: [parents, parents], hash_merkle_root: bytesToHex(merkleRoot), accepted_id_merkle_root: bytesToHex(randomBytes(32)), utxo_commitment: bytesToHex(randomBytes(32)), timestamp: '1759900000000', bits: 486805716, nonce: '1234567890123', daa_score: '62684', blue_work: '00000000000000000000000000000000000020dfbc77ac31', blue_score: String(blueScore), pruning_point: bytesToHex(randomBytes(32)), vote_key_hash: bytesToHex(randomBytes(32)) }); + const carrier = mk(merkle, [bytesToHex(randomBytes(32))], 62371); carrier.hash = headerHash(carrier, blake2b); + const mid = mk(randomBytes(32), [carrier.hash, bytesToHex(randomBytes(32))], 62372); mid.hash = headerHash(mid, blake2b); + const top = mk(randomBytes(32), [bytesToHex(randomBytes(32)), mid.hash], 62373); top.hash = headerHash(top, blake2b); + return { + kind: 'synthetic', certIndex: 9002n, checkpoint: top.hash, headers: [carrier, mid, top], coinbase, coinbaseBytes: cbBytes, leafIndex: 0, siblings, recordIndex: 0, + number, postRoot, blockHash, address, account, accountProof: state.proof(keccak_256(address)), + slots: [{ slot: slot1, value: v1, proof: storage.proof(keccak_256(slot1)) }, { slot: slot5, value: trimBig(42n), proof: storage.proof(keccak_256(slot5)) }], + absent: (() => { const s = new Uint8Array(32); s[31] = 9; return { slot: s, proof: storage.proof(keccak_256(s)) }; })(), + }; +} + +// ---- contract arguments and the two writes -------------------------------------------------------------------- +export function proofArgs(v) { + return [v.certIndex, v.headers.map(h => hex0x(serializeHeader(h))), hex0x(v.coinbaseBytes), BigInt(v.leafIndex), v.siblings.map(hex0x), BigInt(v.recordIndex)]; +} +// Appends a write to deployment.json so every transaction is on record. +export function recordWrite(entry) { + const p = path.join(here, 'deployment.json'); + const d = JSON.parse(readFileSync(p, 'utf8')); + d.writes = d.writes || []; + d.writes.push({ at: new Date().toISOString(), ...entry }); + writeFileSync(p, JSON.stringify(d, null, 1) + '\n'); +} +// The public RPC is a pool of nodes; a read right after a receipt can land on one that lags. Poll until it agrees. +async function untilVisible(check, what) { + for (let i = 0; i < 30; i++) { if (await check()) return; await new Promise(r => setTimeout(r, 1000)); } + throw new Error(what + ' is not visible on the RPC 30 s after its receipt'); +} +export async function ensureCertificate(pub, wallet, d, index, checkpoint, bitmap = '0x', signature = '0x') { + const stubAbi = artifact('StubCertificateVerifier').abi; + const verifierAddr = await pub.readContract({ address: d.oracle.address, abi: artifact('IgneumStateOracle').abi, functionName: 'verifier' }); + const same = async () => (await pub.readContract({ address: verifierAddr, abi: stubAbi, functionName: 'finalCheckpoint', args: [index] })).toLowerCase() === checkpoint.toLowerCase(); + if (await same()) return { verifier: verifierAddr, already: true }; + const hash = await wallet.writeContract({ address: verifierAddr, abi: stubAbi, functionName: 'submitCertificate', args: [index, checkpoint, bitmap, signature] }); + const r = await pub.waitForTransactionReceipt({ hash, timeout: 180_000 }); + if (r.status !== 'success') throw new Error('submitCertificate reverted in ' + hash); + await untilVisible(same, 'certificate ' + index); + const out = { verifier: verifierAddr, tx: hash, block: Number(r.blockNumber), gasUsed: Number(r.gasUsed) }; + recordWrite({ what: 'submitCertificate', index: String(index), checkpoint, ...out }); + return out; +} +export async function ensureStateRoot(pub, wallet, d, v) { + const abi = artifact('IgneumStateOracle').abi; + try { + const [root] = await pub.readContract({ address: d.oracle.address, abi, functionName: 'stateRoot', args: [v.number] }); + if (root.toLowerCase() === hex0x(v.postRoot).toLowerCase()) return { already: true }; + } catch {} + const args = proofArgs(v); + const gas = await pub.estimateContractGas({ address: d.oracle.address, abi, functionName: 'submitStateRoot', args, account: wallet.account }); + const hash = await wallet.writeContract({ address: d.oracle.address, abi, functionName: 'submitStateRoot', args, gas: gas + gas / 5n }); + const r = await pub.waitForTransactionReceipt({ hash, timeout: 180_000 }); + if (r.status !== 'success') throw new Error('submitStateRoot reverted in ' + hash); + await untilVisible(async () => { try { const [root] = await pub.readContract({ address: d.oracle.address, abi, functionName: 'stateRoot', args: [v.number] }); return root.toLowerCase() === hex0x(v.postRoot).toLowerCase(); } catch { return false; } }, 'state root ' + v.number); + const out = { tx: hash, block: Number(r.blockNumber), gasUsed: Number(r.gasUsed), calldataBytes: args[1].reduce((a, h) => a + (h.length - 2) / 2, 0) + (args[2].length - 2) / 2, headers: args[1].length }; + recordWrite({ what: 'submitStateRoot', vector: v.kind, number: String(v.number), postRoot: hex0x(v.postRoot), certIndex: String(v.certIndex), ...out }); + return out; +} + +// ---- the balance fixture (the light service's /balance body, with the certificate beside it) ------------------- +// Accepts the flat /balance body, or {proof, certificate} / {balance, checkpoint} wrappers; the certificate's bitmap +// and signature come from the fixture when present, else from dn3-checkpoint.json when its index matches. +export function vectorFromBalanceFixture(fx) { + const p = fx.proof || fx.balance || fx; + let cert = fx.certificate || (p.checkpoint && p.checkpoint.certificate) || fx.checkpoint_certificate || null; + if (!cert) { try { const c = JSON.parse(readFileSync(path.join(fixtures, 'dn3-checkpoint.json'), 'utf8')); if (Number(c.index) === Number(p.checkpoint.index)) cert = c; } catch {} } + const c = cert && cert.certificate ? cert.certificate : cert || {}; + const records = segmentRecordsOf(hexToBytes(strip(p.carrier.coinbase.payload))); + const recordIndex = records.findIndex(r => bytesToHex(r.bytes) === strip(p.segment_record_hex)); + if (recordIndex < 0) throw new Error('the carrier coinbase carries ' + records.length + ' record(s), none is segment_record_hex'); + const st = records[recordIndex].statement; + const acct = p.account; + return { + kind: 'devnet-3', certIndex: BigInt(p.checkpoint.index), checkpoint: strip(p.checkpoint.hash), headers: p.headers, + bitmap: c.bitmap_hex ? '0x' + strip(c.bitmap_hex) : '0x', signature: c.aggregate_signature_hex ? '0x' + strip(c.aggregate_signature_hex) : '0x', + coinbase: p.carrier.coinbase, coinbaseBytes: serializeCoinbase(p.carrier.coinbase, p.carrier.amount_wire_len || 8), + leafIndex: Number(p.carrier.leaf_index), siblings: p.carrier.merkle_siblings.map(x => hexToBytes(strip(x))), recordIndex, + number: st.number, postRoot: hexToBytes(st.post_root), blockHash: hexToBytes(st.block_hash), evmChainId: Number(st.chain_id), + address: hexToBytes(strip(p.address)), balance: BigInt(acct.balance), nonce: BigInt(acct.nonce || 0), accountProof: acct.accountProof.map(x => hexToBytes(strip(x))), + reportedStateRoot: acct.stateRoot ? strip(acct.stateRoot) : null, reportedBlock: acct.blockNumber != null ? Number(acct.blockNumber) : null, + storageProofs: (acct.storageProof || []).map(sp => ({ slot: hexToBytes(strip(sp.key).padStart(64, '0')), value: BigInt(sp.value), proof: sp.proof.map(x => hexToBytes(strip(x))) })), + }; +} + diff --git a/tools/reference-apps/oracle/package-lock.json b/tools/reference-apps/oracle/package-lock.json new file mode 100644 index 000000000..bdd12819a --- /dev/null +++ b/tools/reference-apps/oracle/package-lock.json @@ -0,0 +1,381 @@ +{ + "name": "igneum-state-oracle", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "igneum-state-oracle", + "version": "0.1.0", + "dependencies": { + "@noble/hashes": "2.4.0", + "solc": "0.8.28", + "viem": "^2.21.0" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz", + "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==", + "license": "MIT" + }, + "node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", + "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.4.0.tgz", + "integrity": "sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", + "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/abitype": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz", + "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3.22.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.1.tgz", + "integrity": "sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/isows": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz", + "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ox": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.14.54.tgz", + "integrity": "sha512-52PGH6ldJmWY9+iy/TBSJUsCSy5NmLvkVBYTINmO8srsjRrCmCdO575kGizmZ1jpNQ1gnlpVwiciIpU37fcULA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.11.0", + "@noble/ciphers": "^1.3.0", + "@noble/curves": "1.9.1", + "@noble/hashes": "^1.8.0", + "@scure/bip32": "^1.7.0", + "@scure/bip39": "^1.6.0", + "abitype": "^1.2.3", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/ox/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solc": { + "version": "0.8.28", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.28.tgz", + "integrity": "sha512-AFCiJ+b4RosyyNhnfdVH4ZR1+TxiL91iluPjw0EJslIu4LXGM9NYqi2z5y8TqochC4tcH9QsHfwWhOIC9jPDKA==", + "license": "MIT", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/viem": { + "version": "2.57.4", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.57.4.tgz", + "integrity": "sha512-ro+8AKrcGU6tPfou0gBRYv6bxnU3tPxxJGY4qpJwjiR40eHCWzeGhrAgYMlIncFtlnry2/yGjz57WOC67oshCQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.9.1", + "@noble/hashes": "1.8.0", + "@scure/bip32": "1.7.0", + "@scure/bip39": "1.6.0", + "abitype": "1.2.3", + "isows": "1.0.7", + "ox": "0.14.54", + "ws": "8.21.0" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/viem/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/tools/reference-apps/oracle/package.json b/tools/reference-apps/oracle/package.json new file mode 100644 index 000000000..1f91a53ad --- /dev/null +++ b/tools/reference-apps/oracle/package.json @@ -0,0 +1,9 @@ +{ + "name": "igneum-state-oracle", + "version": "0.1.0", + "private": true, + "type": "module", + "description": "Igneum reference apps: the Devnet 3 state oracle on Sepolia (contracts, deploy, demo, tests)", + "scripts": { "compile": "node compile.mjs", "deploy": "node deploy.mjs", "demo": "node demo.mjs", "test": "node test.mjs" }, + "dependencies": { "@noble/hashes": "2.4.0", "solc": "0.8.28", "viem": "^2.21.0" } +} diff --git a/tools/reference-apps/oracle/test.mjs b/tools/reference-apps/oracle/test.mjs new file mode 100644 index 000000000..c73766207 --- /dev/null +++ b/tools/reference-apps/oracle/test.mjs @@ -0,0 +1,124 @@ +// The oracle's tests against Sepolia. Every negative runs through eth_call (no gas). The only transactions are the +// one-time stub certificate for the synthetic vector and its submitStateRoot, skipped when already on chain. +// Part A: the receipt fixture (real Devnet 3 headers, a real merkle path with an EVM transaction leaf) +// Part B: the synthetic vector (segment record, coinbase, two-header path, MPT account and storage proofs) +// Part C: the balance fixture when it exists (real segment record and eth_getProof) +import { readFileSync, existsSync } from 'node:fs'; +import * as L from './lib.mjs'; + +const d = L.deployment(); +const pub = L.publicClient(); +const abi = L.artifact('IgneumStateOracle').abi; +const oracle = d.oracle.address; +const read = (functionName, args) => pub.readContract({ address: oracle, abi, functionName, args }); +let pass = 0, fail = 0; +const ok = (name, cond, detail = '') => { cond ? pass++ : fail++; console.log((cond ? 'PASS ' : 'FAIL ') + name + (detail ? ' (' + detail + ')' : '')); }; +async function expectRevert(name, fn, want) { + try { await fn(); ok(name, false, 'did not revert'); } + catch (e) { const r = L.reasonOf(e); ok(name, !want || r.includes(want), 'reverted: ' + r); } +} +const clone = x => JSON.parse(JSON.stringify(x)); +const flipByte = (hex, i) => { const b = L.hexToBytes(L.strip(hex)); b[i] ^= 0x01; return L.hex0x(b); }; +console.log(L.ukTime(), 'UK oracle', oracle, 'verifier', await read('verifier')); + +// ---- Part A: the receipt fixture -------------------------------------------------------------------------------- +const f = JSON.parse(readFileSync(L.fixtures + '/dn3-receipt.json')); +const H = f.headers.map(h => L.hex0x(L.serializeHeader(h))); +const cp = '0x' + L.strip(f.checkpoint.hash); +{ + let same = 0; + for (let i = 0; i < H.length; i += 8) { + const got = await Promise.all(H.slice(i, i + 8).map(h => read('headerHash', [h]))); + got.forEach((g, k) => { if (L.strip(g) === f.headers[i + k].hash) same++; }); + } + ok('A1 headerHash on chain matches all fixture headers', same === H.length, same + ' of ' + H.length); + const [carrier, merkle] = await read('checkHeaderPath', [H, cp]); + ok('A2 checkHeaderPath accepts the 62-header path to checkpoint ' + f.checkpoint.index, L.strip(carrier) === f.headers[0].hash && L.strip(merkle) === f.headers[0].hash_merkle_root); + console.log(' gas estimate for the view', await pub.estimateContractGas({ address: oracle, abi, functionName: 'checkHeaderPath', args: [H, cp], account: d.deployer })); + await expectRevert('A3 a header removed from the path', () => read('checkHeaderPath', [H.filter((_, i) => i !== 30), cp]), 'does not name the previous one'); + const altered = clone(f.headers[5]); altered.nonce = String(BigInt(altered.nonce) + 1n); + await expectRevert('A4 a header with its nonce altered', () => read('checkHeaderPath', [H.map((h, i) => (i === 5 ? L.hex0x(L.serializeHeader(altered)) : h)), cp]), 'does not name the previous one'); + await expectRevert('A5 the right path to the wrong checkpoint', () => read('checkHeaderPath', [H, flipByte(cp, 0)]), 'not the certified checkpoint'); + await expectRevert('A6 the path reversed', () => read('checkHeaderPath', [H.slice().reverse(), cp]), 'does not name the previous one'); + const ib = f.including_block; const sib = ib.merkle_siblings.map(s => '0x' + s); + const root = await read('merkleRoot', ['0x' + f.tx_hash, BigInt(ib.leaf_index), sib]); + ok('A7 merkleRoot reaches hash_merkle_root (leaf ' + ib.leaf_index + ' of ' + ib.leaf_count + ')', L.strip(root) === f.headers[0].hash_merkle_root); + const root2 = await read('merkleRoot', ['0x' + f.tx_hash, BigInt(ib.leaf_index), sib.map((s, i) => (i === 2 ? flipByte(s, 3) : s))]); + ok('A8 a sibling altered gives another root', L.strip(root2) !== f.headers[0].hash_merkle_root); + const root3 = await read('merkleRoot', ['0x' + f.tx_hash, BigInt(ib.leaf_index ^ 1), sib]); + ok('A9 the wrong leaf index gives another root', L.strip(root3) !== f.headers[0].hash_merkle_root); + await expectRevert('A10 a leaf index beyond the path', () => read('merkleRoot', ['0x' + f.tx_hash, 1n << 40n, sib]), 'beyond the path'); + ok('A11 keccak of the raw transaction is the leaf', L.bytesToHex(L.keccak_256(L.hexToBytes(f.raw_tx_hex))) === f.tx_hash); +} + +// ---- Part B: the synthetic vector ----------------------------------------------------------------------------- +const S = L.buildSynthetic(); +const wallet = L.walletClient(L.deployerAccount()); +{ + const c = await L.ensureCertificate(pub, wallet, d, S.certIndex, L.hex0x(L.hexToBytes(S.checkpoint))); + console.log(' stub certificate', S.certIndex, c.already ? 'already recorded' : 'recorded in ' + c.tx + ' block ' + c.block + ' gas ' + c.gasUsed); + const args = L.proofArgs(S); + const [number, postRoot, blockHash] = await read('verifyStateRoot', args); + ok('B1 verifyStateRoot accepts the synthetic proof', number === S.number && L.strip(postRoot) === L.bytesToHex(S.postRoot) && L.strip(blockHash) === L.bytesToHex(S.blockHash), 'block ' + number + ' post_root ' + postRoot.slice(0, 14)); + console.log(' gas estimate for the view', await pub.estimateContractGas({ address: oracle, abi, functionName: 'verifyStateRoot', args, account: d.deployer })); + const withArgs = (patch) => { const a = args.slice(); patch(a); return read('verifyStateRoot', a); }; + await expectRevert('B2 a certificate index the verifier does not hold', () => withArgs(a => { a[0] = 9999n; }), 'no certificate'); + await expectRevert('B3 the middle header removed', () => withArgs(a => { a[1] = [a[1][0], a[1][2]]; }), 'does not name the previous one'); + const carrierAltered = clone(S.headers[0]); carrierAltered.nonce = '1'; + await expectRevert('B4 the carrier header with its nonce altered', () => withArgs(a => { a[1] = [L.hex0x(L.serializeHeader(carrierAltered)), a[1][1], a[1][2]]; }), 'does not name the previous one'); + const topAltered = clone(S.headers[2]); topAltered.timestamp = String(BigInt(topAltered.timestamp) + 1n); + await expectRevert('B5 the checkpoint header altered', () => withArgs(a => { a[1] = [a[1][0], a[1][1], L.hex0x(L.serializeHeader(topAltered))]; }), 'not the certified checkpoint'); + await expectRevert('B6 a merkle sibling altered', () => withArgs(a => { a[4] = [flipByte(a[4][0], 0), a[4][1]]; }), 'hash_merkle_root'); + await expectRevert('B7 the wrong leaf index', () => withArgs(a => { a[3] = 1n; }), 'hash_merkle_root'); + const cb = L.hexToBytes(L.strip(args[2])); + const postRootOff = (() => { const want = L.bytesToHex(S.postRoot); const h = L.bytesToHex(cb); return h.indexOf(want) / 2; })(); + const tampered = cb.slice(); tampered[postRootOff + 5] ^= 0xff; + await expectRevert('B8 the record\'s post_root altered inside the coinbase (offset ' + postRootOff + ')', () => withArgs(a => { a[2] = L.hex0x(tampered); }), 'hash_merkle_root'); + await expectRevert('B9 a record index beyond the IGNS section', () => withArgs(a => { a[5] = 1n; }), 'beyond the section'); + const tamperedNumber = cb.slice(); tamperedNumber[postRootOff - 148 + 8 + 7] ^= 0x01; + await expectRevert('B10 the statement number altered', () => withArgs(a => { a[2] = L.hex0x(tamperedNumber); }), 'hash_merkle_root'); + const r = await L.ensureStateRoot(pub, wallet, d, S); + console.log(' synthetic root for block', S.number, r.already ? 'already stored' : 'stored in ' + r.tx + ' block ' + r.block + ' gas ' + r.gasUsed + ' calldata ' + r.calldataBytes + ' bytes'); + const [root, bh, carrier, certIndex] = await read('stateRoot', [S.number]); + ok('B11 stateRoot stored', L.strip(root) === L.bytesToHex(S.postRoot) && certIndex === S.certIndex && L.strip(carrier) === S.headers[0].hash); + const addr = L.hex0x(S.address); const ap = S.accountProof.map(L.hex0x); + const bal = await read('provenBalance', [S.number, addr, ap]); + ok('B12 provenBalance returns the trie balance', bal === S.account.balance, bal + ' wei'); + console.log(' gas estimate for provenBalance', await pub.estimateContractGas({ address: oracle, abi, functionName: 'provenBalance', args: [S.number, addr, ap], account: d.deployer })); + const acct = await read('provenAccount', [S.number, addr, ap]); + ok('B13 provenAccount nonce, storage root and code hash', acct[0] === true && acct[1] === 7n && L.strip(acct[3]) === S.account.storageRoot && L.strip(acct[4]) === S.account.codeHash); + for (const s of S.slots) { + const v = await read('provenStorage', [S.number, addr, L.hex0x(s.slot), ap, s.proof.map(L.hex0x)]); + ok('B14 provenStorage slot ' + s.slot[31], L.strip(v).replace(/^0+/, '') === L.bytesToHex(s.value).replace(/^0+/, ''), v); + } + const absent = await read('provenStorage', [S.number, addr, L.hex0x(S.absent.slot), ap, S.absent.proof.map(L.hex0x)]); + ok('B15 provenStorage of an unset slot reads zero (exclusion proof)', BigInt(absent) === 0n); + await expectRevert('B16 a flipped byte in the account proof\'s last node', () => read('provenBalance', [S.number, addr, ap.map((n, i) => (i === ap.length - 1 ? flipByte(n, 10) : n))]), 'mpt'); + await expectRevert('B17 a flipped byte in the root node', () => read('provenBalance', [S.number, addr, ap.map((n, i) => (i === 0 ? flipByte(n, 40) : n))]), 'not the root'); + await expectRevert('B18 the wrong block number', () => read('provenBalance', [S.number + 1n, addr, ap]), 'no proven root'); + await expectRevert('B19 the proof with its nodes reordered', () => read('provenBalance', [S.number, addr, ap.slice().reverse()]), 'not the root'); + await expectRevert('B20 a storage proof with a flipped node', () => read('provenStorage', [S.number, addr, L.hex0x(S.slots[0].slot), ap, S.slots[0].proof.map((n, i) => (i === 1 ? flipByte(L.hex0x(n), 5) : L.hex0x(n)))]), 'mpt'); + await expectRevert('B21 the account proof used as a storage proof', () => read('provenStorage', [S.number, addr, L.hex0x(S.slots[0].slot), ap, ap]), 'not the root'); + const other = L.hex0x(L.seeded(99)(20)); + await expectRevert('B22 another address under this account proof', () => read('provenBalance', [S.number, other, ap]), 'mpt'); +} + +// ---- Part C: the balance fixture ------------------------------------------------------------------------------ +if (existsSync(L.fixtures + '/dn3-balance.json')) { + const V = L.vectorFromBalanceFixture(JSON.parse(readFileSync(L.fixtures + '/dn3-balance.json'))); + const c = await L.ensureCertificate(pub, wallet, d, V.certIndex, L.hex0x(L.hexToBytes(V.checkpoint)), V.bitmap, V.signature); + console.log(' certificate', V.certIndex, c.already ? 'already recorded' : 'recorded in ' + c.tx); + const args = L.proofArgs(V); + const [number, postRoot] = await read('verifyStateRoot', args); + ok('C1 verifyStateRoot accepts the real Devnet 3 proof', number === V.number && L.strip(postRoot) === L.bytesToHex(V.postRoot), 'block ' + number); + const r = await L.ensureStateRoot(pub, wallet, d, V); + console.log(' real root for block', V.number, r.already ? 'already stored' : 'stored in ' + r.tx + ' gas ' + r.gasUsed); + const bal = await read('provenBalance', [V.number, L.hex0x(V.address), V.accountProof.map(L.hex0x)]); + ok('C2 provenBalance equals the node\'s eth_getProof balance', bal === V.balance, bal + ' wei'); + await expectRevert('C3 a flipped byte in the real account proof', () => read('provenBalance', [V.number, L.hex0x(V.address), V.accountProof.map((n, i) => (i === V.accountProof.length - 1 ? flipByte(L.hex0x(n), 10) : L.hex0x(n)))]), 'mpt'); + await expectRevert('C4 the real path with a header removed', () => read('verifyStateRoot', [args[0], args[1].filter((_, i) => i !== 1), ...args.slice(2)]), 'does not name'); +} else { + console.log(' Part C skipped: fixtures/dn3-balance.json is not there yet'); +} +console.log(L.ukTime(), 'UK', pass, 'passed,', fail, 'failed'); +process.exit(fail ? 1 : 0); From 19ded5975149dcdbe0aee33afe080ae8c71aa6f8 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:45:37 +0000 Subject: [PATCH 07/11] Reference apps: the balance proof answers with the earliest certificate above the carrier (the certificate travels in the answer), the real Devnet 3 balance fixture (26631, 97 KB) and its negative cases under Node; the oracle's first real root on Sepolia (block 26631, 404,376 gas, 41 cases pass); the account object captured in the balance verifier Co-Authored-By: Claude Fable 5.1 --- site/lc/app.js | 2 ++ site/lc/core.js | 4 ++- site/lc/test.html | 3 +- site/oracle.html | 1 + .../reference-apps/fixtures/dn3-balance.json | 1 + tools/reference-apps/light-service/serve.mjs | 12 +++++-- .../light-service/verify.test.mjs | 4 +-- tools/reference-apps/oracle/deployment.json | 36 +++++++++++++++++++ tools/reference-apps/oracle/test.mjs | 7 +++- 9 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 tools/reference-apps/fixtures/dn3-balance.json diff --git a/site/lc/app.js b/site/lc/app.js index 419028950..6aee3da9e 100644 --- a/site/lc/app.js +++ b/site/lc/app.js @@ -42,6 +42,8 @@ export async function runLight(address) { const cp = await getJson(`${API}/checkpoint`); setStatus(`checkpoint ${cp.index} fetched; fetching the proof for ${short(address)}…`, 'busy'); const proof = await getJson(`${API}/balance?address=${address}&checkpoint=${cp.hash}&index=${cp.index}`); + // the service may answer with an earlier certificate (the first checkpoint above the carrier: the smallest proof); verified like any other + if (proof.checkpoint_certificate) { Object.assign(cp, proof.checkpoint_certificate); } setStatus('verifying in this tab…', 'busy'); await new Promise(r => setTimeout(r, 20)); // known-failed first: the same proof with one byte of the last account-proof node altered diff --git a/site/lc/core.js b/site/lc/core.js index 59c27c2a5..63cd27bfe 100644 --- a/site/lc/core.js +++ b/site/lc/core.js @@ -307,10 +307,12 @@ export function verifyBalance(cp, proof, deps) { if (!ids.includes(Number(st.chain_id))) throw new Error(`statement chain id ${st.chain_id} is not ${cp.chain_id}'s (${ids.join(' or ')})`); return `EVM chain id ${st.chain_id}, chain block ${st.number}, post_root ${st.post_root.slice(0, 12)}, ${st.executed} executed, chain_len ${st.chain_len}`; }); - const acct = step('account proof under post_root (keccak-keyed Merkle Patricia trie, every node hashed)', () => { + let acct = null; + step('account proof under post_root (keccak-keyed Merkle Patricia trie, every node hashed)', () => { if (Number(proof.account.blockNumber) !== Number(st.number)) throw new Error('the account proof is for another block than the statement'); if (strip(proof.account.stateRoot) !== st.post_root) throw new Error('the node\'s state root is not the proven post_root'); const a = verifyAccountProof(hexToBytes(st.post_root), proof.address, proof.account.accountProof, keccak); + acct = a; if (a.exists && a.balance !== BigInt(proof.account.balance)) throw new Error('the proven balance is not the balance the node reported'); if (!a.exists && BigInt(proof.account.balance) !== 0n) throw new Error('the node reports a balance for an account the trie does not hold'); return `${proof.account.accountProof.length} nodes, ${a.exists ? 'account present' : 'account absent (exclusion proof)'}`; diff --git a/site/lc/test.html b/site/lc/test.html index 88a1cc1f1..b16045e1b 100644 --- a/site/lc/test.html +++ b/site/lc/test.html @@ -60,6 +60,7 @@ try { if (!address) { const b = await rpc('eth_getBlockByNumber', ['latest', false]); address = b.igneum.rewards[0].miner; } let proof = null; try { proof = await get(`${API}/balance?address=${address}&checkpoint=${cp.hash}&index=${cp.index}`); } catch (e) { document.querySelector('#b tbody').innerHTML = `balance proof not available: ${e.message}`; } + if (proof && proof.checkpoint_certificate) Object.assign(cp, proof.checkpoint_certificate); if (proof) { const B = [ ['account proof: a node altered', d => { const i = d.account.accountProof.length - 1; d.account.accountProof[i] = flipHex(d.account.accountProof[i], 30); }], @@ -68,7 +69,7 @@ try { ['post_root altered inside the segment record', d => { d.segment_record_hex = flipHex(d.segment_record_hex, 2 * (2 + 8 + 8 + 32 + 48 + 20 + 148) + 3); }], ['aggregator signature altered', d => { d.segment_record_hex = flipHex(d.segment_record_hex, d.segment_record_hex.length - 10); }], ['coinbase payload altered', d => { d.carrier.coinbase.payload = flipHex(d.carrier.coinbase.payload, 30); }], - ['a merkle sibling altered', d => { d.carrier.merkle_siblings[0] = flipHex(d.carrier.merkle_siblings[0], 1); }], + ['a merkle sibling altered (or added to a one-leaf body)', d => { if (d.carrier.merkle_siblings.length) d.carrier.merkle_siblings[0] = flipHex(d.carrier.merkle_siblings[0], 1); else d.carrier.merkle_siblings.push('00'.repeat(32)); }], ['a header removed from the path', d => { if (d.headers.length > 2) d.headers.splice(1, 1); else d.headers[0].nonce = String(BigInt(d.headers[0].nonce) ^ 1n); }], ['another address with this proof', d => { d.address = '0x' + '11'.repeat(20); }], ]; diff --git a/site/oracle.html b/site/oracle.html index 263d9ca55..b43f35546 100644 --- a/site/oracle.html +++ b/site/oracle.html @@ -239,6 +239,7 @@
Oracle
0xefe9879de29c401eeff195d5bf71c86b9caaa1b2 IgneumStateOracle, deployed 8 October 2026 (tx 0xb8650f5b…d644, block 11869608)
Verifier
0xa197ef31d5d5613125779179668e2482ac69a6f6 StubCertificateVerifier, the stand-in: it records any well-formed certificate and does not check the BLS signature; the shared IgneumCertificateVerifier replaces it through setVerifier the day it lands
Chain
Sepolia, chain id 11155111; Devnet 3 (igneum-devnet-3), no value
+
First proven root
Devnet 3 chain block 26631, post_root 0xf567a84f…a82fd, stored 8 October 2026 (tx 0xf360e54c…224b, 404,376 gas); provenBalance read 92.029323 IGN for 0x636de2dc…44ea on Sepolia, equal to the Devnet 3 node's eth_getProof

How to read a balance from another contract: IIgneumStateOracle(oracle).provenBalance(number, account, accountProof), where number is a Devnet 3 chain block whose state root the oracle holds and accountProof is the eth_getProof account proof at that block. A storage slot: provenStorage(number, account, slot, accountProof, storageProof). Both revert on any mismatch.

diff --git a/tools/reference-apps/fixtures/dn3-balance.json b/tools/reference-apps/fixtures/dn3-balance.json new file mode 100644 index 000000000..e28def498 --- /dev/null +++ b/tools/reference-apps/fixtures/dn3-balance.json @@ -0,0 +1 @@ +{"ok":true,"now":"2026-10-08T10:44:02.853Z","chain_id":"igneum-devnet-3","address":"0x636de2dcf1dd0c5f955438d569390f0c7cc944ea","checkpoint":{"hash":"bbf3757d7f7bd6b718affcb9f2e15f59da55f7129d6885d7e26d40dd9ea1d934","index":2060,"chain_block":26839},"checkpoint_certificate":{"ok":true,"source":"dn3","network":"igneum-devnet-3","chain_id":"igneum-devnet-3","index":2060,"hash":"bbf3757d7f7bd6b718affcb9f2e15f59da55f7129d6885d7e26d40dd9ea1d934","blue_score":61800,"daa_score":62113,"certificate":{"bytes_hex":"0c08000000000000bbf3757d7f7bd6b718affcb9f2e15f59da55f7129d6885d7e26d40dd9ea1d9341d000000040000008de5e4198053c9181f8421220ee05e14f5726cea96846497bd0bf3b621dc37e2218d080f431f0a6bde4e817a2889c158fe7853031432265dc68c8eee5d7c91de276227de331823df5fab2f32d66a72571e3d376bc75b5903630c1e42c156ab42b7db4c2b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","voter_count":29,"bitmap_hex":"8de5e419","aggregate_signature_hex":"8053c9181f8421220ee05e14f5726cea96846497bd0bf3b621dc37e2218d080f431f0a6bde4e817a2889c158fe7853031432265dc68c8eee5d7c91de276227de331823df5fab2f32d66a72571e3d376bc75b5903630c1e42c156ab42b7db4c2b","aggregator":"0000000000000000000000000000000000000000000000000000000000000000","aggregator_proof_hex":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","carrier":"096eded4cf85ec57ada7998c2d6be37b4fad27e61865e67ccb5e2420e100c438"},"voters":[{"pubkey_hex":"9928c2b0b675e2c4e229872361dca13ccbe10c729999742afabaad4e7c1c37021e26db63bfd995fee85dcb2956e5d40e","weight":402,"participation":0.9},{"pubkey_hex":"86d4055487dad49b54a9a917ce9e3ccc40cbdcc02e871f06581ec30b5f00b8e723a7095473e05659bbc2a312acaacd55","weight":127,"participation":0.95},{"pubkey_hex":"918f8ffa2d4bb5c0976e61773bb9f5d2eec563faf265c8816e728e50a25ef974027ccd24ceac52daf7a39c9ce09d646b","weight":437,"participation":0.95},{"pubkey_hex":"a91a322e77979252dd93135f67c5dac4b3c410c986b82d652d76af4df50ac3147b7617f8c9b06d8def3a2e0bb18c9dfb","weight":160,"participation":1},{"pubkey_hex":"8fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f79","weight":198,"participation":0.95},{"pubkey_hex":"847b27c67fc39952d872c1fdb735c2c90fe390535f95b62d888190da51911967ef2dd7f7ff6f0ba26da0afd1aba9b0bd","weight":193,"participation":0.95},{"pubkey_hex":"ab0e69ce66b7bd1390afcdda40957712f20bcf703d14e1a33590f4040c8e4a52426428d3e14eb86f13f3f18cd29d90b8","weight":108,"participation":0.95},{"pubkey_hex":"b9aa12603d7eb40358ba4a749601c788f5cd160499734166bf517157762f7b87709fa0036123b04fdf16d0ff6cd843d0","weight":137,"participation":1},{"pubkey_hex":"a51fd976484399e2fbbe056d6edffac5746c835c42d7370f18d54a422ad1b6b9c77dec59cb5fdf29650227677befa29e","weight":293,"participation":1},{"pubkey_hex":"a7d1712d7c632f78233d0e88e437cf34d32b91685aa4a0a035649b8edcbf4255818e7d9366f26ef7668f02eb60c1eedf","weight":240,"participation":0.95},{"pubkey_hex":"af9c8c9e98d1faf0a141fbfb3cd20fd24a22d26e62d57b2dbee1ab2c734565f40c02c659d302e9ec3c34b7624626dd8b","weight":227,"participation":1},{"pubkey_hex":"a5e9f7ad42098dad804afc3b7b111d21fb7fd3ac907ed8858e24fb6acc07b22334607265be343f8ecb2e4ac86bd04040","weight":93,"participation":0},{"pubkey_hex":"91dc73280dde5971f9acbe49a39e0fd0268f9b79c488e4ee765bb11f90928bbd13ddcad19d7e316c6f2bad1393ed0329","weight":68,"participation":0.95},{"pubkey_hex":"964fb61b48ff085dd22fe3725fbce47af51ba5e8f466b4ef7ccf8beb5def296e669ad13f8b19c93709ab0f25ad7bbb98","weight":251,"participation":1},{"pubkey_hex":"a5c164cafce7f7d3c94f8209610f4fbdb799b4e4a8670acc151633ca66ec5dc0f8b206f605f66da396f4f86abb9a0367","weight":442,"participation":1},{"pubkey_hex":"a29b0b504f24de7e18c95da6541cc3404264f66fe3cc84cd5cd3f429d62fdc960702bb94142204baffc6ee849b2775b4","weight":360,"participation":0.8},{"pubkey_hex":"adf46d528e5d15b653cc8171bd1b5a3f5e7c2e90490964d345753dc50781ac62805c5e90e1dc928c76bf386fe18f1963","weight":114,"participation":0.8},{"pubkey_hex":"b9b9b078f2d6a03b0a3e6c395edd5fdaf73532e5b41e5d9fb9a4cbe29e7903b772a0d9ad133d7d22f60dac38cde0e62a","weight":143,"participation":0.95},{"pubkey_hex":"b273366b48f4de898b7a5454236f99c4ca160b5160fc758652b50e7d8aa17c15d012a7763c1b7a8a489011c40d73016e","weight":231,"participation":1},{"pubkey_hex":"9825a3571f08e4c7125eb27a2e39409f56c446015f2cd12f84428048eb38630ce50fee44ee0d084d77054d275654e1b7","weight":825,"participation":0.9},{"pubkey_hex":"8d059b79cbd4bc995da4d927ce07af9796c36fde60b6f61f4eb620f15302b3df1619d7ecbee92391a5a183d859cb0634","weight":51,"participation":0},{"pubkey_hex":"a81c2107b52192dc4844a859cf893e0e0546109105349a9959299285351d07de69c98ac210d81159991f00476a639f49","weight":309,"participation":1},{"pubkey_hex":"a656a841f22beb6c94b5ee03bcdcafd99d00fbb23fea7d5fc9048d5ebb731324188a88827e0fff3c3ad39a8445bf3789","weight":156,"participation":0.9},{"pubkey_hex":"a1a0b8b7eb79cd45bbfc1db1d44d94bcc3ceb683b2b4e2e2617b0d451eae58c14435b9627da281e0ea69591dbe8aad6f","weight":127,"participation":0.95},{"pubkey_hex":"ad7a53e9f2d5269aa1ef8e66adb7ae1e0d1042735786e0f1b0b88985131b8da4fdf769fd5a3ca6e8f0984a1da710ffdd","weight":318,"participation":0.95},{"pubkey_hex":"8665f209eb05ab653a144a3a5682dd1400a81ddac1bcc3fcee47d6b7db83754fe00531f2ffd710fa3a5353dd34fcc5f2","weight":140,"participation":0.9},{"pubkey_hex":"832a731927366ec7f43f33efaad01f859bf21d69b30c7a645772ecde382a50680fa03ceac4d325fea6c8506af7917cc8","weight":86,"participation":0.85},{"pubkey_hex":"aedc45a38203c1fed00b520084b17f8239c6894bfd593bb2c94613f6b0177b7d530773536805f2e723d46fd3535b6dd0","weight":506,"participation":1},{"pubkey_hex":"9132e86d8eedf6956cb7a1c57a3e0d830d0cdc2bd07fa7b4fe5ab8c8850ee8960a549b74b3c22c268077b8d94dbf410b","weight":447,"participation":1}],"voters_at_index":2061,"total_weight":7189,"active_weight":6687.05,"previous":{"index":2059,"hash":"b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7"},"headers":[{"hash":"b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","version":1538,"parents_by_level":[["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0","ae4364811ddb754c729e0e85caeac46c9eb30d777f752f091429940c0953fe9b","4fc70816476eee3c92614252cf698af7f9e4ea9855d2fd108931d82acbb6bb8e"],["69dc346a830fb70b6ec238ce2e34d3395e98b934f35fb53d0e217bde04e470ff","4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0"],["4de0ad9b3d2fffd812377d9b9c0bee57b291d36306952f36bb136bbc76ba0db0"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["f29e694a22cb3521e083e2b365cd555363e7c98a1803b6746597881b0d97bab8"],["a07b8e77217b04d28a20b6952298c1d0c20a4e3b45e8a40190cbfb11e862a284"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"4388e602ea9791c48a33e89071b1ef9a417b001b8f03a76348cd9f7f98689b33","accepted_id_merkle_root":"4b5bca18a76b5bc8cdf7d10a747a36fff8b7ed6419a00521e3fda8ee4b15240c","utxo_commitment":"37f83121c01cc35cac830548c111cabd3427faa43fa113fa9e752cbd64658750","timestamp":"1791453994882","bits":486806675,"nonce":"11462428008276258949","daa_score":"62085","blue_work":"000000000000000000000000000000000000207787cbf171","blue_score":"61772","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"},{"hash":"73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd","version":1538,"parents_by_level":[["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","5508b0be152e288952ca12aec7e3160c65ca83d30d91ad80430b03c785e7a028","bd1274f8a75811af800867a35a3b85fe57781809f403aa8fa115f138855be804"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","b98da63c2f463c890a9a036ec9ac8d00d3534a4d955516a8a37169d2bc12c80d"],["b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7","b98da63c2f463c890a9a036ec9ac8d00d3534a4d955516a8a37169d2bc12c80d"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["f29e694a22cb3521e083e2b365cd555363e7c98a1803b6746597881b0d97bab8"],["a07b8e77217b04d28a20b6952298c1d0c20a4e3b45e8a40190cbfb11e862a284"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"647bf219f9dc9389b434f54a38bd42dfbed98098a3689e1d31166852f50029ce","accepted_id_merkle_root":"7605b58fe4f4d7f04355a965471f3436f89939d7c2b9a0706dd96c4d39103ea2","utxo_commitment":"176658092519fe902bba858fcac7e7418b66657ba96c52825444c1ba15d46823","timestamp":"1791453996969","bits":486805249,"nonce":"17225349151044383654","daa_score":"62089","blue_work":"0000000000000000000000000000000000002078835b0905","blue_score":"61776","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"4f342bdd527c7f7c291df6816da57c3b19b0920a4604b9eb90a4915ffed88418"},{"hash":"b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca","version":1538,"parents_by_level":[["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["f29e694a22cb3521e083e2b365cd555363e7c98a1803b6746597881b0d97bab8"],["a07b8e77217b04d28a20b6952298c1d0c20a4e3b45e8a40190cbfb11e862a284"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"21bc6a512dbbc293b2eec5103b2195a914c734d4bb24f9eefff698956992c0b9","accepted_id_merkle_root":"9ab9a8cbd244bfa211a04829f0a35986b7ad9433de81748671d54a2b4d95990b","utxo_commitment":"9a9a88951d31992064530f61ddf9ec3009b9cb68e6b16714c2f2f728030b5e66","timestamp":"1791453998460","bits":486804680,"nonce":"13089525653391524476","daa_score":"62090","blue_work":"0000000000000000000000000000000000002078c26e707c","blue_score":"61777","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","version":1538,"parents_by_level":[["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["b446647b661663273579a8486b93e04559868b643eaed1024c0ae924f225c2ca"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["f29e694a22cb3521e083e2b365cd555363e7c98a1803b6746597881b0d97bab8"],["a07b8e77217b04d28a20b6952298c1d0c20a4e3b45e8a40190cbfb11e862a284"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"88f6476fbe7e1a0596336898a48b8b223e00d7c0eb82b9b263905a497e3a3349","accepted_id_merkle_root":"139df40e80410fc1e713f500a19fc94a3e21906a5e5a3e9d82b9e9fbf9226dfa","utxo_commitment":"9f2f44b142b24e34a6c9f047073c3b4edb501f842c063e1d092ba4b78e09a0af","timestamp":"1791454000899","bits":486803902,"nonce":"17929604323076270103","daa_score":"62091","blue_work":"000000000000000000000000000000000000207901a475de","blue_score":"61778","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","version":1538,"parents_by_level":[["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3","59c0a0818354237c33fa05d086494d27b81ed5038bd43eac6c5c5eda83d895f4"],["6194dfee45174b0ebcf8762abd1f87ea3426edf5d98fe59ffcdf2b3d0a662de3"],["73629bb0d62477f3591321c4dbe352ccca389af3b12ccdde03ebada5eb9d11dd"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["f29e694a22cb3521e083e2b365cd555363e7c98a1803b6746597881b0d97bab8"],["a07b8e77217b04d28a20b6952298c1d0c20a4e3b45e8a40190cbfb11e862a284"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"35eab5638bd6fbf8dcc572bbca34d5c87af81b523c541abd18c5fdb7b23440af","accepted_id_merkle_root":"2c155e4ad3457bf82de384b269dc13dcaa468ef10a30724241a9320c828282aa","utxo_commitment":"c3413acd6279c13dde9cfaccad2c0900bf60223d22200181993857a747cf6fd0","timestamp":"1791454003478","bits":486804506,"nonce":"1179891902067592279","daa_score":"62093","blue_work":"0000000000000000000000000000000000002079806fa5fe","blue_score":"61780","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"befb7dfaf9638375bb11f30f5f9446c465eac043adcc75d8428d2eb48d3636e2"},{"hash":"fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","version":1538,"parents_by_level":[["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6dcfde143bc10d9cc85fd8260b0b7d4a50cb0d99982c289cbc5f5cc85f1fccc5","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["f29e694a22cb3521e083e2b365cd555363e7c98a1803b6746597881b0d97bab8"],["a07b8e77217b04d28a20b6952298c1d0c20a4e3b45e8a40190cbfb11e862a284"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"32a580494acf3aa3505228933424a7af175bf30aa9396814a142b3ad58335320","accepted_id_merkle_root":"647c645ba406045dfed1f7fe49925307a84e7f51f10f52a7e4f9a3edcd8ef2c0","utxo_commitment":"7c6d21536d944d4aa173d460867d458bb77b887d76b598e942976575321890ed","timestamp":"1791454006790","bits":486805887,"nonce":"4381464441245316532","daa_score":"62096","blue_work":"000000000000000000000000000000000000207a3e318ed7","blue_score":"61783","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9148d90deb8d80e3d3e609b74b89a80e392d54aa0c7b2d9de0d72269058e9e60"},{"hash":"23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","version":1538,"parents_by_level":[["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["fec9308f640609ca1ce61a7251f9b9ea0d77e13de5979e82bb739d2d832525be","7b933d245a2a2ed0cd23e69ece6d7e1f46c2eaf12d373dbdfee38970fb074697","9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c"],["9ce36c90fbc251b2671b27ccdabcbe53cf7217ed73744983c10b69b0cafc8d1c","6d96a3462c48bcce97853b5fe0f11f11972a02558e6b4547f0a40cb2260a8507","474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["f29e694a22cb3521e083e2b365cd555363e7c98a1803b6746597881b0d97bab8"],["a07b8e77217b04d28a20b6952298c1d0c20a4e3b45e8a40190cbfb11e862a284"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"927f5952500a4aa0cedac063ca4eb35852011b78c2dd0b40a79414f3ada6b7b9","accepted_id_merkle_root":"e0d9267f910b711aff5b4fc48fab985d52e1666f67435ffbac8e969fca382e2c","utxo_commitment":"a9469c00ad6468a0e643c7b131fc9f7cd8452d67ad6b279dd3c1d6aed4f0d774","timestamp":"1791454009000","bits":486805926,"nonce":"539465553297445373","daa_score":"62099","blue_work":"000000000000000000000000000000000000207afb7f6503","blue_score":"61786","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"9e4ba6b015e668602b32a846aec20c057fb97adecdbe69759602682d8ce595a9"},{"hash":"e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","version":1538,"parents_by_level":[["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["23df0c742712d5077b7f525f376fd69399a6a20aa0173de65822b4913cb9b2b3","6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5","eb298c78a74abb26659c6cf26cdae2ac30840051fbc6ef04a7fdd424db41c9c3"],["6957091acf4224b34c93163b4d35604f159b0188b468365164b5abec916b9fe5"],["474c8ac13ded7944c6b5b2398ce4c07b028d3431d1cb2e750bec7c4cc9f52b2d"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["33661107e7e81356991706cf5c34cd7554f865afd52cda46f25fcfe4c5999450"],["f29e694a22cb3521e083e2b365cd555363e7c98a1803b6746597881b0d97bab8"],["a07b8e77217b04d28a20b6952298c1d0c20a4e3b45e8a40190cbfb11e862a284"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["d48cc709621e7f6719446330107bfa1e62486cd5d791a74f2f438f07160c1bbc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"e63a7df8e23d2adce67ddced5c4105d6d56f677ba4fbd3018dbeb2e4921ee070","accepted_id_merkle_root":"f61f09df5bb85462d61bb357321879948f7e7d94b56a2a193e1b09c956ef198e","utxo_commitment":"7103c659b0df1677bec9c6948a329570eaffe08d96cfdcb42c29cf0f242625f5","timestamp":"1791454010096","bits":486805678,"nonce":"17103917128381247544","daa_score":"62102","blue_work":"000000000000000000000000000000000000207bb874ffed","blue_score":"61789","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"c0df92ce37d8bcce334afdddc65b278949deb0a2383fbc10fe025111eef92ef8"},{"hash":"b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd","version":1538,"parents_by_level":[["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["e88019a9e96582b45e171ccf492d09b3bacd9014ff72cdfa868faf712fcc187d","53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5","e3e3f7c2fa1d889c3a0ddf71b1da1e78054b5fbfca594980456c6897d3bd8173"],["53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"04e5c4480638e9b9fbaef69e80692b6e3d9e38629b9106c720d5aef10c6cd210","accepted_id_merkle_root":"74a92135b8dbacb80fe287f2070878558d231b91dc515124d7454f9b3cb32b27","utxo_commitment":"24b5ca6251800f388e5ecd6092fa46e7371922c014dff8cf9b5bd388cf850212","timestamp":"1791454013178","bits":486803658,"nonce":"8026747646581540238","daa_score":"62106","blue_work":"000000000000000000000000000000000000207cb42cdfb6","blue_score":"61793","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"930c1087cb99a88517cbc8d147c7d3e9b175de57bd6a217ccb8c5fffa817b412"},{"hash":"8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","version":1538,"parents_by_level":[["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["b1790b3e619bf0cde720fdc8611851e9813026bc3619716029dcc41734deedcd"],["53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"2b8fc18b82a3a7cc6039e91146a8e11fb94594e1d3a833126d03078b294e47a6","accepted_id_merkle_root":"56a56d3358033c4eef9243d7fc179e4ceb257438171d972ed7d5c0b3d9e5b4d3","utxo_commitment":"10139d6437b86421e87444f130cf92112b20b535d522df74c7fdf67640d8b31d","timestamp":"1791454016450","bits":486803082,"nonce":"7398379169375797574","daa_score":"62107","blue_work":"000000000000000000000000000000000000207cf3a17212","blue_score":"61794","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"},{"hash":"71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","version":1538,"parents_by_level":[["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["8bc2cdec664254a1478fc048da2318f00e2fe7b0b8eee3f1f533308729a37658","30e9626c2463738f0c726a0e834734b69eb049810dddb5137a7f953a214dd223"],["53730c4cf654a8db696ca9ced3b04fd326bfc557bf64eb76b02860bf701dbeb7","b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"5bdef66de171be90505e15f303a0693b580212f8cc7b07c1956c5b3fb8bb32f3","accepted_id_merkle_root":"cc08e5688f5feffa0788c0c6648de5fb409944b93cac8c83374cbc08fa67b6b8","utxo_commitment":"e5016025059899c8fbe112c587bf34db8ae17a774b1e2c10564ff3f1b00c2c9c","timestamp":"1791454018231","bits":486804051,"nonce":"2260642446988476321","daa_score":"62109","blue_work":"000000000000000000000000000000000000207d72d185f8","blue_score":"61796","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"454508c142c31f7ad8e8af3cac03f8fbbff376a60b33b57376040674fd3ddb3f"},{"hash":"c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402","version":1538,"parents_by_level":[["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","9ef0b3319eb23f8a26591d859e2c86d1159548054d7c92388693deac304c33aa","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["71e65cbcbf395be974398e934babde84a273cf1c127453b671b0de3943468f39","03cfb4983fb9ae77a8a547e3178552978859a19e8dac3f03bcdb78d743cf2403"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"a2a875db75ad3e8043e1a5f281598e75ca13e89a71b687a6907d0ef392f21d2b","accepted_id_merkle_root":"701d254bbd90bb24c54d33a561d887ca229c294b3503dc9f05d86eb986a2622c","utxo_commitment":"00cfbd2b89083f59b0b1c27717eda02ef50c90d29e10bddf320c9f66f8801fbc","timestamp":"1791454020914","bits":486804903,"nonce":"11332308151517594091","daa_score":"62112","blue_work":"000000000000000000000000000000000000207e315e0ff8","blue_score":"61799","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"fc69d3136c34b743f49e9b9e93f331f4765357e87fba541da1975d18a4983c1d"},{"hash":"bbf3757d7f7bd6b718affcb9f2e15f59da55f7129d6885d7e26d40dd9ea1d934","version":1538,"parents_by_level":[["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"96601ac79eb395da082b8fc83df3b93c97b6e108e6efc7b02b841976f3ab378d","accepted_id_merkle_root":"3e828fea845655d8613f629d6665398d8043e46ea10c0b3869ad49e362bdbcee","utxo_commitment":"f5872215dec17eabffc366a433e93d2ad1dec7c73400b8a6e523c970ca76f95d","timestamp":"1791454024040","bits":486804634,"nonce":"234693217973064891","daa_score":"62113","blue_work":"000000000000000000000000000000000000207e70867fb4","blue_score":"61800","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"}],"headers_complete":true,"rule":{"quorum_active":"2/3","floor_total":0.567,"floor_total_exact":"17/30","vote_message":"igneum-vote-v1/ 0x00 index_le64 checkpoint_hash","dst":"IGNEUM_VOTE_V1_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_","key_hash":"BLAKE2b-256 keyed IgneumVoteKeyHash over the 48-byte G1 key"},"stored_at":"2026-10-08 10:07:53.938845+00"},"segment":{"first":26624,"last":26631,"carrier":"bbf3757d7f7bd6b718affcb9f2e15f59da55f7129d6885d7e26d40dd9ea1d934","carrier_chain_block":26839,"aggregator_key_hash":"0x150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f","paid_wei":"0x177ba848e290b800","statement":"0x38943266bc14f2f37c54fd4c5d114cd6a6a3ae433e39f79a7340ae35b128e00b"},"headers":[{"hash":"bbf3757d7f7bd6b718affcb9f2e15f59da55f7129d6885d7e26d40dd9ea1d934","version":1538,"parents_by_level":[["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["c85337af308bc2903c0894813ac70758264e31124c3899252706e28d63ab4402"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["b0223bac4bdb12eef4e41429bb12142d1a5f566b55d9dee84c3a19c0b33eddb5"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["bdd9c4ad8c04088a010acba4a3cd5cca71dc9c70f3b74d2a2efa2208065e39fc"],["c4f9f8ce138ea4413d7194cdfad0d7a5f03172a9fcdd1b5e8ec4e0d1f1e58882"],["40c6e0862710538a1dc49c74189b2ced4f6795932d726debc43274edb8ec2f56"]],"hash_merkle_root":"96601ac79eb395da082b8fc83df3b93c97b6e108e6efc7b02b841976f3ab378d","accepted_id_merkle_root":"3e828fea845655d8613f629d6665398d8043e46ea10c0b3869ad49e362bdbcee","utxo_commitment":"f5872215dec17eabffc366a433e93d2ad1dec7c73400b8a6e523c970ca76f95d","timestamp":"1791454024040","bits":486804634,"nonce":"234693217973064891","daa_score":"62113","blue_work":"000000000000000000000000000000000000207e70867fb4","blue_score":"61800","pruning_point":"4020cb4382e3fe4b281c817c02582e147d8f851f566ae9172b28912b8e68b925","vote_key_hash":"150cfb7c943d0224a38c79f17b509845bbb077d8fe3bb936c577de169d8aee1f"}],"carrier":{"coinbase":{"gas":0,"inputs":[],"lockTime":0,"mass":0,"outputs":[{"covenant":null,"scriptPublicKey":"0000203609bac1518f1b9aae7cf622a4e6e5b26c87cf41e0db83c7e57795d933c17e25ac","value":308177216,"verboseData":{"scriptPublicKeyAddress":"igneumdev:qqmqnwkp2x83hx4w0nmz9f8xukexep70g8sdhq78u4metkfnc9lz2m750zuum","scriptPublicKeyType":"PubKey"}},{"covenant":null,"scriptPublicKey":"00006a1669676e65756d2d70726f76696e672d706f6f6c2d7630","value":77044304,"verboseData":null}],"payload":"68f1000000000000dd07f6160000000000002220cb7c6e88b13e36fc88232f4c027a63105fbe6b8664e4cd681fd1cc8ea03e7e6fac322e312e302f49474e4b38666165353133613366333065303138326163626362303332343237623164343231316632326233653134356364626166313630346463356464343931393632326436396138363530656434386339356232623133383439306433623266373939396665633165353031326133623264313835393562393963363061636632616336303936353861313561333564336539343461316661636461373035646565663134656237663638363334373061336630646163623361336565333335373330323631633437396436353266653334356130623533666462643234336531396233636338383935353431623532383962303264356236633036666531646536343636363836636564346561333931356531313132303061373466313638393549474e4166326430346135623663646333653364386631383834623366646563333635646331633663386335020000680000000000000768000000000000d9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d08fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d18000000000000116f0000000000006807d9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d099b01ca14f6f0c2f0147812093473d5b4a7336eb07735822e146502ef10ec98300000004ca42dee338f58f6428efaf947b79450211734ec1990f3d04ec9e88cb1827c1443d06555f0d721782e31aa2259159745a167c783eeeb305eee5cc1b12f83ea809f567a84fa10dcabab5f68c712f9553f2f2032cb675bdaba1d13c7901a67a82fddaa199469859c2bde1e1d3c8113ee999db1bc0f14a552d73412f9b629bef24e200000000001c8a790000000000017b4200000057000000ded0e8b46af33889467f6b29c1d7a535a7c8cd810aa1a83753d9c836e19d65c3332b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a474678f35f7545db28055d5e5bbc308231d84a5a072202087a2a8d5b09123896000000000000000847a3e44ff82dd9f0ef2860234d5cd180e5dc890ce58e1b636aa88834de142c8e86e63eaaf5a0a89e93fffc9e9960cb9fe9935aed4dbcad92d5335de342c493ccfb7298f3de507ecc3c64f03969285f3d0f3afbc5c65212014f4e602c5d14fe06519371528016871b186de5d787aa7d9220ab24352612cf0cfa9754855de96f3f4a02000049474e530100d9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d00768000000000000000000008fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d18f53064f416d1bf1ddcbc191aaa5d9e259f1f9e0ecea50ac37c100470022d7618d186a0303b6b318ba0bc77cb16e0ab6fed108173275513183e50e1ccf62ee3d8b93f5ce19d4e9a140f36d15bf7979726d362e7a45ff67efa85b3d3f8eb6a93e370707af0933f3b295ac47cbad0f52e1814b82f86b287cd1e056cce2d45c00b7fbf348828078af6237a8c6be011d19c7302972ae5a4fa3a61a4deaf45611045380100d9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d00768000000000000010000008fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d18e8af501860b2b4e8d5ad35e6b4793b02bc1d5cf64741df83a213b441941ca8531e06431bae2e6d78076844198bed586672de59475afc379f9d31624f067045ac95411cd550e899dbdfbb36d17d75ff5bdfd2681138d8755711150692acea38bde68ce714104d87a185acde204806d5ae01f92ef84edcb699c541888b3d14a03d8d24283c095731f29b5f504e6a8b6bb27b6b90d89f815bf04657a1157104ea680100d9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d00768000000000000020000008fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d1833761de44163d14c31dee8a8de0a580434b3cb40dc9687d0255d5cf0b4e7f650e9066945d45571be2d74924cb6af6738d22152dde50059b972456b8973b2c6f1b64c2b3e950fd606813d9d4e034a890abd6c5e1700bba5ea7e1f575e566724deb9c55b390e9c8701187e4d94a3baeea314ca030ed02a43e3f9de606215a8742febc752ec3defed80fd989feac173366d753f40f037c029a25eabe7653c53d19c0100d9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d00768000000000000030000008fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d18a471a6f90970c2975310d691ae7b70d94c2f2a109c6af9177a10aed7e3e0b2cd9cbd1836f50be037b9ccdfa5d960db7bcdd07271a3df8d8624365d6d9595ef7a8444bf81ebb6e031717d74a23ec284ec86fb17dca8873dae59e7835357c52bbdd8a148f417f6e95d4f1d4d264813ee64047a2833105662ee66360d7a6463e26cc6a4a823822343d10dbd6708a2f75fe4ee1b7d0cba7d8e71bc0ef2e4cae73554010099b01ca14f6f0c2f0147812093473d5b4a7336eb07735822e146502ef10ec9830668000000000000000000008fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d18701023abfbaf2d30750e7a7ccee9fc4933ea52f7f4f468c0f93978a8eb0156890250dbf3281f2727859bee5f4286786a2a747dbe041540ee5727d451e6cbccbd87f23a47729dac1da7a475909ea3167fbd1ca31ec290d96fc55d94850e494246072ed020cfe9bf431e749a13be922b1d0b30b6e90671b871bec64ccc7108506df6e1d6d8868ab99bdde06c367ac22a6df81bac2f85e26265fbfa8fa79cf0dfe7010099b01ca14f6f0c2f0147812093473d5b4a7336eb07735822e146502ef10ec9830668000000000000010000008fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d18d0a0751658f37c2cada22f6e2c7ddbbbcd9da701a8518d1475626e8ef7c956132e1d93d8c575238f4762bb4fb61688e05a80b048c5304da266ab60e19e230633b36f1cdf6aac2fbbac795fd33c0f3f38415b82576d06c514351c6ce1fe8273491cffc2fe86999723f70dfbc1b7f5bc3f00410f04941b7f17e462733e5d97082db95ab15b7d142396c996356e02ba6ad2a4ba4dc0fdea4df175ac7421fb32734501007c5c477c7d872127fc39f4db56e047b106092f0005724ee37fdb16cfad62b47d0568000000000000000000008fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d18eb4ef8e1f2c53b5d0d2c54a7aad79f9281b06e0e8ff9de328ca89604c5e9e1a56d475fdd4def4eb84a2bfcc347a1322db4277e9217a12bcd8b10d43f846339de89da17fd52168b4a99cc201b67fbdd9b24cd52121f7f4e1cd57e831346530939ddfd2d89fc7924e2570d7997f4bd3a3a12454ce46c1b8c28751faa95c0852ebbe38e75d97f99fb8677b55846e1f0ca62f838088c715c6344e02d6420d40235d101000fdc2654ced31abaf9a445cb802754e44066f8a8f469b957296739f6af74ad2c0468000000000000000000008fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d187f1143479d88298a3638ae9d856725de9fc9342fcc1ed373a9d1cbb173ff1e224563e589de499008a0b72f0fd48f2cd95d9e39aa8a9cdeb9f5a2456f5af35e6596fcbbc5bd7bd87e808b4772602076123420d72915e6dc06a7c4c9676d355d9df5c974e7361852ebe90a49360484c12517803b6dbf83c0cba6f270e7a7de899dd96db79c331e3c3d40880d853d2795ba16229e06ce089bf13fb0abd1423dd1089008000049474e50020a08000000000000a529425d2c6a9d4dd8e4efdea882926084d01233746e3cc7091a733e899961871d000000040000009f05ee1bb07ceae0e0a1964f5e697c583b500cb7462820eea2831fdbe5890644eedbf3d38b25a80c78382eb0398c543d00d6f2c60a6ebd5ead89a7e1ea90b856e8f6d00d1172cd874ac42e841a7c9e9b78f0621f7c1a4756d0fb602cb539b347c1309e260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b08000000000000b28ba63872066a00156b23413e8f8650013748e9d8af36851b78d4e4161100a7a91a322e77979252dd93135f67c5dac4b3c410c986b82d652d76af4df50ac3147b7617f8c9b06d8def3a2e0bb18c9dfb966a91d767d302fd6d68e7d5493b09ce1f2a8ee144a501e15e8239c649b534f028b66b815f6b48e97bafa50729e8ff320d4adfbaa26b649074879f5073f2d6520ef192b1a6c453011f1a887bb011e9b7aed4110be08188e78ceac3c78aa8540f83e1276604061a2a9f5f23f937f16b0242644b372745cf490fe57b5c4664b1ff436813a05a7d95330ff5adaea1c531fd04cc9eeeb5e6be76c5cf5e30e02125f475b7c6b18783d7ece996631c5929090ba19d55bc79a7145d8a159c15652893172e02000049474e46","storageMass":0,"subnetworkId":"0100000000000000000000000000000000000000","verboseData":{"blockHash":"bbf3757d7f7bd6b718affcb9f2e15f59da55f7129d6885d7e26d40dd9ea1d934","blockTime":1791454024040,"computeMass":0,"hash":"96601ac79eb395da082b8fc83df3b93c97b6e108e6efc7b02b841976f3ab378d","transactionId":"35f092c2c76e2e74e07fdc18038e32e1c5fc5cb83f4d63fc896a3819e719659a"},"version":1},"evm_tx_hashes":[],"leaf_index":0,"merkle_siblings":[],"amount_wire_len":8},"segment_record_hex":"020000680000000000000768000000000000d9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d08fae513a3f30e0182acbcb032427b1d4211f22b3e145cdbaf1604dc5dd4919622d69a8650ed48c95b2b138490d3b2f798db0505bbb03dffb58875897eeedc4e790a68d18000000000000116f0000000000006807d9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d099b01ca14f6f0c2f0147812093473d5b4a7336eb07735822e146502ef10ec98300000004ca42dee338f58f6428efaf947b79450211734ec1990f3d04ec9e88cb1827c1443d06555f0d721782e31aa2259159745a167c783eeeb305eee5cc1b12f83ea809f567a84fa10dcabab5f68c712f9553f2f2032cb675bdaba1d13c7901a67a82fddaa199469859c2bde1e1d3c8113ee999db1bc0f14a552d73412f9b629bef24e200000000001c8a790000000000017b4200000057000000ded0e8b46af33889467f6b29c1d7a535a7c8cd810aa1a83753d9c836e19d65c3332b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a474678f35f7545db28055d5e5bbc308231d84a5a072202087a2a8d5b09123896000000000000000847a3e44ff82dd9f0ef2860234d5cd180e5dc890ce58e1b636aa88834de142c8e86e63eaaf5a0a89e93fffc9e9960cb9fe9935aed4dbcad92d5335de342c493ccfb7298f3de507ecc3c64f03969285f3d0f3afbc5c65212014f4e602c5d14fe06519371528016871b186de5d787aa7d9220ab24352612cf0cfa9754855de96f3f","account":{"accountProof":["0xf90211a091bd28113d49f3024f7aef69db4c60ad03c19a9231ee151c3d31a8f49d0964f3a02c49dcd825aa010a76f65aeb2fc3cc7c956ca2e5b24554e8b86038c1df9e8734a066281a2855039965d722a50896846a27a6c0cd3813812c7696f1bdaf7ecb367aa006f7866f63dbeed386f63ccf15fbdba801b117554a87347ec4779db8b2d54ea3a016be6ec5e2236dcd8af68fcbcd66061f1a12a344f4954be9284393181a3ab686a0a8e58e6c37b2178194ab83d50189900bae6d062ab72060b1221425bb026c5079a0bee8fce3b7d084e031e7d728d36cf2ef9e7109b333e3844500b1c06681a1e951a04826a4ade756525c5fb85b28057f16fe66cb6a965851f5144e2c9049cd176421a01290314370587f1d2301c3dbae85d059dc0a7e303aae2fa4e6b422301eba670da08aebe8ce37d4ab7f3e39fc1f9f8e942af54cd30d4ee7f4e542056747965e5499a00d0225fa5b596ea3c7b8b1063e4035f91794bd1f668bce43f53a139db158b089a043115c276e8391ae1b89f32fd6bf315b391292a605476486a61489ef1b511363a0b7902acb047d85fde7c1ab599110e3c8a5deba9979ff0660db8d67dd4a1b5647a0ef8869c9bbf880e2867f9e980d0d9a61d38fd6692db8e92543064c3b4c5e615ca0c1dc06de19ec86ec9fb038cd8edf50ff74e0d9ffcbdbb3a274fc29866a41eddaa09cab6531aa0c821d37a83328d7f209362484c9754de6d59a64ca76f5fd60b1a780","0xf8b1a0cc5d560c46349a30f59d9d66044b8e2956dba3a2660815c63781295d886a733480a08731c3086df92b1cf9bd9858c18847f70f61b21ed113b190b909768e5dbaeed48080a08aeb043aad4672416fee4d05929c4025d1ac17264fefb1452924d57f190f4c1580a0354f7407d07089cecd1cc17d90f3c849004080672a64d60a1e50a5cc580499788080a019dd5fd31b4bea4dda4074b028a73ac0824874de838393f9bc900264250e0cb0808080808080","0xf872a02010465c006aa1fff74fedecd19899668673815284efadcc65bb9e81efeb92dab84ff84d808904fd29d670ca6e0400a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"],"address":"0x636de2dcf1dd0c5f955438d569390f0c7cc944ea","balance":"0x4fd29d670ca6e0400","blockHash":"0xd9df7379e08a2276fe2512f2b1cae301e41071eabc510f2989a1b5ab5cf1a0d0","blockNumber":"0x6807","codeHash":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nonce":"0x0","stateRoot":"0xf567a84fa10dcabab5f68c712f9553f2f2032cb675bdaba1d13c7901a67a82fd","storageHash":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","storageProof":[],"evm_chain_id":4463}} \ No newline at end of file diff --git a/tools/reference-apps/light-service/serve.mjs b/tools/reference-apps/light-service/serve.mjs index c66128517..8549a810a 100644 --- a/tools/reference-apps/light-service/serve.mjs +++ b/tools/reference-apps/light-service/serve.mjs @@ -177,12 +177,18 @@ async function balance(q) { const records = segmentRecordsOf(hexToBytes(strip(coinbase.payload))); const rec = records.find(r => Number(r.first) === chosen.first && Number(r.last) === chosen.last); if (!rec) throw httpError(500, `the carrier's coinbase holds ${records.length} segment record(s), none for segment ${chosen.first}`); - const headers = await headerPath(chosen.carrier, chosen.carrierNumber, cpNumber, cpHash); + // the smallest proof: the earliest certified checkpoint at or above the carrier (the certificate used travels in the answer) + let certificate = null; + if (process.env.DATABASE_URL) certificate = await earliestCheckpointAbove(neon(), chosen.carrierNumber, chainNumberOf).catch(() => null); + let cpN = cpNumber, cpH = cpHash, cpI = cpIndex; + if (certificate) { cpH = certificate.hash; cpI = Number(certificate.index); cpN = await chainNumberOf(cpH); } + const headers = await headerPath(chosen.carrier, chosen.carrierNumber, cpN, cpH); const account = await exec('eth_getProof', [address, [], '0x' + chosen.last.toString(16)]); const chainId = await exec('eth_chainId', []); return { ok: true, now: new Date().toISOString(), chain_id: 'igneum-devnet-3', address, - checkpoint: { hash: strip(cpHash), index: cpIndex, chain_block: cpNumber }, + checkpoint: { hash: strip(cpH), index: cpI, chain_block: cpN }, + checkpoint_certificate: certificate ? { ok: true, ...certificate } : undefined, segment: { first: chosen.first, last: chosen.last, carrier: chosen.carrier, carrier_chain_block: chosen.carrierNumber, aggregator_key_hash: chosen.keyHash, paid_wei: chosen.paidWei, statement: chosen.statement }, headers, carrier: { coinbase, evm_tx_hashes: evmHashes.map(bytesToHex), leaf_index: 0, merkle_siblings: siblings(leaves, 0), amount_wire_len: 8 }, @@ -231,7 +237,7 @@ async function receipt(q) { const headers = await headerPath(including, chainNumber, cpNumber, cpHash); return { ok: true, now: new Date().toISOString(), chain_id: 'igneum-devnet-3', tx_hash: strip(tx), raw_tx_hex: strip(raws[idx]), - checkpoint: { hash: strip(cpHash), index: cpIndex, chain_block: cpNumber, certificate: certificate || undefined }, + checkpoint: { hash: strip(cpHash), index: cpIndex, chain_block: cpNumber, certificate: certificate ? { ok: true, ...certificate } : undefined }, including_block: { header: headers[0], leaf_index: idx + 1, leaf_count: leaves.length, merkle_siblings: siblings(leaves, idx + 1) }, headers, execution: rcpt ? { chain_block: chainNumber, chain_block_hash: strip(rcpt.blockHash), status: rcpt.status, gas_used: rcpt.gasUsed, from: rcpt.from, to: rcpt.to, contract_address: rcpt.contractAddress, logs: (rcpt.logs || []).length, effective_gas_price: rcpt.effectiveGasPrice, as_reported_by: 'the node (not proven here)' } : null, diff --git a/tools/reference-apps/light-service/verify.test.mjs b/tools/reference-apps/light-service/verify.test.mjs index 2f0565334..b33997db7 100644 --- a/tools/reference-apps/light-service/verify.test.mjs +++ b/tools/reference-apps/light-service/verify.test.mjs @@ -43,7 +43,7 @@ if (r.verified) console.log(` ${r.tx.type === 2 ? 'EIP-1559' : 'type ' + r.tx. const balancePath = process.argv[3] || here + '../fixtures/dn3-balance.json'; let balance = null; try { balance = load(balancePath); } catch { console.log('no balance fixture yet (' + balancePath + '), skipping the balance cases'); } if (balance) { - const cp = balance.checkpoint_certificate || load(process.argv[4] || here + '../fixtures/dn3-checkpoint.json'); + const cp = balance.checkpoint_certificate || load(process.argv[4] || here + '../fixtures/dn3-checkpoint.json'); // the certificate the service answered with console.log(`balance of ${balance.address} at chain block ${balance.segment.last}, checkpoint ${balance.checkpoint.index}, ${balance.headers.length} headers`); { const d = clone(balance); d.account.accountProof[d.account.accountProof.length - 1] = flipHex(d.account.accountProof[d.account.accountProof.length - 1], 30); expect('account proof: a node altered', verifyBalance(cp, d, deps), false); } { const d = clone(balance); d.account.balance = '0x' + (BigInt(d.account.balance) + 1n).toString(16); expect('reported balance raised by one wei', verifyBalance(cp, d, deps), false); } @@ -51,7 +51,7 @@ if (balance) { { const d = clone(balance); d.segment_record_hex = flipHex(d.segment_record_hex, 2 * (2 + 8 + 8 + 32 + 48 + 20 + 148) + 3); expect('post_root altered inside the segment record', verifyBalance(cp, d, deps), false); } { const d = clone(balance); d.segment_record_hex = flipHex(d.segment_record_hex, d.segment_record_hex.length - 10); expect('aggregator signature altered', verifyBalance(cp, d, deps), false); } { const d = clone(balance); d.carrier.coinbase.payload = flipHex(d.carrier.coinbase.payload, 30); expect('coinbase payload altered', verifyBalance(cp, d, deps), false); } - { const d = clone(balance); d.carrier.merkle_siblings[0] = flipHex(d.carrier.merkle_siblings[0], 1); expect('a merkle sibling altered', verifyBalance(cp, d, deps), false); } + { const d = clone(balance); if (d.carrier.merkle_siblings.length) { d.carrier.merkle_siblings[0] = flipHex(d.carrier.merkle_siblings[0], 1); expect('a merkle sibling altered', verifyBalance(cp, d, deps), false); } else { d.carrier.merkle_siblings.push('00'.repeat(32)); expect('a merkle sibling added to a one-leaf body', verifyBalance(cp, d, deps), false); } } { const d = clone(balance); if (d.headers.length > 2) { d.headers.splice(1, 1); expect('a header removed from the path', verifyBalance(cp, d, deps), false); } } { const d = clone(balance); d.checkpoint.hash = flipHex(d.checkpoint.hash, 1); expect('proof names another checkpoint than the certificate', verifyBalance(cp, d, deps), false); } { const c = clone(cp); c.certificate.aggregate_signature_hex = flipHex(c.certificate.aggregate_signature_hex, 20); expect('certificate signature altered', verifyBalance(c, balance, deps), false); } diff --git a/tools/reference-apps/oracle/deployment.json b/tools/reference-apps/oracle/deployment.json index 88b282d1e..2fb35621c 100644 --- a/tools/reference-apps/oracle/deployment.json +++ b/tools/reference-apps/oracle/deployment.json @@ -81,6 +81,42 @@ "gasUsed": 580281, "calldataBytes": 1863, "headers": 3 + }, + { + "at": "2026-10-08T10:44:27.702Z", + "what": "submitCertificate", + "index": "2060", + "checkpoint": "0xbbf3757d7f7bd6b718affcb9f2e15f59da55f7129d6885d7e26d40dd9ea1d934", + "verifier": "0xa197ef31D5D5613125779179668E2482AC69a6F6", + "tx": "0xa23da37f02ad28e6d9b371a3d2f07490be06283b718933bf47f900429bd55c9b", + "block": 11869644, + "gasUsed": 240856 + }, + { + "at": "2026-10-08T10:44:36.578Z", + "what": "submitStateRoot", + "vector": "devnet-3", + "number": "26631", + "postRoot": "0xf567a84fa10dcabab5f68c712f9553f2f2032cb675bdaba1d13c7901a67a82fd", + "certIndex": "2060", + "tx": "0xb3875bbd311a91457c3f4b139d6eff38cfb5970e3260d9096f5d8070d1d62e85", + "block": 11869645, + "gasUsed": 642331, + "calldataBytes": 5701, + "headers": 1 + }, + { + "at": "2026-10-08T10:44:39.214Z", + "what": "submitStateRoot", + "vector": "devnet-3", + "number": "26631", + "postRoot": "0xf567a84fa10dcabab5f68c712f9553f2f2032cb675bdaba1d13c7901a67a82fd", + "certIndex": "2060", + "tx": "0xf360e54c8f8c40a73c25c8fdfd214ff559ec0ee281beda452e7b56e2a2cf224b", + "block": 11869645, + "gasUsed": 404376, + "calldataBytes": 5701, + "headers": 1 } ] } diff --git a/tools/reference-apps/oracle/test.mjs b/tools/reference-apps/oracle/test.mjs index c73766207..9cf817399 100644 --- a/tools/reference-apps/oracle/test.mjs +++ b/tools/reference-apps/oracle/test.mjs @@ -116,7 +116,12 @@ if (existsSync(L.fixtures + '/dn3-balance.json')) { const bal = await read('provenBalance', [V.number, L.hex0x(V.address), V.accountProof.map(L.hex0x)]); ok('C2 provenBalance equals the node\'s eth_getProof balance', bal === V.balance, bal + ' wei'); await expectRevert('C3 a flipped byte in the real account proof', () => read('provenBalance', [V.number, L.hex0x(V.address), V.accountProof.map((n, i) => (i === V.accountProof.length - 1 ? flipByte(L.hex0x(n), 10) : L.hex0x(n)))]), 'mpt'); - await expectRevert('C4 the real path with a header removed', () => read('verifyStateRoot', [args[0], args[1].filter((_, i) => i !== 1), ...args.slice(2)]), 'does not name'); + const realAltered = clone(V.headers[0]); realAltered.nonce = String(BigInt(realAltered.nonce) + 1n); + await expectRevert('C4 the real carrier header with its nonce altered', () => read('verifyStateRoot', [args[0], [L.hex0x(L.serializeHeader(realAltered)), ...args[1].slice(1)], ...args.slice(2)]), V.headers.length === 1 ? 'not the certified checkpoint' : 'does not name'); + await expectRevert('C5 the real path emptied', () => read('verifyStateRoot', [args[0], [], ...args.slice(2)]), 'headers: none'); + await expectRevert('C6 the real certificate index off by one', () => read('verifyStateRoot', [args[0] + 1n, ...args.slice(1)]), 'no certificate'); + const cbReal = L.hexToBytes(L.strip(args[2])); const off = L.bytesToHex(cbReal).indexOf(L.bytesToHex(V.postRoot)) / 2; cbReal[off + 3] ^= 0x80; + await expectRevert('C7 the real record\'s post_root altered inside the coinbase (offset ' + off + ')', () => read('verifyStateRoot', [...args.slice(0, 2), L.hex0x(cbReal), ...args.slice(3)]), 'hash_merkle_root'); } else { console.log(' Part C skipped: fixtures/dn3-balance.json is not there yet'); } From 09d451a0ec8bbe83237aad1ddad78be923c0c362 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:46:11 +0000 Subject: [PATCH 08/11] Reference apps: an aggregator that is a prove-only key (no mining weight, not in the voter table) is reported, not refused; the record's standing is its signature, the nodes' native check and the payout Co-Authored-By: Claude Fable 5.1 --- site/lc/core.js | 9 ++++++--- site/light.html | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/site/lc/core.js b/site/lc/core.js index 63cd27bfe..b70123826 100644 --- a/site/lc/core.js +++ b/site/lc/core.js @@ -289,13 +289,16 @@ export function verifyBalance(cp, proof, deps) { if (!rec) throw new Error(`the carrier's coinbase carries ${recs.length} segment record(s), none is the named one`); return `coinbase ${bytesToHex(cb).slice(0, 12)}, leaf ${proof.carrier.leaf_index} of ${proof.carrier.evm_tx_hashes.length + 1}, record for blocks ${rec.first} to ${rec.last}`; }) && segmentRecordsOf(hexToBytes(strip(proof.carrier.coinbase.payload))).find(r => bytesToHex(r.bytes) === strip(proof.segment_record_hex)); - const agg = step('the segment record is signed by its aggregator (BLS) and the aggregator is a voter with weight', () => { + const agg = step('the segment record is signed by its aggregator (BLS over the record under the network\'s tag)', () => { if (!verifySegmentRecordSignature(cp.chain_id, record, bls)) throw new Error('the aggregator\'s signature does not verify'); + // the aggregator signs with a vote key; a prove-only key has no mining weight and is not in the voter table, which is + // reported, not refused (the record's standing comes from the nodes' native check and the payout, not from weight) const kh = voteKeyHash(record.pubkey, blake2b); const voter = (cp.voters || []).find(v => (v.vote_key_hash || voteKeyHash(hexToBytes(v.pubkey_hex), blake2b)) === kh); - if (!voter) throw new Error('the aggregator is not in the certified voter set'); const total = (cp.voters || []).reduce((a, v) => a + Number(v.weight), 0); - return `aggregator ${kh.slice(0, 12)}, weight ${voter.weight} of ${total} (${(100 * Number(voter.weight) / total).toFixed(2)}%)`; + return voter + ? `aggregator ${kh.slice(0, 12)}, a voter with weight ${voter.weight} of ${total} (${(100 * Number(voter.weight) / total).toFixed(2)}%)` + : `aggregator ${kh.slice(0, 12)}, a prove-only key (not in the voter table of ${cp.voters.length}, no mining weight)`; }); const st = record.statement; step('the record\'s statement names the chain and the block whose state it commits', () => { diff --git a/site/light.html b/site/light.html index 22affcca1..a86ac6dc7 100644 --- a/site/light.html +++ b/site/light.html @@ -248,7 +248,7 @@
  • The certificate: the aggregate BLS signature of the signers over igneum-vote-v1/igneum-devnet-3 || index || checkpoint hash, the canonical voter order, the rule (two thirds of active weight, 17/30 of total), and the header chain from the previous lock.
  • The header path from the carrier block up to the certified checkpoint: every header hash recomputes (BLAKE2b-256 keyed BlockHash over the header fields), every next header names the previous as a direct parent.
  • The coinbase transaction is in the carrier block: its hash recomputes (BLAKE2b-256 keyed TransactionHash over the serialized transaction) and the merkle path reaches the header's hash_merkle_root.
  • -
  • The segment record in the coinbase extra data: the aggregator's BLS signature over the record, the aggregator is a voter with weight, the statement names the chain and the block whose state it commits.
  • +
  • The segment record in the coinbase extra data: the aggregator's BLS signature over the record under the network's tag, whether the key is a voter with weight or a prove-only key, and the statement names the chain and the block whose state it commits.
  • The account proof: a keccak-keyed Merkle Patricia proof under the record's post_root, every node hashed on the way down, the balance read from the leaf.
  • What is trusted and said so on the result: the aggregator's statement being the true execution result (nodes check it natively before paying; the SP1 proof behind it is verified by nodes, not in this tab yet), and the voter table with weights, which comes from the node (spec 10.1). The read service names the node it reads.

    From 1c0b4874fa1aeb01400f87f7574f63a87ec4ea01 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 10:52:41 +0000 Subject: [PATCH 09/11] Reference apps: the oracle's write helper waits for an empty deployer mempool and re-reads before sending (a duplicate submit landed once) Co-Authored-By: Claude Fable 5.1 --- tools/reference-apps/oracle/lib.mjs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/tools/reference-apps/oracle/lib.mjs b/tools/reference-apps/oracle/lib.mjs index 27e0713c6..096981ff0 100644 --- a/tools/reference-apps/oracle/lib.mjs +++ b/tools/reference-apps/oracle/lib.mjs @@ -284,6 +284,11 @@ export function recordWrite(entry) { writeFileSync(p, JSON.stringify(d, null, 1) + '\n'); } // The public RPC is a pool of nodes; a read right after a receipt can land on one that lags. Poll until it agrees. +// Never send while one of our transactions is still pending, then read the pre-check again: a stale read on a +// lagging node must not turn into a second, identical submission (seen once on 8 October 2026, nonces 8 and 9). +async function quietMempool(pub, address) { + await untilVisible(async () => (await pub.getTransactionCount({ address, blockTag: 'pending' })) === (await pub.getTransactionCount({ address, blockTag: 'latest' })), 'an empty mempool for the deployer'); +} async function untilVisible(check, what) { for (let i = 0; i < 30; i++) { if (await check()) return; await new Promise(r => setTimeout(r, 1000)); } throw new Error(what + ' is not visible on the RPC 30 s after its receipt'); @@ -293,6 +298,8 @@ export async function ensureCertificate(pub, wallet, d, index, checkpoint, bitma const verifierAddr = await pub.readContract({ address: d.oracle.address, abi: artifact('IgneumStateOracle').abi, functionName: 'verifier' }); const same = async () => (await pub.readContract({ address: verifierAddr, abi: stubAbi, functionName: 'finalCheckpoint', args: [index] })).toLowerCase() === checkpoint.toLowerCase(); if (await same()) return { verifier: verifierAddr, already: true }; + await quietMempool(pub, wallet.account.address); + if (await same()) return { verifier: verifierAddr, already: true }; const hash = await wallet.writeContract({ address: verifierAddr, abi: stubAbi, functionName: 'submitCertificate', args: [index, checkpoint, bitmap, signature] }); const r = await pub.waitForTransactionReceipt({ hash, timeout: 180_000 }); if (r.status !== 'success') throw new Error('submitCertificate reverted in ' + hash); @@ -303,10 +310,10 @@ export async function ensureCertificate(pub, wallet, d, index, checkpoint, bitma } export async function ensureStateRoot(pub, wallet, d, v) { const abi = artifact('IgneumStateOracle').abi; - try { - const [root] = await pub.readContract({ address: d.oracle.address, abi, functionName: 'stateRoot', args: [v.number] }); - if (root.toLowerCase() === hex0x(v.postRoot).toLowerCase()) return { already: true }; - } catch {} + const stored = async () => { try { const [root] = await pub.readContract({ address: d.oracle.address, abi, functionName: 'stateRoot', args: [v.number] }); return root.toLowerCase() === hex0x(v.postRoot).toLowerCase(); } catch { return false; } }; + if (await stored()) return { already: true }; + await quietMempool(pub, wallet.account.address); + if (await stored()) return { already: true }; const args = proofArgs(v); const gas = await pub.estimateContractGas({ address: d.oracle.address, abi, functionName: 'submitStateRoot', args, account: wallet.account }); const hash = await wallet.writeContract({ address: d.oracle.address, abi, functionName: 'submitStateRoot', args, gas: gas + gas / 5n }); From 44876afdec42a844be19c3886a14506264647213 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 11:08:18 +0000 Subject: [PATCH 10/11] explorer.igneum.network: the root goes to /explorer by a redirect, not a rewrite (Vercel serves index.html from the filesystem before rewrites run, read on the live host at 12:08 BST, 8 October 2026) Co-Authored-By: Claude Fable 5.1 --- site/vercel.json | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/site/vercel.json b/site/vercel.json index 00270ab07..c8ceddbd4 100644 --- a/site/vercel.json +++ b/site/vercel.json @@ -2,6 +2,17 @@ "cleanUrls": true, "trailingSlash": false, "redirects": [ + { + "source": "/", + "has": [ + { + "type": "host", + "value": "explorer.igneum.network" + } + ], + "destination": "/explorer", + "permanent": false + }, { "source": "/connect", "destination": "/metamask", @@ -14,16 +25,6 @@ } ], "rewrites": [ - { - "source": "/", - "has": [ - { - "type": "host", - "value": "explorer.igneum.network" - } - ], - "destination": "/explorer" - }, { "source": "/tx/:hash", "destination": "/tx" From 660389668b1b80d50a1beecf56dbc7204fe95cc7 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 11:10:43 +0000 Subject: [PATCH 11/11] Bridge: the first Devnet 3 checkpoint (index 2127) verified and recorded on the Sepolia verifier (tx 0x569a62c1, block 11869773); docs/contracts/sepolia.json Co-Authored-By: Claude Fable 5.1 --- docs/contracts/sepolia.json | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/docs/contracts/sepolia.json b/docs/contracts/sepolia.json index db98b5618..4a23eed2a 100644 --- a/docs/contracts/sepolia.json +++ b/docs/contracts/sepolia.json @@ -12,11 +12,31 @@ "create_tx": "0x55351cbbccda0f78311c22feb1174d99c5d8d9fe3488cb60ff8656f65007e079", "create_block": 11869731, "igneum_chain_id": "igneum-devnet-3", - "table": { "tx": "0x6ec1045dbc0abe981944e9e15987089d3f0cdc2e8e467f688b7b0c63e907b26b", "block": 11869732, "index": 2127, "voters": 29, "total_weight": 7164, "table_id": "0xabfcc2bc54ca92ec506beee8a44dced17f15cf1e7c518a6221bf2819b0d1cbd6", "read_from": "igneum_getFinalityWeights on a Devnet 3 node at checkpoint index 2127 (hash 0xcb21b52c…), 12:1x UTC 8 October 2026" }, - "final_checkpoints": "none yet: the first Devnet 3 certificate is submitted when /api/checkpoint serves dn3_live_certificates", + "table": { + "tx": "0x6ec1045dbc0abe981944e9e15987089d3f0cdc2e8e467f688b7b0c63e907b26b", + "block": 11869732, + "index": 2127, + "voters": 29, + "total_weight": 7164, + "table_id": "0xabfcc2bc54ca92ec506beee8a44dced17f15cf1e7c518a6221bf2819b0d1cbd6", + "read_from": "igneum_getFinalityWeights on a Devnet 3 node at checkpoint index 2127 (hash 0xcb21b52c\u2026), 12:1x UTC 8 October 2026" + }, + "final_checkpoints": [ + { + "index": 2127, + "checkpoint": "0xcb21b52c18654542e7e66af82898313282fd6881e44d01c448d3ba2bd1abd544", + "tx": "0x569a62c155f2273bc2167afc137bc9a44bfe522bf21f7554500c2045add444fc", + "block": 11869773, + "gas_used": 765514, + "signers": 17, + "signed_weight_under_table": 4833, + "total_weight": 7164, + "source": "igneum.network/api/checkpoint?index=2127 (dn3_live_certificates), the bytes the chain carried; verified by eth_call before the send (true, 4833, 7164)" + } + ], "interface": "IIgneumCertificateVerifier in contracts/bridge/src/IgneumCertificateVerifier.sol: chainId(), tableId(), verifyCertificate(uint64 index, bytes32 checkpoint, bytes bitmap, bytes signature) view returns (bool ok, uint256 signedWeight, uint256 totalWeight), submitCertificate(...), finalCheckpoint(uint64) view returns (bytes32), isFinal(bytes32) view returns (bool), verifyAccount(bytes32 stateRoot, address account, bytes[] proof) pure returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash)" } }, - "first_deploy_note": "A first creation at 0xD7dd375E14F92A4CE4782040325189e6d6E394b6 (tx 0x4db10565…, block 11869633) ran out of gas at Foundry's Prague-spec estimate of 3,323,884; Sepolia runs Osaka pricing (EIP-7883 modexp), so the test EVM and the deploy now use osaka and the RPC's own estimate. That address holds no code.", - "tests": "contracts/bridge/test/Verifier.t.sol: 9 of 9 green on build-3 (Foundry, osaka), 12:3x UTC 8 October 2026" + "first_deploy_note": "A first creation at 0xD7dd375E14F92A4CE4782040325189e6d6E394b6 (tx 0x4db10565\u2026, block 11869633) ran out of gas at Foundry's Prague-spec estimate of 3,323,884; Sepolia runs Osaka pricing (EIP-7883 modexp), so the test EVM and the deploy now use osaka and the RPC's own estimate. That address holds no code.", + "tests": "contracts/bridge/test/Verifier.t.sol: 9 of 9 green on build-3 (Foundry, osaka), 12:3x UTC 8 October 2026; the live contract verified and recorded Devnet 3 checkpoint 2127 at 12:5x UTC" }