diff --git a/BACKLOG.md b/BACKLOG.md index f7897b3..026c622 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -12,7 +12,7 @@ Legend: `[ ]` open, `[~]` in flight, `[x]` done. ## P1 -- [ ] **Events 2.1.0 (grant milestone splits) to mainnet**, as its own upgrade after 1.8.0, waiting the 17,280-ledger timelock. Before it goes: rerun Scout on the 2.1.0 code and add it to `docs/threat-model.md` Section 6 (the scan covers 2.0.0; the testnet grant run already passed on 2.1.0, `docs/audit/testnet-grant-run-2.1.0.md`). Refresh the storage replay from 1.8.0 first, which mainnet runs since 17 October 2026 (`docs/storage-compatibility.md`). +- [ ] **Events 2.1.0 (grant milestone splits) to mainnet**, as its own upgrade after 1.8.0, waiting the 17,280-ledger timelock. Before it goes: rerun Scout on the 2.1.0 code and add it to `docs/threat-model.md` Section 6 (the scan covers 2.0.0; the testnet grant run already passed on 2.1.0, `docs/audit/testnet-grant-run-2.1.0.md`). - [ ] Per-event prize claim window: `PRIZE_CLAIM_WINDOW_SECS` (90 days) is a module constant because adding a field to `EventRecord` requires a storage migration. Move it onto `EventRecord` at the next real migration window, per the per-event-config rule in `CLAUDE.md`. - [ ] `Error` enum headroom: events uses 42 of the 50-case `contracterror` cap after 2.0.0, and retired codes are never reused. Plan a consolidation before the cap, not when the next variant fails to compile. - [ ] Grant committee multi-sig primitive (dedicated signer set + quorum at the contract level vs the current address-level multi-sig). @@ -29,8 +29,8 @@ Legend: `[ ]` open, `[~]` in flight, `[x]` done. ## Done +- [x] 2026-10-18: storage replay refreshed from mainnet events 1.8.0 and profile 1.2.1 (ledger 65,003,455). It now replays the events 2.1.0 upgrade, including the 17,280-ledger timelock the deployed build enforces (`docs/storage-compatibility.md`). - [x] 2026-10-17: mainnet upgraded to events 1.8.0 (the 2.0.0 code, tag `events-v1.8.0`) and profile 1.2.1 (`docs/upgrade-runbook.md`, Section 8, with every transaction hash). Both migrated and unpaused, the 17,280-ledger timelock is live, and events 1 and 2 were converted and read again. Grants and held-refund claims stay off on mainnet until a 2.x upgrade. - - [x] 2026-10-02: measured batch headroom on the test host, which enforces mainnet limits (100 footprint entries, 50 writes): single-release selection 19 + 4 per award, grant selection 15 + 2 per award, refund crank 11 + 5 per refund, read page 3 + 1 per row. Caps are now 20 single-release awards per call, 40 per grant, 15 refunds per crank and 90-row pages, each tested at its maximum (`grant_scenarios::limits`). - [x] 2026-10-02: upgrade timelock restored in source (events 2.0.0, profile 1.2.1): 17,280 ledgers on mainnet builds, 0 with `--features testnet`; tests assert `UpgradeTimelockNotElapsed`. - [x] 2026-09-28: on-chain participation removed in events 2.0.0 (`apply`, `apply_to_bounty`, `remove_applicant`, `submit` and their registries); entries live in boundless-nestjs. diff --git a/contracts/compatibility/fixtures/mainnet-events-1.7.0.wasm b/contracts/compatibility/fixtures/mainnet-events-1.7.0.wasm deleted file mode 100644 index 6f16840..0000000 Binary files a/contracts/compatibility/fixtures/mainnet-events-1.7.0.wasm and /dev/null differ diff --git a/contracts/compatibility/fixtures/mainnet-events-1.8.0.wasm b/contracts/compatibility/fixtures/mainnet-events-1.8.0.wasm new file mode 100644 index 0000000..9a7e422 Binary files /dev/null and b/contracts/compatibility/fixtures/mainnet-events-1.8.0.wasm differ diff --git a/contracts/compatibility/fixtures/mainnet-profile-1.2.0.wasm b/contracts/compatibility/fixtures/mainnet-profile-1.2.0.wasm deleted file mode 100644 index 0c38043..0000000 Binary files a/contracts/compatibility/fixtures/mainnet-profile-1.2.0.wasm and /dev/null differ diff --git a/contracts/compatibility/fixtures/mainnet-profile-1.2.1.wasm b/contracts/compatibility/fixtures/mainnet-profile-1.2.1.wasm new file mode 100644 index 0000000..90fca3c Binary files /dev/null and b/contracts/compatibility/fixtures/mainnet-profile-1.2.1.wasm differ diff --git a/contracts/compatibility/fixtures/mainnet-state.json b/contracts/compatibility/fixtures/mainnet-state.json index 3f4f170..98a4bb5 100644 --- a/contracts/compatibility/fixtures/mainnet-state.json +++ b/contracts/compatibility/fixtures/mainnet-state.json @@ -1,7 +1,7 @@ { "protocol_version": 29, - "sequence_number": 64747647, - "timestamp": 1791024017, + "sequence_number": 65003455, + "timestamp": 1792303057, "network_id": "7ac33997544e3175d266bd022439b22cdb16508c01163f26e5cb2a3e1045a979", "base_reserve": 5000000, "min_persistent_entry_ttl": 2073600, @@ -10,7 +10,7 @@ "ledger_entries": [ { "entry": { - "last_modified_ledger_seq": 64460331, + "last_modified_ledger_seq": 64998960, "data": { "contract_data": { "ext": "v0", @@ -20,7 +20,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "b87365c16102f7242a8fc3e770f615991841741c40673bb241cb254130be4c26" + "wasm": "acf70ca019f75ee6bc60f7806254dfb3508fd5a76634c708977e6030870dc654" }, "storage": [ { @@ -80,7 +80,19 @@ ] }, "val": { - "string": "1.6.0" + "string": "1.8.0" + } + }, + { + "key": { + "vec": [ + { + "symbol": "MigrationCursor" + } + ] + }, + "val": { + "u64": "271539957145796617" } }, { @@ -230,7 +242,7 @@ ] }, "val": { - "string": "1.7.0" + "string": "1.8.0" } } ] @@ -244,7 +256,7 @@ }, { "entry": { - "last_modified_ledger_seq": 63718136, + "last_modified_ledger_seq": 64998878, "data": { "contract_data": { "ext": "v0", @@ -322,63 +334,7 @@ }, { "key": { - "symbol": "release_kind" - }, - "val": { - "vec": [ - { - "symbol": "Single" - } - ] - } - }, - { - "key": { - "symbol": "remaining_escrow" - }, - "val": { - "i128": "0" - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "vec": [ - { - "symbol": "Completed" - } - ] - } - }, - { - "key": { - "symbol": "title" - }, - "val": { - "string": "End-to-end contract test \\xe2\\x80\\x93 single winner" - } - }, - { - "key": { - "symbol": "token" - }, - "val": { - "address": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" - } - }, - { - "key": { - "symbol": "total_budget" - }, - "val": { - "i128": "100000000" - } - }, - { - "key": { - "symbol": "winner_distribution" + "symbol": "prize_floors" }, "val": { "map": [ @@ -387,97 +343,11 @@ "u32": 1 }, "val": { - "u32": 100 + "i128": "100000000" } } ] } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 63841346, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "Event" - }, - { - "u64": "271539957145796610" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "content_uri" - }, - "val": { - "string": "https://api.boundless.fi/bounties/2c4e884a-aca2-46dd-a02b-bdc98e7c1ae0/content" - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": "1785415413" - } - }, - { - "key": { - "symbol": "deadline" - }, - "val": { - "u64": "1786057140" - } - }, - { - "key": { - "symbol": "fee_bps_override" - }, - "val": "void" - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u64": "271539957145796610" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "GDX7CNDBKSTWGHS5QDUJC2KK2RUWDR43AVNJPUG5MZ5EEOKHRDSJ37TD" - } - }, - { - "key": { - "symbol": "pillar" - }, - "val": { - "vec": [ - { - "symbol": "Bounty" - } - ] - } }, { "key": { @@ -516,7 +386,7 @@ "symbol": "title" }, "val": { - "string": "Muwa Creator Bounty" + "string": "End-to-end contract test \\xe2\\x80\\x93 single winner" } }, { @@ -532,32 +402,7 @@ "symbol": "total_budget" }, "val": { - "i128": "1000000000" - } - }, - { - "key": { - "symbol": "winner_distribution" - }, - "val": { - "map": [ - { - "key": { - "u32": 1 - }, - "val": { - "u32": 60 - } - }, - { - "key": { - "u32": 2 - }, - "val": { - "u32": 40 - } - } - ] + "i128": "100000000" } } ] @@ -570,7 +415,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64164377, + "last_modified_ledger_seq": 64998878, "data": { "contract_data": { "ext": "v0", @@ -581,7 +426,7 @@ "symbol": "Event" }, { - "u64": "271539957145796611" + "u64": "271539957145796610" } ] }, @@ -593,7 +438,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/bounties/513b62b6-047f-4843-96c9-53593c6336eb/content" + "string": "https://api.boundless.fi/bounties/2c4e884a-aca2-46dd-a02b-bdc98e7c1ae0/content" } }, { @@ -601,7 +446,7 @@ "symbol": "created_at" }, "val": { - "u64": "1787925823" + "u64": "1785415413" } }, { @@ -609,7 +454,7 @@ "symbol": "deadline" }, "val": { - "u64": "1787935800" + "u64": "1786057140" } }, { @@ -623,7 +468,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796611" + "u64": "271539957145796610" } }, { @@ -631,7 +476,7 @@ "symbol": "owner" }, "val": { - "address": "GAMLW7AE65JHO5YZDPAGONCHZY5R3FKMWM7KVPHXSRUOW6T6LO32S2DH" + "address": "GDX7CNDBKSTWGHS5QDUJC2KK2RUWDR43AVNJPUG5MZ5EEOKHRDSJ37TD" } }, { @@ -657,7 +502,7 @@ "u32": 1 }, "val": { - "i128": "150000000" + "i128": "600000000" } }, { @@ -665,15 +510,7 @@ "u32": 2 }, "val": { - "i128": "100000000" - } - }, - { - "key": { - "u32": 3 - }, - "val": { - "i128": "50000000" + "i128": "400000000" } } ] @@ -696,7 +533,7 @@ "symbol": "remaining_escrow" }, "val": { - "i128": "300000000" + "i128": "0" } }, { @@ -706,7 +543,7 @@ "val": { "vec": [ { - "symbol": "Active" + "symbol": "Completed" } ] } @@ -716,7 +553,7 @@ "symbol": "title" }, "val": { - "string": "Boundless Team Quest \\xe2\\x80\\x94 30 USDC to Top 3 Entries" + "string": "Muwa Creator Bounty" } }, { @@ -732,7 +569,7 @@ "symbol": "total_budget" }, "val": { - "i128": "300000000" + "i128": "1000000000" } } ] @@ -745,7 +582,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64744258, + "last_modified_ledger_seq": 64164377, "data": { "contract_data": { "ext": "v0", @@ -756,7 +593,7 @@ "symbol": "Event" }, { - "u64": "271539957145796612" + "u64": "271539957145796611" } ] }, @@ -768,7 +605,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/bounties/2ceaee23-1e0d-4c5e-8aa2-b407574f6274/content" + "string": "https://api.boundless.fi/bounties/513b62b6-047f-4843-96c9-53593c6336eb/content" } }, { @@ -776,7 +613,7 @@ "symbol": "created_at" }, "val": { - "u64": "1788187059" + "u64": "1787925823" } }, { @@ -784,7 +621,7 @@ "symbol": "deadline" }, "val": { - "u64": "1790355600" + "u64": "1787935800" } }, { @@ -798,7 +635,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796612" + "u64": "271539957145796611" } }, { @@ -806,7 +643,7 @@ "symbol": "owner" }, "val": { - "address": "GAA6HG7FCNPKSS6CQLN27GUIMWJJMLDCSBF64G5QWM4HH536KABLFD4Y" + "address": "GAMLW7AE65JHO5YZDPAGONCHZY5R3FKMWM7KVPHXSRUOW6T6LO32S2DH" } }, { @@ -832,7 +669,7 @@ "u32": 1 }, "val": { - "i128": "500000000" + "i128": "150000000" } }, { @@ -840,7 +677,7 @@ "u32": 2 }, "val": { - "i128": "500000000" + "i128": "100000000" } }, { @@ -848,79 +685,7 @@ "u32": 3 }, "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 4 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 5 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 6 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 7 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 8 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 9 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 10 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 11 - }, - "val": { - "i128": "500000000" - } - }, - { - "key": { - "u32": 12 - }, - "val": { - "i128": "500000000" + "i128": "50000000" } } ] @@ -943,7 +708,7 @@ "symbol": "remaining_escrow" }, "val": { - "i128": "500000000" + "i128": "300000000" } }, { @@ -963,7 +728,7 @@ "symbol": "title" }, "val": { - "string": "Stellar Vietnam Mid-autumn festival Track 1" + "string": "Boundless Team Quest \\xe2\\x80\\x94 30 USDC to Top 3 Entries" } }, { @@ -979,7 +744,7 @@ "symbol": "total_budget" }, "val": { - "i128": "6000000000" + "i128": "300000000" } } ] @@ -992,7 +757,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64725863, + "last_modified_ledger_seq": 64744258, "data": { "contract_data": { "ext": "v0", @@ -1003,7 +768,7 @@ "symbol": "Event" }, { - "u64": "271539957145796613" + "u64": "271539957145796612" } ] }, @@ -1015,7 +780,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/bounties/c369f344-0563-4812-b4a6-6a4831be543e/content" + "string": "https://api.boundless.fi/bounties/2ceaee23-1e0d-4c5e-8aa2-b407574f6274/content" } }, { @@ -1023,7 +788,7 @@ "symbol": "created_at" }, "val": { - "u64": "1788187155" + "u64": "1788187059" } }, { @@ -1045,7 +810,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796613" + "u64": "271539957145796612" } }, { @@ -1079,7 +844,7 @@ "u32": 1 }, "val": { - "i128": "2000000000" + "i128": "500000000" } }, { @@ -1087,7 +852,7 @@ "u32": 2 }, "val": { - "i128": "1000000000" + "i128": "500000000" } }, { @@ -1105,161 +870,34 @@ "val": { "i128": "500000000" } - } - ] - } - }, - { - "key": { - "symbol": "release_kind" - }, - "val": { - "vec": [ + }, { - "symbol": "Single" - } - ] - } - }, - { - "key": { - "symbol": "remaining_escrow" - }, - "val": { - "i128": "0" - } - }, - { - "key": { - "symbol": "status" - }, - "val": { - "vec": [ + "key": { + "u32": 5 + }, + "val": { + "i128": "500000000" + } + }, { - "symbol": "Completed" - } - ] - } - }, - { - "key": { - "symbol": "title" - }, - "val": { - "string": "Stellar Vietnam Mid-autumn festival Track 2" - } - }, - { - "key": { - "symbol": "token" - }, - "val": { - "address": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" - } - }, - { - "key": { - "symbol": "total_budget" - }, - "val": { - "i128": "4000000000" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64440680, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "Event" - }, - { - "u64": "271539957145796614" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "content_uri" - }, - "val": { - "string": "https://api.boundless.fi/bounties/302dde2f-23a8-482f-b6cb-2d7bacc22d64/content" - } - }, - { - "key": { - "symbol": "created_at" - }, - "val": { - "u64": "1789469950" - } - }, - { - "key": { - "symbol": "deadline" - }, - "val": { - "u64": "1789513140" - } - }, - { - "key": { - "symbol": "fee_bps_override" - }, - "val": "void" - }, - { - "key": { - "symbol": "id" - }, - "val": { - "u64": "271539957145796614" - } - }, - { - "key": { - "symbol": "owner" - }, - "val": { - "address": "GAMLW7AE65JHO5YZDPAGONCHZY5R3FKMWM7KVPHXSRUOW6T6LO32S2DH" - } - }, - { - "key": { - "symbol": "pillar" - }, - "val": { - "vec": [ + "key": { + "u32": 6 + }, + "val": { + "i128": "500000000" + } + }, { - "symbol": "Bounty" - } - ] - } - }, - { - "key": { - "symbol": "prize_floors" - }, - "val": { - "map": [ + "key": { + "u32": 7 + }, + "val": { + "i128": "500000000" + } + }, { "key": { - "u32": 1 + "u32": 8 }, "val": { "i128": "500000000" @@ -1267,7 +905,7 @@ }, { "key": { - "u32": 2 + "u32": 9 }, "val": { "i128": "500000000" @@ -1275,7 +913,7 @@ }, { "key": { - "u32": 3 + "u32": 10 }, "val": { "i128": "500000000" @@ -1283,7 +921,15 @@ }, { "key": { - "u32": 4 + "u32": 11 + }, + "val": { + "i128": "500000000" + } + }, + { + "key": { + "u32": 12 }, "val": { "i128": "500000000" @@ -1309,7 +955,7 @@ "symbol": "remaining_escrow" }, "val": { - "i128": "0" + "i128": "500000000" } }, { @@ -1319,7 +965,7 @@ "val": { "vec": [ { - "symbol": "Cancelled" + "symbol": "Active" } ] } @@ -1329,7 +975,7 @@ "symbol": "title" }, "val": { - "string": "Boundless Content & Visibility Bounty for SEBW" + "string": "Stellar Vietnam Mid-autumn festival Track 1" } }, { @@ -1345,7 +991,7 @@ "symbol": "total_budget" }, "val": { - "i128": "2000000000" + "i128": "6000000000" } } ] @@ -1358,7 +1004,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64599980, + "last_modified_ledger_seq": 64725863, "data": { "contract_data": { "ext": "v0", @@ -1369,7 +1015,7 @@ "symbol": "Event" }, { - "u64": "271539957145796615" + "u64": "271539957145796613" } ] }, @@ -1381,7 +1027,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/hackathons/ed56ed9b-0ba9-47b8-8aec-87b69cc83749/content" + "string": "https://api.boundless.fi/bounties/c369f344-0563-4812-b4a6-6a4831be543e/content" } }, { @@ -1389,7 +1035,7 @@ "symbol": "created_at" }, "val": { - "u64": "1789571859" + "u64": "1788187155" } }, { @@ -1397,7 +1043,7 @@ "symbol": "deadline" }, "val": { - "u64": "1789736400" + "u64": "1790355600" } }, { @@ -1411,7 +1057,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796615" + "u64": "271539957145796613" } }, { @@ -1419,7 +1065,7 @@ "symbol": "owner" }, "val": { - "address": "GCT7D6S5VTFGEURS6ZYIO33YZRPQMA3LNWB4GEOHDFDXZGWTA4EPIM5E" + "address": "GAA6HG7FCNPKSS6CQLN27GUIMWJJMLDCSBF64G5QWM4HH536KABLFD4Y" } }, { @@ -1429,7 +1075,7 @@ "val": { "vec": [ { - "symbol": "Hackathon" + "symbol": "Bounty" } ] } @@ -1445,7 +1091,7 @@ "u32": 1 }, "val": { - "i128": "2500000000" + "i128": "2000000000" } }, { @@ -1453,7 +1099,7 @@ "u32": 2 }, "val": { - "i128": "1500000000" + "i128": "1000000000" } }, { @@ -1461,7 +1107,15 @@ "u32": 3 }, "val": { - "i128": "1000000000" + "i128": "500000000" + } + }, + { + "key": { + "u32": 4 + }, + "val": { + "i128": "500000000" } } ] @@ -1504,7 +1158,7 @@ "symbol": "title" }, "val": { - "string": "Pollar Hackathon: Build on Pollar" + "string": "Stellar Vietnam Mid-autumn festival Track 2" } }, { @@ -1520,7 +1174,7 @@ "symbol": "total_budget" }, "val": { - "i128": "5000000000" + "i128": "4000000000" } } ] @@ -1533,7 +1187,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64609068, + "last_modified_ledger_seq": 64440680, "data": { "contract_data": { "ext": "v0", @@ -1544,7 +1198,7 @@ "symbol": "Event" }, { - "u64": "271539957145796616" + "u64": "271539957145796614" } ] }, @@ -1556,7 +1210,7 @@ "symbol": "content_uri" }, "val": { - "string": "https://api.boundless.fi/bounties/77704abb-02e5-4d13-9a63-780bb8bfa173/content" + "string": "https://api.boundless.fi/bounties/302dde2f-23a8-482f-b6cb-2d7bacc22d64/content" } }, { @@ -1564,7 +1218,7 @@ "symbol": "created_at" }, "val": { - "u64": "1789587431" + "u64": "1789469950" } }, { @@ -1572,7 +1226,7 @@ "symbol": "deadline" }, "val": { - "u64": "1789772340" + "u64": "1789513140" } }, { @@ -1586,7 +1240,7 @@ "symbol": "id" }, "val": { - "u64": "271539957145796616" + "u64": "271539957145796614" } }, { @@ -1594,7 +1248,365 @@ "symbol": "owner" }, "val": { - "address": "GD6YISBW2D6MNFHSBGQLQU4RPWTRJGJ2OFDDRPTF7WHOHUTJBQOAWHNS" + "address": "GAMLW7AE65JHO5YZDPAGONCHZY5R3FKMWM7KVPHXSRUOW6T6LO32S2DH" + } + }, + { + "key": { + "symbol": "pillar" + }, + "val": { + "vec": [ + { + "symbol": "Bounty" + } + ] + } + }, + { + "key": { + "symbol": "prize_floors" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "i128": "500000000" + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "i128": "500000000" + } + }, + { + "key": { + "u32": 3 + }, + "val": { + "i128": "500000000" + } + }, + { + "key": { + "u32": 4 + }, + "val": { + "i128": "500000000" + } + } + ] + } + }, + { + "key": { + "symbol": "release_kind" + }, + "val": { + "vec": [ + { + "symbol": "Single" + } + ] + } + }, + { + "key": { + "symbol": "remaining_escrow" + }, + "val": { + "i128": "0" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Cancelled" + } + ] + } + }, + { + "key": { + "symbol": "title" + }, + "val": { + "string": "Boundless Content & Visibility Bounty for SEBW" + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" + } + }, + { + "key": { + "symbol": "total_budget" + }, + "val": { + "i128": "2000000000" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64599980, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "u64": "271539957145796615" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "content_uri" + }, + "val": { + "string": "https://api.boundless.fi/hackathons/ed56ed9b-0ba9-47b8-8aec-87b69cc83749/content" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "1789571859" + } + }, + { + "key": { + "symbol": "deadline" + }, + "val": { + "u64": "1789736400" + } + }, + { + "key": { + "symbol": "fee_bps_override" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u64": "271539957145796615" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "GCT7D6S5VTFGEURS6ZYIO33YZRPQMA3LNWB4GEOHDFDXZGWTA4EPIM5E" + } + }, + { + "key": { + "symbol": "pillar" + }, + "val": { + "vec": [ + { + "symbol": "Hackathon" + } + ] + } + }, + { + "key": { + "symbol": "prize_floors" + }, + "val": { + "map": [ + { + "key": { + "u32": 1 + }, + "val": { + "i128": "2500000000" + } + }, + { + "key": { + "u32": 2 + }, + "val": { + "i128": "1500000000" + } + }, + { + "key": { + "u32": 3 + }, + "val": { + "i128": "1000000000" + } + } + ] + } + }, + { + "key": { + "symbol": "release_kind" + }, + "val": { + "vec": [ + { + "symbol": "Single" + } + ] + } + }, + { + "key": { + "symbol": "remaining_escrow" + }, + "val": { + "i128": "0" + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Completed" + } + ] + } + }, + { + "key": { + "symbol": "title" + }, + "val": { + "string": "Pollar Hackathon: Build on Pollar" + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75" + } + }, + { + "key": { + "symbol": "total_budget" + }, + "val": { + "i128": "5000000000" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64609068, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", + "key": { + "vec": [ + { + "symbol": "Event" + }, + { + "u64": "271539957145796616" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "content_uri" + }, + "val": { + "string": "https://api.boundless.fi/bounties/77704abb-02e5-4d13-9a63-780bb8bfa173/content" + } + }, + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": "1789587431" + } + }, + { + "key": { + "symbol": "deadline" + }, + "val": { + "u64": "1789772340" + } + }, + { + "key": { + "symbol": "fee_bps_override" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u64": "271539957145796616" + } + }, + { + "key": { + "symbol": "owner" + }, + "val": { + "address": "GD6YISBW2D6MNFHSBGQLQU4RPWTRJGJ2OFDDRPTF7WHOHUTJBQOAWHNS" } }, { @@ -61348,517 +61360,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64716336, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GA3NAZYKIAQWJHXCUORX3FUXZCCMWRFIKJFEDMLEUFMCWELYD2LCDWON" - }, - { - "bytes": "7df45e73e1f1ca2a14c8ba51be5d2cfef64e9eea2c285be8a47f29ee5460fe2c" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716188, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GAA6HG7FCNPKSS6CQLN27GUIMWJJMLDCSBF64G5QWM4HH536KABLFD4Y" - }, - { - "bytes": "f31a7387db05aa230cad42fe88e688a01204efdee24c35dad7e61f4305ed2d92" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716191, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GAA6HG7FCNPKSS6CQLN27GUIMWJJMLDCSBF64G5QWM4HH536KABLFD4Y" - }, - { - "bytes": "faacfd79449f482be0fd1fcd79b52c9ec1e5d443b3344a0bc371ad693198d898" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64744258, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GAJOAYF7JRQNPAFECS7SDYAKPPZHEUVSDMHFHPKYWYWECIDAMTTFUBRW" - }, - { - "bytes": "2a985dfec5725f2b39ecd7d80d4b3918371094b07cd192228a6bf6c8afbfeebc" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716452, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GB2DG2EQGAUIW6VFQ5I62RMXJBWUBAKYBKCY77Z7UEJUCYHX4IPEGEOA" - }, - { - "bytes": "817334f6619850a492a30016f581065f46a8d50a72ad9de37e262ec657038205" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716661, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GB4O24QI4GT65UXRBH2ZVXPKDCS3HF7UXSCW4ZBU4JUE52RAS7OS7GNH" - }, - { - "bytes": "56fde4b86b5368984c68f7d66509fea53d53ff59c59bd9c5bc1623ee6b5dd173" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720595, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GBMFSMT3OK6T7LOWJBINEAGN7W26GLOCAFOV5GQU2ORSHI6Z2SBFP3OM" - }, - { - "bytes": "7d6d9f14d881d4353ee8d95b1301e39f9f84d577f58168c71eab9f401f6bdebe" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64725863, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GBZIEOJ4VXBSNSLQQ73ZXLACAOU7PNR3JIOMT33PYE46UTB47PLIYIPC" - }, - { - "bytes": "d16b2d324b714b5e9f7f32679d82b734f79b95fcae3c862a85862cf10ae6e2b9" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716227, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GC3Q4CJXKLYESHLL4C34CT3ENOT4TXDO3W4PRIQ3C7TC4FHTRAQ5S37J" - }, - { - "bytes": "6967139714f2257e15279f0bcfbbb9a511ff9aa31345f0eb0d91d21603613fa5" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716417, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GC7PKCYZRRDRT6HBGPPON4NKQGHKNJJJQ7JN74TM5XBHFH7JBVI7LBR6" - }, - { - "bytes": "b8707f7958a6f9dce24330631cc5e7bca2a461d93961c0f1f5dcfefc40b21254" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716248, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GCFZKKIYA4QFR2H2QZZ4QHRPZBUU7XRILEQHNYB2FTYRSP7XGP6F645Y" - }, - { - "bytes": "9d3b2a9bd6b7e85b73cc3e11ba3e00b7181bc9a0fd66979059f37b5c00673e2f" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716883, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GCWZYXNRZLK3XNGUYH36UZZRQGEU47CRUNUPKYHZP7PJFNHBZC7Z46EP" - }, - { - "bytes": "38496d6edbdcfd55cb10d91ec919b96491cfbc3720d08913bc1675ce2348fb61" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64731045, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDGZXEANOXIJRO5CGHDUTWDARC43OBEFWZF2ORWCMGTMQD6OELJ5VQPF" - }, - { - "bytes": "5d0047ed8b56184af933efb74fc34a0038cf02bcaaff208bdaeca4a23e2a5d16" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64718487, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDHEFAG7XPZ4UZXDT7OT342PYTCF7OQQ34LZJNOWK5CLRLTLXJAYENKI" - }, - { - "bytes": "643855ab1d882ef7ce2bdb6db9ab4d369ed4777cf80cacdec75a8d3c5e520ca9" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717681, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDJUY3N2IVMYWPWL5CHEIGQHSMBQROELUHF4QTIMC56GVO27FLKDEPUS" - }, - { - "bytes": "72bbad2f49ae72c2589412d25e0664000f5db8d0209f741402b04443ffb4d26e" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716274, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDNWNV2PBY54YRL45GVHRDHA737SEPL6BZMAKRI2IDRKUEP56GERIHDT" - }, - { - "bytes": "9a3044b18b16793d948cb4de9c7ee78840e03e5668ed71e464062962bb379ee0" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716395, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDQRHRIHCEFBBBGV25MVVV4CPOZKGC3L2WE2VEAJP5YU3MGYSXU472DT" - }, - { - "bytes": "5606e5d2deee036395be7bfb68030ec33c93c6fe81a9bcc01ff8b190bb1cdaeb" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64028245, + "last_modified_ledger_seq": 64998691, "data": { "contract_data": { "ext": "v0", @@ -61868,7 +61370,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "6b4804920a4068dfdcaaa711fac6390850e0a92f4b5ed4e46259694b61cbae12" + "wasm": "8a8a1208801c36f5d6e0b90eca4783f3d6789a10b26cf40b062782bfae5731c0" }, "storage": [ { @@ -61919,6 +61421,18 @@ "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" } }, + { + "key": { + "vec": [ + { + "symbol": "MigratedToVersion" + } + ] + }, + "val": { + "string": "1.2.1" + } + }, { "key": { "vec": [ @@ -61940,7 +61454,7 @@ ] }, "val": { - "string": "1.2.0" + "string": "1.2.1" } } ] @@ -62702,1626 +62216,6 @@ }, "live_until": 4294967295 }, - { - "entry": { - "last_modified_ledger_seq": 64716395, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "01db3d43a288d7230c6ea0b4d622b23008a04219f6991d4de308ff89e4e6b58f" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64744258, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "125c0ba8599d511281f35bf56dd29b475381b167c1052da423b41d69d1792612" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717681, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "249d432a5047200e2955d03145eee3e810ee63724d9184a6ee28731ffab48464" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720595, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "279722735b0a419d060cf41ae52b499e9fc5a470e290321726dda4c2dcfe15d6" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716661, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "294d150cc065abca649339c2df7095a04acc47a9bdf005b36f92b0506ceab9af" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716452, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "2c02954e79eef64bd70cb5bce96f0103e3769ca1ffd390f223b2b6120fc4dd5d" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716395, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "2e4bb173893517d37982de249b1934f761712990043520257ca9a545ccfbad72" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717681, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "31e402693cb5e05fe9dbac358ccf16835b281663fe64317d1d8f5c510f37f085" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64731045, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "3820ffdeabc365bba5f584fc498c92c386738fe0a2b8d73622dc503f65262774" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64731045, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "3bad368bff93e88e28d24d4cda9b3ffb26d19c1739655aa2038ad21447d648f1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64744258, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "410a3ee873bbc8ebdf69a61036f393e4a2640060e13e59abacf96914eb460653" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716417, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "43cfdf3400d98214e4c01e6678692ca06b5f21bce53c74a77e9010bc8f7b6d69" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717681, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "4472e2b7611d9b15ce02c6932ddb43e94ea46d2a204b90529b19b15c5e608153" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716274, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "4ca4cc75029684ddbd0488b4155ebd873f30f046c864cc645ba641d4335ea574" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716336, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "4d388f80c3623386f79fc128a7f6c5cd3e3f4f69fa5fd0e2b99d6b1cd1842ce9" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64718487, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "504cb81d1d84971bdfa07bab7a5a841792f03bd5657fb2338d8d69c282a6d791" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716336, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "5073b34e344879a5c4492913d6809f83c9483438e681ba37df2705674d6f2b1f" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64731045, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "54ddcb7e326f503f0aea8e3c751b4d3ca5724b211dddc17c3e435b969e239764" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716274, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "563fe23cbca992539e9844c1820e8c86ddaa919cb18be05ca375297d674bae14" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716883, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "58d393a0715bf36ce4d40dbd39c351348be014b7f4749f9a52cac2ba603cd42a" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716883, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "5ad4ef7ddaf2a216fa4a662c4e0c82c2ab73e491627d1131eaeeeed6e20bfa21" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64718487, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "5c0e35594022bf9bc28d5010ffa97ab7048e83433e770a539894d475e9c40f4b" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64718487, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "5c1ed3efa4a27be76d59ba750d43a786bb63639e666305bdf6ed65857137ba82" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64725863, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "621f2ba6c0a78f51d784b0b4f02ffd4dbb790d547b6c1e48b491305704db4523" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716883, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "623c7a04f3bd791672d53918d9884a54b433c73ed7bbbfef9fac6f93028e7a9a" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716227, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "667f927324162e7f95272e655700bab769d246419022f9012e03507c4fb84463" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716274, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "7aa4fcd3db61739fdb517bdbd72f62704eb6ca7c0982b8592445ed5c9da6efc0" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64744258, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "8626eade51da81fe77ca224f38b4e8927fd0fcd900be9cd02a57e4691efa1b73" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716227, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "97c9a4868c91b4c181971827b41dcb7f8bb14d6499c893bb73e615f60f4016c1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716417, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "99760919238dd783d423ba2115a47e6902144a2889d58405c8dfba4faee6c365" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716417, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "a20cd48eb093fff7ccad6eb96193597910dd3ecc5d5457c2e15c492d4879e9b1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716661, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "ae78d278c7495b4a2a47a2e898f652345a705c403cb3ea52fe5dcae81003a2b6" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716336, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "b27732042ae65d0805423bb14ce591472e398933ec76adfab67db92915114640" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716248, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "bb1dfae0725378e5056f234e49adfec390d9e5efb847cf749d1bd995d77f4ee9" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716248, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "bdcf5f7e78ac69557b72a7e270a49a26d58854483347f8099f58bdaef57b9c13" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716661, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "cbf0696e7b5e200130091b0a3f9953af63fa8f041f50caba11fc2297ac488eb1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716248, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "cf8f3f2f8cf60940d7f76fa94f28ce34766db07b2a96e37487cd42f813a9fe63" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716452, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "d032a0ddea7507fa3e2db42b9dd40970eafab2aa43c8abe145d981b065845576" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720595, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "d588079c030cae697c6ae8074d66dbe80e57b3f7e0aa046dc2956ac2526be065" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64725863, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "d7c0810e175d3f2fb170afa4bab5ed5021f5b3b520e5827518d0e2226fdb5257" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64725863, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "e715d21575527897d01df64aadb1aead89a70494f5e6418a1b564c30927026cc" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720595, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "ea6eae11b69cd20344f70d7f0d0951864de7a819252f151451acbd91d391bb58" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716395, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "ee71cf8ac795827fd4853de0a89fdbb2bbda8c073c937b3fd5f4982abd8dc864" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716452, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "fe3ef87f87aa7e43de0a2d25062b5ce792efe814c12af4cfeb1513f0ec6d6402" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64716227, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ" - }, - { - "bytes": "fe58d0aafbd59de36b532a84555965aa667d6b58fbbcb04ed0d64ea450e6d749" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64733458, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GAJCILKZETMMCXMNJXBBFZ5ZVAFHXVGPQSMXY6U7YDX6UCSZN4VMJGU6" - }, - { - "bytes": "281acc48a1071a5174ce468e3e891db8aa5097ab475a10288a2e27458b39d225" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64721118, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GARFFI5UVYEUMHDJY24KWDFU7R737JF23JUQSN5BIOUHS4BAEIJO6MEV" - }, - { - "bytes": "2d6258a6c0a924cdd148d624afd05fb0bebbe2816416e14290a0527d50ce9b7c" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64720408, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GBOEU2VQWDUHUZSH3CBUEFHROAL3DTENFW6ENLQY6J3LCV2YPLVDDLHD" - }, - { - "bytes": "773e3f8e6dbcc5ec5b31aff5a87000b443286a6ad90f8a63836b96962efffc19" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64717103, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GBVKX7526IBKIH4FSFXHNSUUIWW5H7YK7URYGFDR62C622BC62WBFEIF" - }, - { - "bytes": "120b565bef566f799b952e0c6c1bc13ae341cdfc2822bd0b5f13439bef1f3188" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64730224, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDFGP2CRVW27SRQWQWVEM2A6OFCJEC45LSYE6ZNBQBHLFYMM2R5KDMEQ" - }, - { - "bytes": "f5303ff9aea56e0fad139ef2deaeb7a5aa9f36f06074f9a01d83e75997d536f1" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64726495, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDN6VFHTBQN46TDAGZYUZYZZQ7HLH5VPG6W6ZCVCBHASWZMHRUYLTYFV" - }, - { - "bytes": "bc87f63cabbacad5e8f9e8e5ea8e50f037f3521073455f2644f606a8db17c6f5" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64703375, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDQ5KKVQDXPYAFQ7H4YG4G7W2NJ5S3UDV6MN4EICCTUXHQJ5GRAPGALV" - }, - { - "bytes": "aeed3b6b7151731d9b66f593b1dcad83aa866b46e5f7c0f515e719ad79e985d4" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64700907, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDQKNUFEA33EKGNDKZ5W5PSRLADVF7563RLJW2MBCLS5WAQVOGQUI6SF" - }, - { - "bytes": "cd86f0cc0627a354d521c9d4aacd65851e7bcc8beedebdf3f6052941278f9bfc" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64715256, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "OpSeen" - }, - { - "address": "GDRDXLBZN6SOXMKXIUNRWNJTMHBNYMCL4666LOZATBLFYYFM2RQMLXIF" - }, - { - "bytes": "70a739b3ace269e39e17219df69144d8a41b411ecb80419ef7f4994ae89df124" - } - ] - }, - "durability": "temporary", - "val": { - "bool": true - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, { "entry": { "last_modified_ledger_seq": 64418211, @@ -69032,227 +66926,271 @@ }, { "entry": { - "last_modified_ledger_seq": 64239038, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAOMRKOZJOXUHI3PHRPRQUORZ4NXZVSCRZSHDJJYEYNFBWZIO5WMRZJ3" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1788350883" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64484839, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAPF3JTLOTEK6AKE2Z74V7N35M7KMYU6RDZ6O3H77VDUXBU4WZ5QT33Y" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1789709973" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64444396, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAPFD4AVZGSXJGZ6SQBM4VOVNAVCZHGQT7UXALJSNDZAN45DCBFNVFZP" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1789499483" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64461437, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAPFZQGAWS3H3DVOKDHSBPYPZERHNNQIC7J6JT4L2XGAMIPCUQ3PMO4G" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1789592961" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64494897, - "data": { - "contract_data": { - "ext": "v0", - "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "key": { - "vec": [ - { - "symbol": "Profile" - }, - { - "address": "GAPS5LQAH6LLBRSFX23COJV6NAN32T7SMX5Y3BRQZIIFMRZJCRWLOQWT" - } - ] - }, - "durability": "persistent", - "val": { - "map": [ - { - "key": { - "symbol": "bootstrapped_at" - }, - "val": { - "u64": "1789760263" - } - }, - { - "key": { - "symbol": "reputation" - }, - "val": { - "u64": "0" - } - } - ] - } - } - }, - "ext": "v0" - }, - "live_until": 4294967295 - }, - { - "entry": { - "last_modified_ledger_seq": 64622360, + "last_modified_ledger_seq": 64239038, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAOMRKOZJOXUHI3PHRPRQUORZ4NXZVSCRZSHDJJYEYNFBWZIO5WMRZJ3" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1788350883" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64484839, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAPF3JTLOTEK6AKE2Z74V7N35M7KMYU6RDZ6O3H77VDUXBU4WZ5QT33Y" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1789709973" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64444396, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAPFD4AVZGSXJGZ6SQBM4VOVNAVCZHGQT7UXALJSNDZAN45DCBFNVFZP" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1789499483" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64461437, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAPFZQGAWS3H3DVOKDHSBPYPZERHNNQIC7J6JT4L2XGAMIPCUQ3PMO4G" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1789592961" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64494897, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAPS5LQAH6LLBRSFX23COJV6NAN32T7SMX5Y3BRQZIIFMRZJCRWLOQWT" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1789760263" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64622360, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GAQ2WKE3ZN4TOVK3AJ6N6BJ4SEDBSCZ4CIFOOKWGNPIYTI3SJWRDE4JU" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1790397579" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, + { + "entry": { + "last_modified_ledger_seq": 64460770, "data": { "contract_data": { "ext": "v0", @@ -69263,7 +67201,7 @@ "symbol": "Profile" }, { - "address": "GAQ2WKE3ZN4TOVK3AJ6N6BJ4SEDBSCZ4CIFOOKWGNPIYTI3SJWRDE4JU" + "address": "GAQ6OTASPOWLUYVTU5FUYX5SCCGRJZEWV6PZM2IGYR2E7JDYVPWBNCJL" } ] }, @@ -69275,7 +67213,7 @@ "symbol": "bootstrapped_at" }, "val": { - "u64": "1790397579" + "u64": "1789589626" } }, { @@ -69296,7 +67234,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64460770, + "last_modified_ledger_seq": 64488177, "data": { "contract_data": { "ext": "v0", @@ -69307,7 +67245,7 @@ "symbol": "Profile" }, { - "address": "GAQ6OTASPOWLUYVTU5FUYX5SCCGRJZEWV6PZM2IGYR2E7JDYVPWBNCJL" + "address": "GAQEWMDNCGENYPCMQBFOGGVZ5A4SKSA74ENCAOBW4YOMTFOH34LJHLDE" } ] }, @@ -69319,7 +67257,7 @@ "symbol": "bootstrapped_at" }, "val": { - "u64": "1789589626" + "u64": "1789726663" } }, { @@ -69340,7 +67278,7 @@ }, { "entry": { - "last_modified_ledger_seq": 64488177, + "last_modified_ledger_seq": 64769929, "data": { "contract_data": { "ext": "v0", @@ -69351,7 +67289,7 @@ "symbol": "Profile" }, { - "address": "GAQEWMDNCGENYPCMQBFOGGVZ5A4SKSA74ENCAOBW4YOMTFOH34LJHLDE" + "address": "GAQRT2QHEATXYYCT55Q4Z5NATHICL7TQE75KCNMKOVDN6Z5SRBFUMXZZ" } ] }, @@ -69363,7 +67301,7 @@ "symbol": "bootstrapped_at" }, "val": { - "u64": "1789726663" + "u64": "1791135427" } }, { @@ -75410,6 +73348,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64937792, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GBMIKAP2DYVMIN3LQ3REIU3DD6OKERF73P5NUFN75REZZGIW47WEY5GL" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791974742" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 63807895, @@ -86630,6 +84612,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64821445, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GD42KRA5YPQOU7RGQDRFDIYXKXUL5BSVXBQWERBIXEJMTLOTFPGZDD7Q" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791393007" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 64329545, @@ -89490,6 +87516,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64772566, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GDJU6C5WBPMHH7QSYFW5GIOSJOFYIZVQVVTCS4VX5YLI3DFD5LXQEODC" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791148612" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 64717681, @@ -92614,6 +90684,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64773614, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GDVP2PZAYAWYD5WGXPFLWSPW4N52D6MUCGZZ5W2LN3QE3DBU4VD3XRUE" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791153852" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 64318412, @@ -92658,6 +90772,50 @@ }, "live_until": 4294967295 }, + { + "entry": { + "last_modified_ledger_seq": 64816897, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", + "key": { + "vec": [ + { + "symbol": "Profile" + }, + { + "address": "GDWK55PDN7DN24JWB7R33EMR3POW7QRFCTHODLSCCBYEHXNPQUVVD4MV" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "bootstrapped_at" + }, + "val": { + "u64": "1791370267" + } + }, + { + "key": { + "symbol": "reputation" + }, + "val": { + "u64": "0" + } + } + ] + } + } + }, + "ext": "v0" + }, + "live_until": 4294967295 + }, { "entry": { "last_modified_ledger_seq": 63893818, diff --git a/contracts/compatibility/fixtures/manifest.json b/contracts/compatibility/fixtures/manifest.json index b1992f7..93305b7 100644 --- a/contracts/compatibility/fixtures/manifest.json +++ b/contracts/compatibility/fixtures/manifest.json @@ -3,28 +3,28 @@ "file": "mainnet-state.json", "network": "mainnet", "network_id": "7ac33997544e3175d266bd022439b22cdb16508c01163f26e5cb2a3e1045a979", - "ledger": 64747647, - "timestamp": 1791024017, + "ledger": 65003455, + "timestamp": 1792303057, "protocol": 29, "events_contract": "CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", "profile_contract": "CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", "capture_script": "scripts/capture-mainnet-compat-snapshot.sh", - "sha256": "177c904b2f24ad2300b57a317fe750a58858180cdcef052f9472c1f5fc2c2a06" + "sha256": "0096703064e2ae1463670e0f1cdb29ae6909298270d9971458d8492f0bf547ac" }, "wasm": [ { - "file": "mainnet-events-1.7.0.wasm", - "sha256": "b87365c16102f7242a8fc3e770f615991841741c40673bb241cb254130be4c26", + "file": "mainnet-events-1.8.0.wasm", + "sha256": "acf70ca019f75ee6bc60f7806254dfb3508fd5a76634c708977e6030870dc654", "source": "mainnet contract CCFVEGOQJEM47LRAJU2LHEK4KTL5VYN7AOGZ2HH2GNHAMXTILNMMJGQZ", - "soroban_sdk": "27.0.0", - "contractmeta_version": "1.7.0" + "soroban_sdk": "28.0.0", + "contractmeta_version": "1.8.0" }, { - "file": "mainnet-profile-1.2.0.wasm", - "sha256": "6b4804920a4068dfdcaaa711fac6390850e0a92f4b5ed4e46259694b61cbae12", + "file": "mainnet-profile-1.2.1.wasm", + "sha256": "8a8a1208801c36f5d6e0b90eca4783f3d6789a10b26cf40b062782bfae5731c0", "source": "mainnet contract CD3KH4OE7HDHHHUYFX3U4L7NLIILMXAY6HM5FEH2UH6UBOKX4HDNE3PC", - "soroban_sdk": "27.0.0", - "contractmeta_version": "1.2.0" + "soroban_sdk": "28.0.0", + "contractmeta_version": "1.2.1" } ] } diff --git a/contracts/compatibility/src/lib.rs b/contracts/compatibility/src/lib.rs index c036a31..ae0936e 100644 --- a/contracts/compatibility/src/lib.rs +++ b/contracts/compatibility/src/lib.rs @@ -1,10 +1,10 @@ #![cfg(test)] -//! Replays the mainnet upgrade from the deployed builds (events 1.7.0, profile -//! 1.2.0) to the release build of this tree, against contract storage captured -//! from a mainnet ledger. Everything readable before the upgrade must read the -//! same after it, the records still in the pre-1.7.0 layout must convert, and -//! the upgraded pair must run a grant end to end. +//! Replays the next mainnet upgrade from the deployed builds (events 1.8.0, +//! profile 1.2.1) to the release build of this tree, against contract storage +//! captured from a mainnet ledger. Every event must read the same after the +//! upgrade as before it, and the upgraded events contract must run grants end +//! to end against the deployed profile. use std::fmt::Debug; @@ -14,16 +14,16 @@ use boundless_events::types::{ use boundless_events::EventsContractClient; use boundless_profile::ProfileContractClient; use soroban_sdk::{ - testutils::{Address as _, BytesN as _}, + testutils::{Address as _, BytesN as _, Ledger as _}, token, vec, Address, BytesN, Env, Map, String, }; mod deployed_events { - soroban_sdk::contractimport!(file = "fixtures/mainnet-events-1.7.0.wasm"); + soroban_sdk::contractimport!(file = "fixtures/mainnet-events-1.8.0.wasm"); } mod deployed_profile { - soroban_sdk::contractimport!(file = "fixtures/mainnet-profile-1.2.0.wasm"); + soroban_sdk::contractimport!(file = "fixtures/mainnet-profile-1.2.1.wasm"); } const SNAPSHOT: &str = "mainnet-state.json"; @@ -33,6 +33,10 @@ const ADMIN: &str = "GCVK72I6TVJVDTTY4UKU6MQT4QJ2T2AAG3NULNEUDM46L3UOQYDSO4O2"; const FEE_ACCOUNT: &str = "GADSIP2HPINWTMEUNMVYA5NJRL372OV52HDEJTRTLDZXMHADIPQNYH55"; const MAINNET_USDC: &str = "CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75"; const PAGE: u32 = 90; +const DEPLOYED_EVENTS: &str = "1.8.0"; +const DEPLOYED_PROFILE: &str = "1.2.1"; +const RELEASE_EVENTS: &str = "2.1.0"; +const UPGRADE_TIMELOCK_LEDGERS: u32 = 17_280; /// The release build this tree produces. The replay upgrades into the exact /// artifact that would be proposed on chain, so it is read from the build @@ -163,6 +167,14 @@ fn view_after(events: &EventsContractClient, id: u64) -> EventView { #[test] #[ignore = "needs the release wasm; run scripts/test-storage-compat.sh"] fn mainnet_upgrades_from_the_deployed_builds_to_this_tree() { + // Only events upgrades because this tree's profile is the deployed build. + // A profile change has to be replayed here before it can ship. + assert!( + include_str!("../../profile/Cargo.toml") + .contains(&format!("\nversion = \"{DEPLOYED_PROFILE}\"\n")), + "profile changed since the deployed {DEPLOYED_PROFILE}; replay its upgrade too" + ); + let env = mainnet_env(); let events_id = addr(&env, EVENTS_ID); let profile_id = addr(&env, PROFILE_ID); @@ -173,24 +185,26 @@ fn mainnet_upgrades_from_the_deployed_builds_to_this_tree() { env.deployer().upload_contract_wasm(deployed_profile::WASM); let events_v1 = deployed_events::Client::new(&env, &events_id); let profile_v1 = deployed_profile::Client::new(&env, &profile_id); - assert_eq!(events_v1.version(), String::from_str(&env, "1.7.0")); - assert_eq!(profile_v1.version(), String::from_str(&env, "1.2.0")); + assert_eq!(events_v1.version(), String::from_str(&env, DEPLOYED_EVENTS)); + assert_eq!( + events_v1.get_migrated_to_version(), + Some(String::from_str(&env, DEPLOYED_EVENTS)) + ); + assert_eq!( + profile_v1.version(), + String::from_str(&env, DEPLOYED_PROFILE) + ); let first = events_v1.id_base() + 1; let ids = event_ids(&env, &events_id, first); - let mut before = std::vec::Vec::new(); - let mut old_layout = std::vec::Vec::new(); - for id in ids.clone() { - match view_before(&events_v1, id) { - Some(view) => before.push((id, view)), - None => old_layout.push(id), - } - } - assert_eq!( - old_layout, - std::vec![first, first + 1], - "the deployed build cannot read exactly the two pre-1.7.0 records" - ); + let before: std::vec::Vec<(u64, EventView)> = ids + .clone() + .map(|id| { + let view = view_before(&events_v1, id) + .unwrap_or_else(|| panic!("the deployed build cannot read event {id}")); + (id, view) + }) + .collect(); assert!( before.iter().any(|(_, view)| !view.winners.is_empty()), @@ -206,42 +220,44 @@ fn mainnet_upgrades_from_the_deployed_builds_to_this_tree() { .map(|r| profile_v1.get_profile(r).map_or(0, |p| p.reputation)) .collect(); - // The runbook order: profile first, left running; then events, paused - // from propose to unpause. The deployed builds have no upgrade timelock. - let profile_hash = env - .deployer() - .upload_contract_wasm(release_wasm("boundless_profile").as_slice()); - profile_v1.propose_upgrade(&profile_hash, &String::from_str(&env, "1.2.1")); - profile_v1.apply_upgrade(); - let profile = ProfileContractClient::new(&env, &profile_id); - profile.migrate(); - assert!(!profile.is_paused()); - - events_v1.pause(); + // The runbook order (Section 4): propose, wait out the timelock the + // deployed build carries, pause, apply, page, stamp, unpause. let events_hash = env .deployer() .upload_contract_wasm(release_wasm("boundless_events").as_slice()); - events_v1.propose_upgrade(&events_hash, &String::from_str(&env, "2.1.0")); + events_v1.propose_upgrade(&events_hash, &String::from_str(&env, RELEASE_EVENTS)); + let pending = events_v1.get_pending_upgrade().expect("proposal queued"); + assert_eq!( + pending.available_at_ledger - pending.proposed_at_ledger, + UPGRADE_TIMELOCK_LEDGERS + ); + assert_eq!( + events_v1.try_apply_upgrade().unwrap_err().unwrap(), + deployed_events::Error::UpgradeTimelockNotElapsed + ); + env.ledger().with_mut(|ledger| { + ledger.sequence_number = pending.available_at_ledger; + ledger.timestamp += u64::from(UPGRADE_TIMELOCK_LEDGERS) * 5; + }); + + events_v1.pause(); events_v1.apply_upgrade(); let events = EventsContractClient::new(&env, &events_id); assert!(events.is_paused()); - assert_eq!( - events.try_migrate().unwrap_err().unwrap(), - boundless_events::errors::Error::MigrationIncomplete - ); assert_eq!(events.migrate_events(&8), 0); events.migrate(); events.unpause(); - assert_eq!(events.version(), String::from_str(&env, "2.1.0")); - assert_eq!(profile.version(), String::from_str(&env, "1.2.1")); + let profile = ProfileContractClient::new(&env, &profile_id); + assert_eq!(events.version(), String::from_str(&env, RELEASE_EVENTS)); + assert_eq!(profile.version(), String::from_str(&env, DEPLOYED_PROFILE)); assert_eq!( events.get_migrated_to_version(), - Some(String::from_str(&env, "2.1.0")) + Some(String::from_str(&env, RELEASE_EVENTS)) ); assert_eq!( profile.get_migrated_to_version(), - Some(String::from_str(&env, "1.2.1")) + Some(String::from_str(&env, DEPLOYED_PROFILE)) ); assert_eq!(events.get_admin(), addr(&env, ADMIN)); assert_eq!(profile.get_admin(), addr(&env, ADMIN)); @@ -257,20 +273,6 @@ fn mainnet_upgrades_from_the_deployed_builds_to_this_tree() { assert_eq!(&view_after(&events, *id), view, "event {id} changed"); } - // Percentages were always taken of the budget, so each converted floor is - // exactly what the old record would have paid that position. - for id in old_layout { - let event = events.get_event(&id); - let winners = view_after(&events, id).winners; - assert!(!event.prize_floors.is_empty()); - let floors_total: i128 = event.prize_floors.values().iter().sum(); - assert!(floors_total <= event.total_budget); - for (recipient, position, amount, milestone, paid_at) in winners { - assert!(milestone.is_none() && paid_at.is_some(), "{recipient:?}"); - assert_eq!(event.prize_floors.get(position), Some(amount)); - } - } - for (recipient, reputation) in recipients.iter().zip(reputations_before) { let after = profile.get_profile(recipient).map_or(0, |p| p.reputation); assert_eq!(after, reputation); diff --git a/docs/storage-compatibility.md b/docs/storage-compatibility.md index e144e47..3c13478 100644 --- a/docs/storage-compatibility.md +++ b/docs/storage-compatibility.md @@ -2,25 +2,28 @@ `contracts/compatibility` replays the next mainnet upgrade against real mainnet storage. It loads contract data captured from a mainnet ledger, runs the builds -deployed on mainnet at that ledger, then proposes, applies and migrates the release build -of this tree the way `docs/upgrade-runbook.md` does it on chain: +deployed on mainnet at that ledger, then proposes, applies and migrates the +release build of this tree the way `docs/upgrade-runbook.md` does it on chain. +Mainnet runs events 1.8.0 and profile 1.2.1, and this tree's profile is still +1.2.1, so only events upgrades: 1. Read every event, every winner record and the reputation of every winner - through the deployed events 1.7.0 and profile 1.2.0 builds. The two records - still in the pre-1.7.0 layout cannot be read by 1.7.0, and the test requires - exactly those two to fail. -2. Upgrade the profile (propose, apply, migrate; it stays running), then pause - events, propose and apply its release build (the deployed builds have no - upgrade timelock), page `migrate_events`, check that `migrate` refuses with - `MigrationIncomplete` before the conversion and stamps after it, and - unpause. -3. Read everything again through events 2.1.0 and profile 1.2.1 and require the - same values. The two converted records must carry prize floors equal to what - each position was paid. -4. Run a grant through the upgraded pair on a fresh token (selection, releases, - a forfeit, the close that returns the forfeited share) and check that event - ids continue from the deployed counter, then a grant published with a - milestone split, paid in full. + through the deployed events 1.8.0 and profile 1.2.1 builds. Every event must + read. +2. Propose the release build of events, check that `apply_upgrade` refuses + until the 17,280-ledger timelock the deployed build carries has passed, then + advance the ledger, pause, apply, page `migrate_events` until it reports 0, + stamp with `migrate`, and unpause. +3. Read everything again through events 2.1.0 and the same profile and require + the same values. +4. Run a grant through the upgraded events contract on a fresh token + (selection, releases, a forfeit, the close that returns the forfeited share) + and check that event ids continue from the deployed counter, then a grant + published with a milestone split, paid in full. + +The test fails straight away if `contracts/profile` no longer reports the +deployed profile version, because a profile change has to be added to the +replay before it ships. The test is marked `#[ignore]` because it needs the release wasm, which a plain `cargo test` does not build. Run it with: @@ -37,14 +40,15 @@ test at a different build directory. ## Fixtures -`mainnet-events-1.7.0.wasm` and `mainnet-profile-1.2.0.wasm` were fetched by hash +`mainnet-events-1.8.0.wasm` and `mainnet-profile-1.2.1.wasm` were fetched by hash from the live mainnet contracts recorded in the manifest (`stellar contract fetch --wasm-hash --network mainnet`). Uploading them is what makes the captured contract instances runnable, so a wrong file fails the test before any assertion. `mainnet-state.json` holds every contract-data entry of the two contracts at -mainnet ledger 64,747,647 (protocol 29). Contract code is +mainnet ledger 65,003,455 (protocol 29), the first archive checkpoint after +the 1.8.0 upgrade was published. Contract code is excluded because the wasm fixtures supply it, and TTLs are normalised to `u32::MAX` so nothing expires while the test advances the ledger. The SDK 28 test host runs protocol 28, so the replay loads the snapshot at protocol 28; nothing @@ -59,7 +63,7 @@ To check that the fixture still reproduces from the history archive (Stellar CLI ## Refreshing for the next upgrade -The fixtures still hold events 1.7.0 and profile 1.2.0. Mainnet has run events 1.8.0 (tag `events-v1.8.0`) and profile 1.2.1 since 17 October 2026, so before the next mainnet upgrade the replay should start from those builds: +Once mainnet runs a newer build, the replay should start from it instead: 1. Fetch the deployed wasm for both contracts by hash into the fixtures directory and replace the two `mainnet-*.wasm` files. @@ -67,5 +71,6 @@ The fixtures still hold events 1.7.0 and profile 1.2.0. Mainnet has run events 1 `./scripts/capture-mainnet-compat-snapshot.sh /tmp/mainnet-state.json ` (an archive checkpoint), copy it to `fixtures/mainnet-state.json`, and record the printed ledger, timestamp, protocol and hash in the manifest. -3. Update the versions the test expects and drop the assertions about the - pre-1.7.0 records, which will no longer exist. +3. Update the deployed and release versions the test expects + (`DEPLOYED_EVENTS`, `DEPLOYED_PROFILE`, `RELEASE_EVENTS`), and add a profile + upgrade to the replay if this tree changes the profile.