From 7f85ae9b6a1edb48dad6475620084165ee64bd64 Mon Sep 17 00:00:00 2001 From: euonymos Date: Wed, 30 Oct 2024 18:50:08 -0600 Subject: [PATCH 01/18] feat: use clb in lieu of cardano-node for testenet-test --- NOTES.md | 8 + flake.lock | 6918 +++++++++--------------------- flake.nix | 10 +- nix/default.nix | 2 + src/Internal/QueryM/Ogmios.purs | 10 +- src/Internal/Testnet/Server.purs | 6 +- 6 files changed, 2025 insertions(+), 4929 deletions(-) create mode 100644 NOTES.md diff --git a/NOTES.md b/NOTES.md new file mode 100644 index 0000000000..fa27043f19 --- /dev/null +++ b/NOTES.md @@ -0,0 +1,8 @@ +Curently failing 7 tests are: +* Get ChainTip +* wait for slot far in the future +* Getting transaction metadata +* Query for current time and era summaries +* acquireMempoolSnapshot +* fetchMempoolTXs +* mempoolSnapshotSizeAndCapacity diff --git a/flake.lock b/flake.lock index 4127e31052..dc9ea56e27 100644 --- a/flake.lock +++ b/flake.lock @@ -20,15 +20,15 @@ "CHaP_2": { "flake": false, "locked": { - "lastModified": 1702906471, - "narHash": "sha256-br+hVo3R6nfmiSEPXcLKhIX4Kg5gcK2PjzjmvQsuUp8=", - "owner": "IntersectMBO", + "lastModified": 1727170555, + "narHash": "sha256-kxB/xjSjqym5kKYDw/CZMb6O1OfCVWRjjsuqyWABd0w=", + "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "48a359ac3f1d437ebaa91126b20e15a65201f004", + "rev": "d8beaf7e30330f8a70e626f63a5b47d1999fbf4b", "type": "github" }, "original": { - "owner": "IntersectMBO", + "owner": "intersectmbo", "ref": "repo", "repo": "cardano-haskell-packages", "type": "github" @@ -37,15 +37,15 @@ "CHaP_3": { "flake": false, "locked": { - "lastModified": 1686070892, - "narHash": "sha256-0yAYqvCg2/aby4AmW0QQK9RKnU1siQczfbUC6hOU02w=", - "owner": "input-output-hk", + "lastModified": 1724197463, + "narHash": "sha256-/ZHOKRX84tXckstr6rTYyjytF2yfrIpvGujRLyjZfUE=", + "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "596cf203a0a1ba252a083a79d384325000faeb49", + "rev": "610a202920ffe1d371035d35053152e9a0c77fce", "type": "github" }, "original": { - "owner": "input-output-hk", + "owner": "intersectmbo", "ref": "repo", "repo": "cardano-haskell-packages", "type": "github" @@ -54,11 +54,11 @@ "CHaP_4": { "flake": false, "locked": { - "lastModified": 1702593630, - "narHash": "sha256-IWu27+sfPtazjIZiWLUm8G4BKvjXmIL+/1XT/ETnfhg=", + "lastModified": 1725372492, + "narHash": "sha256-eQwfZIEHH5qHZQHXujgjj35dVAqSZa6EbTRWeppn1ME=", "owner": "input-output-hk", "repo": "cardano-haskell-packages", - "rev": "9783a177efcea5beb8808aab7513098bdab185ba", + "rev": "05c9f8fb28fde6e46d8768ce396a4482883d6bab", "type": "github" }, "original": { @@ -68,23 +68,6 @@ "type": "github" } }, - "CHaP_5": { - "flake": false, - "locked": { - "lastModified": 1724197463, - "narHash": "sha256-/ZHOKRX84tXckstr6rTYyjytF2yfrIpvGujRLyjZfUE=", - "owner": "intersectmbo", - "repo": "cardano-haskell-packages", - "rev": "610a202920ffe1d371035d35053152e9a0c77fce", - "type": "github" - }, - "original": { - "owner": "intersectmbo", - "ref": "repo", - "repo": "cardano-haskell-packages", - "type": "github" - } - }, "HTTP": { "flake": false, "locked": { @@ -101,22 +84,6 @@ "type": "github" } }, - "HTTP_10": { - "flake": false, - "locked": { - "lastModified": 1451647621, - "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", - "owner": "phadej", - "repo": "HTTP", - "rev": "9bc0996d412fef1787449d841277ef663ad9a915", - "type": "github" - }, - "original": { - "owner": "phadej", - "repo": "HTTP", - "type": "github" - } - }, "HTTP_2": { "flake": false, "locked": { @@ -229,25 +196,9 @@ "type": "github" } }, - "HTTP_9": { - "flake": false, - "locked": { - "lastModified": 1451647621, - "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=", - "owner": "phadej", - "repo": "HTTP", - "rev": "9bc0996d412fef1787449d841277ef663ad9a915", - "type": "github" - }, - "original": { - "owner": "phadej", - "repo": "HTTP", - "type": "github" - } - }, "agenix": { "inputs": { - "nixpkgs": "nixpkgs_38" + "nixpkgs": "nixpkgs_20" }, "locked": { "lastModified": 1641576265, @@ -265,8 +216,8 @@ }, "agenix-cli": { "inputs": { - "flake-utils": "flake-utils_21", - "nixpkgs": "nixpkgs_39" + "flake-utils": "flake-utils_12", + "nixpkgs": "nixpkgs_21" }, "locked": { "lastModified": 1641404293, @@ -284,8 +235,8 @@ }, "agenix-cli_2": { "inputs": { - "flake-utils": "flake-utils_22", - "nixpkgs": "nixpkgs_41" + "flake-utils": "flake-utils_13", + "nixpkgs": "nixpkgs_23" }, "locked": { "lastModified": 1641404293, @@ -303,8 +254,8 @@ }, "agenix-cli_3": { "inputs": { - "flake-utils": "flake-utils_33", - "nixpkgs": "nixpkgs_70" + "flake-utils": "flake-utils_24", + "nixpkgs": "nixpkgs_52" }, "locked": { "lastModified": 1641404293, @@ -322,7 +273,7 @@ }, "agenix_2": { "inputs": { - "nixpkgs": "nixpkgs_40" + "nixpkgs": "nixpkgs_22" }, "locked": { "lastModified": 1641576265, @@ -415,7 +366,7 @@ }, "agenix_6": { "inputs": { - "nixpkgs": "nixpkgs_69" + "nixpkgs": "nixpkgs_51" }, "locked": { "lastModified": 1641576265, @@ -483,7 +434,7 @@ "alejandra": { "inputs": { "flakeCompat": "flakeCompat", - "nixpkgs": "nixpkgs_64" + "nixpkgs": "nixpkgs_46" }, "locked": { "lastModified": 1646360966, @@ -499,51 +450,6 @@ "type": "github" } }, - "ameba-src": { - "flake": false, - "locked": { - "lastModified": 1679041484, - "narHash": "sha256-pc9mtVR/PBhM5l1PnDkm+y+McxbrfAmQzxmLi761VF4=", - "owner": "crystal-ameba", - "repo": "ameba", - "rev": "7c74d196d6d9a496a81a0c7b79ef44f39faf41b8", - "type": "github" - }, - "original": { - "owner": "crystal-ameba", - "ref": "v1.4.3", - "repo": "ameba", - "type": "github" - } - }, - "auth-keys-hub": { - "inputs": { - "crystal": "crystal", - "flake-parts": "flake-parts_2", - "inclusive": "inclusive", - "nixpkgs": [ - "cardano-nix", - "cardano-db-sync", - "cardano-parts", - "nixpkgs" - ], - "statix": "statix", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1691483346, - "narHash": "sha256-wvn84eGcc+PMbq/qSCWcZ/kV7/bjwuGOVSn/9rGaaKw=", - "owner": "input-output-hk", - "repo": "auth-keys-hub", - "rev": "ab7c79f49886b8f24cfae4b967a59ea62af9156e", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "auth-keys-hub", - "type": "github" - } - }, "bats-assert": { "flake": false, "locked": { @@ -592,22 +498,6 @@ "type": "github" } }, - "bats-assert_4": { - "flake": false, - "locked": { - "lastModified": 1636059754, - "narHash": "sha256-ewME0l27ZqfmAwJO4h5biTALc9bDLv7Bl3ftBzBuZwk=", - "owner": "bats-core", - "repo": "bats-assert", - "rev": "34551b1d7f8c7b677c1a66fc0ac140d6223409e5", - "type": "github" - }, - "original": { - "owner": "bats-core", - "repo": "bats-assert", - "type": "github" - } - }, "bats-support": { "flake": false, "locked": { @@ -656,61 +546,28 @@ "type": "github" } }, - "bats-support_4": { - "flake": false, - "locked": { - "lastModified": 1548869839, - "narHash": "sha256-Gr4ntadr42F2Ks8Pte2D4wNDbijhujuoJi4OPZnTAZU=", - "owner": "bats-core", - "repo": "bats-support", - "rev": "d140a65044b2d6810381935ae7f0c94c7023c8c3", - "type": "github" - }, - "original": { - "owner": "bats-core", - "repo": "bats-support", - "type": "github" - } - }, - "bdwgc-src": { - "flake": false, - "locked": { - "lastModified": 1661523039, - "narHash": "sha256-UYJQGeSykmfydGAmTlNJNyAPBasBkddOSoopBHiY7TI=", - "owner": "ivmai", - "repo": "bdwgc", - "rev": "cd1fbc1dbfd2cc888436944dd2784f39820698d7", - "type": "github" - }, - "original": { - "owner": "ivmai", - "ref": "v8.2.2", - "repo": "bdwgc", - "type": "github" - } - }, "bitte": { "inputs": { "agenix": "agenix", "agenix-cli": "agenix-cli", - "blank": "blank_6", + "blank": "blank_5", "capsules": "capsules", "data-merge": "data-merge", "deploy": "deploy_2", - "fenix": "fenix_6", - "hydra": "hydra_7", - "n2c": "n2c_5", - "nix": "nix_10", - "nixpkgs": "nixpkgs_58", + "fenix": "fenix_4", + "hydra": "hydra_5", + "n2c": "n2c_3", + "nix": "nix_7", + "nixpkgs": "nixpkgs_40", "nixpkgs-docker": "nixpkgs-docker", - "nixpkgs-unstable": "nixpkgs-unstable_8", + "nixpkgs-unstable": "nixpkgs-unstable_5", "nomad-driver-nix": "nomad-driver-nix_2", "nomad-follower": "nomad-follower_2", - "ops-lib": "ops-lib_5", + "ops-lib": "ops-lib_4", "ragenix": "ragenix_3", - "std": "std_6", - "terranix": "terranix_3", - "utils": "utils_18" + "std": "std_5", + "terranix": "terranix_2", + "utils": "utils_16" }, "locked": { "lastModified": 1661790449, @@ -788,20 +645,20 @@ "inputs": { "agenix": "agenix_2", "agenix-cli": "agenix-cli_2", - "blank": "blank_7", + "blank": "blank_6", "deploy": "deploy", - "fenix": "fenix_4", - "hydra": "hydra_6", - "nix": "nix_7", - "nixpkgs": "nixpkgs_44", - "nixpkgs-unstable": "nixpkgs-unstable_7", + "fenix": "fenix_2", + "hydra": "hydra_4", + "nix": "nix_4", + "nixpkgs": "nixpkgs_26", + "nixpkgs-unstable": "nixpkgs-unstable_4", "nomad": "nomad", "nomad-driver-nix": "nomad-driver-nix", "nomad-follower": "nomad-follower", - "ops-lib": "ops-lib_4", + "ops-lib": "ops-lib_3", "ragenix": "ragenix", - "terranix": "terranix_2", - "utils": "utils_13", + "terranix": "terranix", + "utils": "utils_11", "vulnix": "vulnix" }, "locked": { @@ -822,20 +679,20 @@ "inputs": { "agenix": "agenix_6", "agenix-cli": "agenix-cli_3", - "blank": "blank_8", + "blank": "blank_7", "deploy": "deploy_3", - "fenix": "fenix_8", - "hydra": "hydra_8", - "nix": "nix_14", - "nixpkgs": "nixpkgs_73", - "nixpkgs-unstable": "nixpkgs-unstable_9", + "fenix": "fenix_6", + "hydra": "hydra_6", + "nix": "nix_11", + "nixpkgs": "nixpkgs_55", + "nixpkgs-unstable": "nixpkgs-unstable_6", "nomad": "nomad_2", "nomad-driver-nix": "nomad-driver-nix_3", "nomad-follower": "nomad-follower_3", - "ops-lib": "ops-lib_6", + "ops-lib": "ops-lib_5", "ragenix": "ragenix_4", - "terranix": "terranix_4", - "utils": "utils_27", + "terranix": "terranix_3", + "utils": "utils_25", "vulnix": "vulnix_2" }, "locked": { @@ -957,21 +814,6 @@ "type": "github" } }, - "blank_8": { - "locked": { - "lastModified": 1625557891, - "narHash": "sha256-O8/MWsPBGhhyPoPLHZAuoZiiHo9q6FLlEeIDEXuj6T4=", - "owner": "divnix", - "repo": "blank", - "rev": "5a5d2684073d9f563072ed07c871d577a6c614a8", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "blank", - "type": "github" - } - }, "blockfrost": { "inputs": { "nixpkgs": "nixpkgs" @@ -996,16 +838,16 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1716466734, - "narHash": "sha256-h1LdfN/2KlD/XRjgj7rDNRInxSKZCOx6OF4jak/3c/E=", + "lastModified": 1722435302, + "narHash": "sha256-VFPOdOjdpFa3HP6gIgbxVtJsvsL/NU6yPfnxEhHUeTs=", "owner": "blockfrost", "repo": "blockfrost-backend-ryo", - "rev": "7204204615be69b2f298ddf11f9a23dbbb184e55", + "rev": "a54513b83904e8761c4a6fb880238a8d5f3124ed", "type": "github" }, "original": { "owner": "blockfrost", - "ref": "v2.0.3", + "ref": "v2.1.0", "repo": "blockfrost-backend-ryo", "type": "github" } @@ -1030,72 +872,38 @@ "blst_2": { "flake": false, "locked": { - "lastModified": 1656163412, - "narHash": "sha256-xero1aTe2v4IhWIJaEDUsVDOfE77dOV5zKeHWntHogY=", + "lastModified": 1691598027, + "narHash": "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=", "owner": "supranational", "repo": "blst", - "rev": "03b5124029979755c752eec45f3c29674b558446", + "rev": "3dd0f804b1819e5d03fb22ca2e6fac105932043a", "type": "github" }, "original": { "owner": "supranational", + "ref": "v0.3.11", "repo": "blst", - "rev": "03b5124029979755c752eec45f3c29674b558446", "type": "github" } }, "blst_3": { "flake": false, "locked": { - "lastModified": 1656163412, - "narHash": "sha256-xero1aTe2v4IhWIJaEDUsVDOfE77dOV5zKeHWntHogY=", + "lastModified": 1691598027, + "narHash": "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=", "owner": "supranational", "repo": "blst", - "rev": "03b5124029979755c752eec45f3c29674b558446", + "rev": "3dd0f804b1819e5d03fb22ca2e6fac105932043a", "type": "github" }, "original": { "owner": "supranational", + "ref": "v0.3.11", "repo": "blst", - "rev": "03b5124029979755c752eec45f3c29674b558446", "type": "github" } }, "blst_4": { - "flake": false, - "locked": { - "lastModified": 1656163412, - "narHash": "sha256-xero1aTe2v4IhWIJaEDUsVDOfE77dOV5zKeHWntHogY=", - "owner": "supranational", - "repo": "blst", - "rev": "03b5124029979755c752eec45f3c29674b558446", - "type": "github" - }, - "original": { - "owner": "supranational", - "repo": "blst", - "rev": "03b5124029979755c752eec45f3c29674b558446", - "type": "github" - } - }, - "blst_5": { - "flake": false, - "locked": { - "lastModified": 1656163412, - "narHash": "sha256-xero1aTe2v4IhWIJaEDUsVDOfE77dOV5zKeHWntHogY=", - "owner": "supranational", - "repo": "blst", - "rev": "03b5124029979755c752eec45f3c29674b558446", - "type": "github" - }, - "original": { - "owner": "supranational", - "repo": "blst", - "rev": "03b5124029979755c752eec45f3c29674b558446", - "type": "github" - } - }, - "blst_6": { "flake": false, "locked": { "lastModified": 1691598027, @@ -1112,7 +920,7 @@ "type": "github" } }, - "blst_7": { + "blst_5": { "flake": false, "locked": { "lastModified": 1691598027, @@ -1162,23 +970,6 @@ "type": "github" } }, - "cabal-32_10": { - "flake": false, - "locked": { - "lastModified": 1603716527, - "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", - "owner": "haskell", - "repo": "cabal", - "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.2", - "repo": "cabal", - "type": "github" - } - }, "cabal-32_2": { "flake": false, "locked": { @@ -1298,23 +1089,6 @@ "type": "github" } }, - "cabal-32_9": { - "flake": false, - "locked": { - "lastModified": 1603716527, - "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=", - "owner": "haskell", - "repo": "cabal", - "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.2", - "repo": "cabal", - "type": "github" - } - }, "cabal-34": { "flake": false, "locked": { @@ -1332,23 +1106,6 @@ "type": "github" } }, - "cabal-34_10": { - "flake": false, - "locked": { - "lastModified": 1645834128, - "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", - "owner": "haskell", - "repo": "cabal", - "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.4", - "repo": "cabal", - "type": "github" - } - }, "cabal-34_2": { "flake": false, "locked": { @@ -1384,40 +1141,6 @@ } }, "cabal-34_4": { - "flake": false, - "locked": { - "lastModified": 1645834128, - "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", - "owner": "haskell", - "repo": "cabal", - "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.4", - "repo": "cabal", - "type": "github" - } - }, - "cabal-34_5": { - "flake": false, - "locked": { - "lastModified": 1645834128, - "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", - "owner": "haskell", - "repo": "cabal", - "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.4", - "repo": "cabal", - "type": "github" - } - }, - "cabal-34_6": { "flake": false, "locked": { "lastModified": 1640353650, @@ -1434,7 +1157,7 @@ "type": "github" } }, - "cabal-34_7": { + "cabal-34_5": { "flake": false, "locked": { "lastModified": 1640353650, @@ -1451,7 +1174,7 @@ "type": "github" } }, - "cabal-34_8": { + "cabal-34_6": { "flake": false, "locked": { "lastModified": 1640353650, @@ -1468,7 +1191,7 @@ "type": "github" } }, - "cabal-34_9": { + "cabal-34_7": { "flake": false, "locked": { "lastModified": 1640353650, @@ -1485,24 +1208,24 @@ "type": "github" } }, - "cabal-36": { + "cabal-34_8": { "flake": false, "locked": { - "lastModified": 1669081697, - "narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=", + "lastModified": 1645834128, + "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=", "owner": "haskell", "repo": "cabal", - "rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144", + "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462", "type": "github" }, "original": { "owner": "haskell", - "ref": "3.6", + "ref": "3.4", "repo": "cabal", "type": "github" } }, - "cabal-36_10": { + "cabal-36": { "flake": false, "locked": { "lastModified": 1669081697, @@ -1556,11 +1279,11 @@ "cabal-36_4": { "flake": false, "locked": { - "lastModified": 1669081697, - "narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=", + "lastModified": 1641652457, + "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", "owner": "haskell", "repo": "cabal", - "rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144", + "rev": "f27667f8ec360c475027dcaee0138c937477b070", "type": "github" }, "original": { @@ -1571,23 +1294,6 @@ } }, "cabal-36_5": { - "flake": false, - "locked": { - "lastModified": 1669081697, - "narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=", - "owner": "haskell", - "repo": "cabal", - "rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "3.6", - "repo": "cabal", - "type": "github" - } - }, - "cabal-36_6": { "flake": false, "locked": { "lastModified": 1641652457, @@ -1604,7 +1310,7 @@ "type": "github" } }, - "cabal-36_7": { + "cabal-36_6": { "flake": false, "locked": { "lastModified": 1641652457, @@ -1621,7 +1327,7 @@ "type": "github" } }, - "cabal-36_8": { + "cabal-36_7": { "flake": false, "locked": { "lastModified": 1641652457, @@ -1638,14 +1344,14 @@ "type": "github" } }, - "cabal-36_9": { + "cabal-36_8": { "flake": false, "locked": { - "lastModified": 1641652457, - "narHash": "sha256-BlFPKP4C4HRUJeAbdembX1Rms1LD380q9s0qVDeoAak=", + "lastModified": 1669081697, + "narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=", "owner": "haskell", "repo": "cabal", - "rev": "f27667f8ec360c475027dcaee0138c937477b070", + "rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144", "type": "github" }, "original": { @@ -1670,18 +1376,18 @@ "type": "github" } }, - "capkgs": { + "call-flake_2": { "locked": { - "lastModified": 1697123727, - "narHash": "sha256-uSXZAELJF5EfivH9qyLssBUAvhcf3RM9sKhD3W2mdhc=", - "owner": "input-output-hk", - "repo": "capkgs", - "rev": "b197e225592dfe38afb80c94b628d99968c0541d", + "lastModified": 1687380775, + "narHash": "sha256-bmhE1TmrJG4ba93l9WQTLuYM53kwGQAjYHRvHOeuxWU=", + "owner": "divnix", + "repo": "call-flake", + "rev": "74061f6c241227cd05e79b702db9a300a2e4131a", "type": "github" }, "original": { - "owner": "input-output-hk", - "repo": "capkgs", + "owner": "divnix", + "repo": "call-flake", "type": "github" } }, @@ -1689,7 +1395,7 @@ "inputs": { "bitte": "bitte_2", "iogo": "iogo", - "nixpkgs": "nixpkgs_52", + "nixpkgs": "nixpkgs_34", "ragenix": "ragenix_2" }, "locked": { @@ -1710,7 +1416,7 @@ "inputs": { "bitte": "bitte_3", "iogo": "iogo_2", - "nixpkgs": "nixpkgs_81", + "nixpkgs": "nixpkgs_63", "ragenix": "ragenix_5" }, "locked": { @@ -1729,22 +1435,18 @@ }, "cardano-automation": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils", "haskellNix": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", "haskellNix" ], "nixpkgs": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", "nixpkgs" ], - "tullia": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia" - ] + "tullia": "tullia" }, "locked": { "lastModified": 1679408951, @@ -1762,36 +1464,7 @@ }, "cardano-automation_2": { "inputs": { - "flake-utils": "flake-utils_9", - "haskellNix": [ - "cardano-nix", - "cardano-node-8.7.3", - "haskellNix" - ], - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "nixpkgs" - ], - "tullia": "tullia_2" - }, - "locked": { - "lastModified": 1679408951, - "narHash": "sha256-xM78upkrXjRu/739V/IxFrA9m+6rvgOiolt4ReKLAog=", - "owner": "input-output-hk", - "repo": "cardano-automation", - "rev": "628f135d243d4a9e388c187e4c6179246038ee72", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "cardano-automation", - "type": "github" - } - }, - "cardano-automation_3": { - "inputs": { - "flake-utils": "flake-utils_16", + "flake-utils": "flake-utils_6", "haskellNix": [ "cardano-node", "haskellNix" @@ -1800,7 +1473,7 @@ "cardano-node", "nixpkgs" ], - "tullia": "tullia_3" + "tullia": "tullia_2" }, "locked": { "lastModified": 1679408951, @@ -1833,47 +1506,37 @@ "type": "github" } }, - "cardano-configurations-8.1.1": { + "cardano-configurations-9.2.1": { "flake": false, "locked": { - "lastModified": 1692193634, - "narHash": "sha256-cKw+iXKoMNrfN8M34/CtUelUZVLktVtzNzOYHI20dC0=", - "owner": "input-output-hk", - "repo": "cardano-configurations", - "rev": "9b69b59ef2fb2838855017f19af57b38c5d4abe4", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "cardano-configurations", - "rev": "9b69b59ef2fb2838855017f19af57b38c5d4abe4", - "type": "github" - } - }, - "cardano-configurations-8.7.3": { - "flake": false, - "locked": { - "lastModified": 1702085095, - "narHash": "sha256-IJChESftdO2tj2pRB+82xMaLP/RqyKHzttE7QMLqvBQ=", + "lastModified": 1721870874, + "narHash": "sha256-qiReN+xxtbb4kEfdIWbBcqcJpPGD8he0p/TVD7U3CqM=", "owner": "input-output-hk", "repo": "cardano-configurations", - "rev": "21249e0d5c68b4e8f3661b250aa8272a8785d678", + "rev": "7969a73e5c7ee1f3b2a40274b34191fdd8de170b", "type": "github" }, "original": { "owner": "input-output-hk", "repo": "cardano-configurations", - "rev": "21249e0d5c68b4e8f3661b250aa8272a8785d678", + "rev": "7969a73e5c7ee1f3b2a40274b34191fdd8de170b", "type": "github" } }, "cardano-db-sync": { "inputs": { - "CHaP": "CHaP_2", - "cardano-parts": "cardano-parts", - "flake-compat": "flake-compat_4", + "CHaP": [ + "cardano-nix", + "cardano-node-92", + "CHaP" + ], + "flake-compat": "flake-compat", "hackageNix": "hackageNix", - "haskellNix": "haskellNix", + "haskellNix": [ + "cardano-nix", + "cardano-node-92", + "haskellNix" + ], "iohkNix": "iohkNix", "nixpkgs": [ "cardano-nix", @@ -1884,67 +1547,16 @@ "utils": "utils" }, "locked": { - "lastModified": 1707925775, - "narHash": "sha256-z3YUrUImpV/wmJi+pfw6YuhBw+2Xd3jGlSWk7WI69/4=", + "lastModified": 1720817009, + "narHash": "sha256-FGcAR160WhZvnhdeyWDaKSltcY6jqv0q/B9CUtj24hc=", "owner": "intersectmbo", "repo": "cardano-db-sync", - "rev": "ed3dc8bbb79f07c26ec43f10bad661b0bef3b915", + "rev": "d21895fec3a9445493b6ff4aa61b8dcb5153de1e", "type": "github" }, "original": { "owner": "intersectmbo", - "ref": "13.2.0.1", - "repo": "cardano-db-sync", - "type": "github" - } - }, - "cardano-db-sync-schema": { - "flake": false, - "locked": { - "lastModified": 1688568916, - "narHash": "sha256-XTGTi3PzCcbLL+63JSXTe7mQmGKB0YgEoW1VpqdX2d0=", - "owner": "input-output-hk", - "repo": "cardano-db-sync", - "rev": "6e69a80797f2d68423b25ca7787e81533b367e42", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "13.1.1.3", - "repo": "cardano-db-sync", - "type": "github" - } - }, - "cardano-db-sync-schema-ng": { - "flake": false, - "locked": { - "lastModified": 1694078776, - "narHash": "sha256-QBnUDobTwWQmooCNr1WcaAzRbAKokon8lvAN6VQ1u34=", - "owner": "input-output-hk", - "repo": "cardano-db-sync", - "rev": "b44eb735fe64fe4e8079935df722d0a32a41c2a4", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "sancho-1-1-0", - "repo": "cardano-db-sync", - "type": "github" - } - }, - "cardano-db-sync-service": { - "flake": false, - "locked": { - "lastModified": 1688568916, - "narHash": "sha256-XTGTi3PzCcbLL+63JSXTe7mQmGKB0YgEoW1VpqdX2d0=", - "owner": "input-output-hk", - "repo": "cardano-db-sync", - "rev": "6e69a80797f2d68423b25ca7787e81533b367e42", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "13.1.1.3", + "ref": "13.3.0.0", "repo": "cardano-db-sync", "type": "github" } @@ -1984,7 +1596,7 @@ }, "cardano-mainnet-mirror": { "inputs": { - "nixpkgs": "nixpkgs_15" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1642701714, @@ -2003,26 +1615,7 @@ }, "cardano-mainnet-mirror_2": { "inputs": { - "nixpkgs": "nixpkgs_25" - }, - "locked": { - "lastModified": 1642701714, - "narHash": "sha256-SR3luE+ePX6U193EKE/KSEuVzWAW0YsyPYDC4hOvALs=", - "owner": "input-output-hk", - "repo": "cardano-mainnet-mirror", - "rev": "819488be9eabbba6aaa7c931559bc584d8071e3d", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "nix", - "repo": "cardano-mainnet-mirror", - "type": "github" - } - }, - "cardano-mainnet-mirror_3": { - "inputs": { - "nixpkgs": "nixpkgs_34" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1642701714, @@ -2042,15 +1635,17 @@ "cardano-nix": { "inputs": { "blockfrost": "blockfrost_2", - "cardano-configurations-8.1.1": "cardano-configurations-8.1.1", - "cardano-configurations-8.7.3": "cardano-configurations-8.7.3", + "cardano-configurations-9.2.1": "cardano-configurations-9.2.1", "cardano-db-sync": "cardano-db-sync", - "cardano-node-8.1.1": "cardano-node-8.1.1", - "cardano-node-8.7.3": "cardano-node-8.7.3", - "crane": "crane_2", + "cardano-node-9.2.1": [ + "cardano-nix", + "cardano-node-92" + ], + "cardano-node-92": "cardano-node-92", + "crane": "crane", "devour-flake": "devour-flake", - "devshell": "devshell_4", - "flake-parts": "flake-parts_5", + "devshell": "devshell_2", + "flake-parts": "flake-parts", "flake-root": "flake-root", "hercules-ci-effects": "hercules-ci-effects", "nixpkgs": [ @@ -2058,47 +1653,47 @@ ], "oura": "oura", "pre-commit-hooks-nix": "pre-commit-hooks-nix", - "treefmt-nix": "treefmt-nix_3" + "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1724967699, - "narHash": "sha256-rsj28Jq7DX/YCzykfvy2LJ9y6AE37i3MCyoAFeRHyEM=", - "owner": "mlabs-haskell", - "repo": "cardano.nix", - "rev": "3eb9384b2e1c43d4dcdf2eb23d0210d5d7e612af", - "type": "github" + "lastModified": 1729533565, + "narHash": "sha256-NX5Kc/cHNYvQLjBSeoo1IRQBeftwitZhD7FSQ+LPzFY=", + "ref": "refs/heads/euonymos/ogmios6.7.0-6.8.0", + "rev": "39e23d9543b6696f96d790962bf921016371b205", + "revCount": 268, + "type": "git", + "url": "file:///home/euonymos/src/mlabs/cardano.nix" }, "original": { - "owner": "mlabs-haskell", - "repo": "cardano.nix", - "type": "github" + "type": "git", + "url": "file:///home/euonymos/src/mlabs/cardano.nix" } }, "cardano-node": { "inputs": { - "CHaP": "CHaP_5", - "cardano-automation": "cardano-automation_3", - "cardano-mainnet-mirror": "cardano-mainnet-mirror_3", - "customConfig": "customConfig_3", - "em": "em_3", - "empty-flake": "empty-flake_4", - "flake-compat": "flake-compat_15", - "hackageNix": "hackageNix_4", - "haskellNix": "haskellNix_4", + "CHaP": "CHaP_3", + "cardano-automation": "cardano-automation_2", + "cardano-mainnet-mirror": "cardano-mainnet-mirror_2", + "customConfig": "customConfig_2", + "em": "em_2", + "empty-flake": "empty-flake_2", + "flake-compat": "flake-compat_7", + "hackageNix": "hackageNix_3", + "haskellNix": "haskellNix_2", "hostNixpkgs": [ "cardano-node", "nixpkgs" ], - "iohkNix": "iohkNix_4", - "nix2container": "nix2container_6", + "iohkNix": "iohkNix_3", + "nix2container": "nix2container_3", "nixpkgs": [ "cardano-node", "haskellNix", "nixpkgs-unstable" ], - "ops-lib": "ops-lib_3", - "std": "std_5", - "utils": "utils_8" + "ops-lib": "ops-lib_2", + "std": "std_4", + "utils": "utils_6" }, "locked": { "lastModified": 1724944858, @@ -2115,111 +1710,44 @@ "type": "github" } }, - "cardano-node-8.1.1": { + "cardano-node-92": { "inputs": { - "CHaP": "CHaP_3", + "CHaP": "CHaP_2", "cardano-automation": "cardano-automation", "cardano-mainnet-mirror": "cardano-mainnet-mirror", "customConfig": "customConfig", "em": "em", - "empty-flake": "empty-flake_2", - "flake-compat": "flake-compat_6", + "empty-flake": "empty-flake", + "flake-compat": "flake-compat_3", "hackageNix": "hackageNix_2", - "haskellNix": "haskellNix_2", + "haskellNix": "haskellNix", "hostNixpkgs": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", "nixpkgs" ], "iohkNix": "iohkNix_2", - "nix2container": "nix2container", "nixpkgs": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", "haskellNix", "nixpkgs-unstable" ], "ops-lib": "ops-lib", - "std": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia", - "std" - ], - "tullia": "tullia", + "std": "std_2", "utils": "utils_3" }, "locked": { - "lastModified": 1687190129, - "narHash": "sha256-JCa9+QhZ2RVSIKkhz2WCZqTKCgdUSuezWS2YsQ5vhM4=", - "owner": "intersectmbo", - "repo": "cardano-node", - "rev": "6f79e5c3ea109a70cd01910368e011635767305a", - "type": "github" - }, - "original": { - "owner": "intersectmbo", - "ref": "8.1.1", - "repo": "cardano-node", - "type": "github" - } - }, - "cardano-node-8.7.3": { - "inputs": { - "CHaP": "CHaP_4", - "cardano-automation": "cardano-automation_2", - "cardano-mainnet-mirror": "cardano-mainnet-mirror_2", - "customConfig": "customConfig_2", - "em": "em_2", - "empty-flake": "empty-flake_3", - "flake-compat": "flake-compat_10", - "hackageNix": "hackageNix_3", - "haskellNix": "haskellNix_3", - "hostNixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "nixpkgs" - ], - "iohkNix": "iohkNix_3", - "nix2container": "nix2container_4", - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "haskellNix", - "nixpkgs-unstable" - ], - "ops-lib": "ops-lib_2", - "std": "std_3", - "utils": "utils_5" - }, - "locked": { - "lastModified": 1702654749, - "narHash": "sha256-fIzSNSKWC7qMRjHUMHfrMnEzHiFu7ac/UUgfofXqaFY=", + "lastModified": 1727221818, + "narHash": "sha256-i582YpBy+hBth73JqfcjGFsJrTQeDG0NJ7vN8JLWeoI=", "owner": "intersectmbo", "repo": "cardano-node", - "rev": "a4a8119b59b1fbb9a69c79e1e6900e91292161e7", + "rev": "5d3da8ac771ee5ed424d6c78473c11deabb7a1f3", "type": "github" }, "original": { "owner": "intersectmbo", - "ref": "8.7.3", - "repo": "cardano-node", - "type": "github" - } - }, - "cardano-node-service": { - "flake": false, - "locked": { - "lastModified": 1690209950, - "narHash": "sha256-d0V8N+y/OarYv6GQycGXnbPly7GeJRBEeE1017qj9eI=", - "owner": "input-output-hk", - "repo": "cardano-node", - "rev": "d2d90b48c5577b4412d5c9c9968b55f8ab4b9767", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "8.1.2", + "ref": "9.2.1", "repo": "cardano-node", "type": "github" } @@ -2241,49 +1769,6 @@ "type": "github" } }, - "cardano-parts": { - "inputs": { - "auth-keys-hub": "auth-keys-hub", - "capkgs": "capkgs", - "cardano-db-sync-schema": "cardano-db-sync-schema", - "cardano-db-sync-schema-ng": "cardano-db-sync-schema-ng", - "cardano-db-sync-service": "cardano-db-sync-service", - "cardano-node-service": "cardano-node-service", - "cardano-wallet-service": "cardano-wallet-service", - "colmena": "colmena", - "empty-flake": "empty-flake", - "flake-parts": "flake-parts_3", - "haskell-nix": "haskell-nix", - "inputs-check": "inputs-check", - "iohk-nix": "iohk-nix", - "iohk-nix-ng": "iohk-nix-ng", - "nix": "nix_2", - "nixpkgs": [ - "cardano-nix", - "cardano-db-sync", - "nixpkgs" - ], - "nixpkgs-unstable": "nixpkgs-unstable_2", - "offchain-metadata-tools-service": "offchain-metadata-tools-service", - "sops-nix": "sops-nix", - "terraform-providers": "terraform-providers", - "terranix": "terranix", - "treefmt-nix": "treefmt-nix_2" - }, - "locked": { - "lastModified": 1697147999, - "narHash": "sha256-mbSWIcmDnt2mlETCNL8MI97nDH1lkOxIxFHKXXfOV28=", - "owner": "input-output-hk", - "repo": "cardano-parts", - "rev": "af8993ee12f78ddfcc31eefe006391669cb11462", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "cardano-parts", - "type": "github" - } - }, "cardano-shell": { "flake": false, "locked": { @@ -2300,22 +1785,6 @@ "type": "github" } }, - "cardano-shell_10": { - "flake": false, - "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", - "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "cardano-shell", - "type": "github" - } - }, "cardano-shell_2": { "flake": false, "locked": { @@ -2428,37 +1897,21 @@ "type": "github" } }, - "cardano-shell_9": { - "flake": false, - "locked": { - "lastModified": 1608537748, - "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=", - "owner": "input-output-hk", - "repo": "cardano-shell", - "rev": "9392c75087cb9a3d453998f4230930dea3a95725", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "cardano-shell", - "type": "github" - } - }, "cardano-wallet": { "inputs": { - "customConfig": "customConfig_4", + "customConfig": "customConfig_3", "ema": "ema", "emanote": "emanote", - "flake-compat": "flake-compat_21", - "flake-utils": "flake-utils_40", - "haskellNix": "haskellNix_5", + "flake-compat": "flake-compat_15", + "flake-utils": "flake-utils_31", + "haskellNix": "haskellNix_3", "hostNixpkgs": [ "db-sync", "cardano-world", "cardano-wallet", "nixpkgs" ], - "iohkNix": "iohkNix_5", + "iohkNix": "iohkNix_4", "nixpkgs": [ "db-sync", "cardano-world", @@ -2482,23 +1935,6 @@ "type": "github" } }, - "cardano-wallet-service": { - "flake": false, - "locked": { - "lastModified": 1689751896, - "narHash": "sha256-ijflgIw+1FpLoxM4Rksf4MJvNqnEPAv3gNWE8zMuefU=", - "owner": "cardano-foundation", - "repo": "cardano-wallet", - "rev": "3f0d2f3abe706958fab8cdc528184068bd0453c9", - "type": "github" - }, - "original": { - "owner": "cardano-foundation", - "ref": "v2023-07-18", - "repo": "cardano-wallet", - "type": "github" - } - }, "cardano-world": { "inputs": { "bitte": "bitte", @@ -2513,13 +1949,13 @@ "cardano-node": "cardano-node_2", "cardano-wallet": "cardano-wallet", "data-merge": "data-merge_3", - "flake-compat": "flake-compat_22", + "flake-compat": "flake-compat_16", "hackage": "hackage_4", "haskell-nix": "haskell-nix_3", "iohk-nix": "iohk-nix_2", - "n2c": "n2c_6", + "n2c": "n2c_4", "nix-inclusive": "nix-inclusive", - "nixpkgs": "nixpkgs_92", + "nixpkgs": "nixpkgs_74", "nixpkgs-haskell": [ "db-sync", "cardano-world", @@ -2527,8 +1963,8 @@ "nixpkgs-unstable" ], "ogmios": "ogmios", - "std": "std_7", - "tullia": "tullia_4" + "std": "std_6", + "tullia": "tullia_3" }, "locked": { "lastModified": 1662508244, @@ -2548,16 +1984,16 @@ "inputs": { "alejandra": "alejandra", "data-merge": "data-merge_2", - "devshell": "devshell_12", + "devshell": "devshell_10", "driver": "driver", "follower": "follower", "haskell-nix": "haskell-nix_2", - "inclusive": "inclusive_9", - "nix": "nix_13", + "inclusive": "inclusive_8", + "nix": "nix_10", "nix-cache-proxy": "nix-cache-proxy", - "nixpkgs": "nixpkgs_68", + "nixpkgs": "nixpkgs_50", "poetry2nix": "poetry2nix", - "utils": "utils_22" + "utils": "utils_20" }, "locked": { "lastModified": 1647522107, @@ -2573,61 +2009,30 @@ "type": "github" } }, - "colmena": { + "clb": { "inputs": { - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", - "nixpkgs": [ - "cardano-nix", - "cardano-db-sync", - "cardano-parts", - "nixpkgs" - ], - "stable": "stable" + "CHaP": "CHaP_4", + "flake-parts": "flake-parts_2", + "haskell-nix": "haskell-nix", + "hercules-ci-effects": "hercules-ci-effects_2", + "iohk-nix": "iohk-nix", + "nixpkgs": "nixpkgs_18", + "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1684127108, - "narHash": "sha256-01bfuSY4gnshhtqA1EJCw2CMsKkAx+dHS+sEpQ2+EAQ=", - "owner": "zhaofengli", - "repo": "colmena", - "rev": "5fdd743a11e7291bd8ac1e169d62ba6156c99be4", - "type": "github" + "dirtyRev": "8bbc254f87bfa464bd7ed08ebbf87c5c81ee92c8-dirty", + "dirtyShortRev": "8bbc254-dirty", + "lastModified": 1730316899, + "narHash": "sha256-/BObIE5YnSDXA9G5Uk/lEVNWYHXAGO/ODaoIhHOjICg=", + "type": "git", + "url": "file:///home/euonymos/src/mlabs/clb" }, "original": { - "owner": "zhaofengli", - "ref": "v0.4.0", - "repo": "colmena", - "type": "github" + "type": "git", + "url": "file:///home/euonymos/src/mlabs/clb" } }, "crane": { - "inputs": { - "flake-compat": "flake-compat_12", - "flake-utils": "flake-utils_14", - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "paisano-mdbook-preprocessor", - "nixpkgs" - ], - "rust-overlay": "rust-overlay" - }, - "locked": { - "lastModified": 1676162383, - "narHash": "sha256-krUCKdz7ebHlFYm/A7IbKDnj2ZmMMm3yIEQcooqm7+E=", - "owner": "ipetkov", - "repo": "crane", - "rev": "6fb400ec631b22ccdbc7090b38207f7fb5cfb5f2", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "crane_2": { "inputs": { "nixpkgs": [ "cardano-nix", @@ -2648,102 +2053,6 @@ "type": "github" } }, - "crystal": { - "inputs": { - "ameba-src": "ameba-src", - "bdwgc-src": "bdwgc-src", - "crystal-aarch64-darwin": "crystal-aarch64-darwin", - "crystal-src": "crystal-src", - "crystal-x86_64-darwin": "crystal-x86_64-darwin", - "crystal-x86_64-linux": "crystal-x86_64-linux", - "crystalline-src": "crystalline-src", - "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1683429373, - "narHash": "sha256-Mx5lwMyk2T40wFqOoYcJLs4srwO2UrsepTZhlHNuTrI=", - "owner": "manveru", - "repo": "crystal-flake", - "rev": "e7a443c20e2be6e5dd870586705dd27c91aa9c5c", - "type": "github" - }, - "original": { - "owner": "manveru", - "repo": "crystal-flake", - "type": "github" - } - }, - "crystal-aarch64-darwin": { - "flake": false, - "locked": { - "narHash": "sha256-NqYaZHM3kHAgYbO0RDJtA8eHqp4vVe4MBpisTOGrRVw=", - "type": "tarball", - "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-darwin-universal.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-darwin-universal.tar.gz" - } - }, - "crystal-src": { - "flake": false, - "locked": { - "lastModified": 1681995387, - "narHash": "sha256-t+1vM1m62UftCvfa90Dg6nqt6Zseh/GP/Gc1VfOa4+c=", - "owner": "crystal-lang", - "repo": "crystal", - "rev": "a59a3dbd738269d5aad6051c3834fc70f482f469", - "type": "github" - }, - "original": { - "owner": "crystal-lang", - "ref": "1.8.1", - "repo": "crystal", - "type": "github" - } - }, - "crystal-x86_64-darwin": { - "flake": false, - "locked": { - "narHash": "sha256-NqYaZHM3kHAgYbO0RDJtA8eHqp4vVe4MBpisTOGrRVw=", - "type": "tarball", - "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-darwin-universal.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-darwin-universal.tar.gz" - } - }, - "crystal-x86_64-linux": { - "flake": false, - "locked": { - "narHash": "sha256-/Jk3uiglM/hzjygxmMUgVTvz+tuFFjBv8+uUIL05rXo=", - "type": "tarball", - "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-linux-x86_64.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/crystal-lang/crystal/releases/download/1.8.1/crystal-1.8.1-1-linux-x86_64.tar.gz" - } - }, - "crystalline-src": { - "flake": false, - "locked": { - "lastModified": 1681549124, - "narHash": "sha256-kx3rdGqIbrOaHY7V3uXLqIFEYzzsMKzNwZ6Neq8zM3c=", - "owner": "elbywan", - "repo": "crystalline", - "rev": "4ac0ae282c5f4172230fea1e93df51c2b380f475", - "type": "github" - }, - "original": { - "owner": "elbywan", - "ref": "v0.9.0", - "repo": "crystalline", - "type": "github" - } - }, "customConfig": { "locked": { "lastModified": 1630400035, @@ -2790,21 +2099,6 @@ } }, "customConfig_4": { - "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", - "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "empty-flake", - "type": "github" - } - }, - "customConfig_5": { "locked": { "lastModified": 1, "narHash": "sha256-Zd5w1I1Dwt783Q4WuBuCpedcwG1DrIgQGqabyF87prM=", @@ -2819,7 +2113,7 @@ "data-merge": { "inputs": { "nixlib": "nixlib", - "yants": "yants_6" + "yants": "yants_5" }, "locked": { "lastModified": 1648237091, @@ -2856,7 +2150,7 @@ "data-merge_3": { "inputs": { "nixlib": "nixlib_3", - "yants": "yants_8" + "yants": "yants_7" }, "locked": { "lastModified": 1655854240, @@ -2875,16 +2169,16 @@ "db-sync": { "inputs": { "cardano-world": "cardano-world", - "customConfig": "customConfig_5", - "flake-compat": "flake-compat_23", - "haskellNix": "haskellNix_6", - "iohkNix": "iohkNix_6", + "customConfig": "customConfig_4", + "flake-compat": "flake-compat_17", + "haskellNix": "haskellNix_4", + "iohkNix": "iohkNix_5", "nixpkgs": [ "db-sync", "haskellNix", "nixpkgs-unstable" ], - "utils": "utils_29" + "utils": "utils_27" }, "locked": { "lastModified": 1670313550, @@ -2903,8 +2197,8 @@ }, "deploy": { "inputs": { - "fenix": "fenix_3", - "flake-compat": "flake-compat_17", + "fenix": "fenix", + "flake-compat": "flake-compat_11", "nixpkgs": [ "db-sync", "cardano-world", @@ -2915,7 +2209,7 @@ "fenix", "nixpkgs" ], - "utils": "utils_9" + "utils": "utils_7" }, "locked": { "lastModified": 1638318651, @@ -2933,8 +2227,8 @@ }, "deploy_2": { "inputs": { - "fenix": "fenix_5", - "flake-compat": "flake-compat_18", + "fenix": "fenix_3", + "flake-compat": "flake-compat_12", "nixpkgs": [ "db-sync", "cardano-world", @@ -2943,7 +2237,7 @@ "fenix", "nixpkgs" ], - "utils": "utils_15" + "utils": "utils_13" }, "locked": { "lastModified": 1638318651, @@ -2961,8 +2255,8 @@ }, "deploy_3": { "inputs": { - "fenix": "fenix_7", - "flake-compat": "flake-compat_19", + "fenix": "fenix_5", + "flake-compat": "flake-compat_13", "nixpkgs": [ "db-sync", "cardano-world", @@ -2972,7 +2266,7 @@ "fenix", "nixpkgs" ], - "utils": "utils_23" + "utils": "utils_21" }, "locked": { "lastModified": 1638318651, @@ -3008,14 +2302,16 @@ "inputs": { "flake-utils": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", + "cardano-automation", "tullia", "std", "flake-utils" ], "nixpkgs": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", + "cardano-automation", "tullia", "std", "nixpkgs" @@ -3036,55 +2332,9 @@ } }, "devshell_10": { - "locked": { - "lastModified": 1636119665, - "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", - "owner": "numtide", - "repo": "devshell", - "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "devshell_11": { - "inputs": { - "flake-utils": [ - "db-sync", - "cardano-world", - "bitte", - "std", - "flake-utils" - ], - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1658746384, - "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", - "owner": "numtide", - "repo": "devshell", - "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "devshell_12": { "inputs": { - "flake-utils": "flake-utils_30", - "nixpkgs": "nixpkgs_65" + "flake-utils": "flake-utils_21", + "nixpkgs": "nixpkgs_47" }, "locked": { "lastModified": 1644227066, @@ -3100,7 +2350,7 @@ "type": "github" } }, - "devshell_13": { + "devshell_11": { "locked": { "lastModified": 1632436039, "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", @@ -3115,7 +2365,7 @@ "type": "github" } }, - "devshell_14": { + "devshell_12": { "locked": { "lastModified": 1636119665, "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", @@ -3130,7 +2380,7 @@ "type": "github" } }, - "devshell_15": { + "devshell_13": { "locked": { "lastModified": 1636119665, "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", @@ -3145,7 +2395,7 @@ "type": "github" } }, - "devshell_16": { + "devshell_14": { "locked": { "lastModified": 1632436039, "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", @@ -3160,7 +2410,7 @@ "type": "github" } }, - "devshell_17": { + "devshell_15": { "locked": { "lastModified": 1636119665, "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", @@ -3175,7 +2425,7 @@ "type": "github" } }, - "devshell_18": { + "devshell_16": { "locked": { "lastModified": 1637098489, "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", @@ -3190,7 +2440,7 @@ "type": "github" } }, - "devshell_19": { + "devshell_17": { "inputs": { "flake-utils": [ "db-sync", @@ -3219,42 +2469,9 @@ "type": "github" } }, - "devshell_2": { - "inputs": { - "flake-utils": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1663445644, - "narHash": "sha256-+xVlcK60x7VY1vRJbNUEAHi17ZuoQxAIH4S4iUFUGBA=", - "owner": "numtide", - "repo": "devshell", - "rev": "e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "devshell_20": { + "devshell_18": { "inputs": { - "flake-utils": "flake-utils_46", + "flake-utils": "flake-utils_37", "nixpkgs": [ "db-sync", "cardano-world", @@ -3277,31 +2494,7 @@ "type": "github" } }, - "devshell_3": { - "inputs": { - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "nixpkgs" - ], - "systems": "systems_2" - }, - "locked": { - "lastModified": 1686680692, - "narHash": "sha256-SsLZz3TDleraAiJq4EkmdyewSyiv5g0LZYc6vaLZOMQ=", - "owner": "numtide", - "repo": "devshell", - "rev": "fd6223370774dd9c33354e87a007004b5fd36442", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, - "devshell_4": { + "devshell_2": { "inputs": { "nixpkgs": [ "cardano-nix", @@ -3323,7 +2516,7 @@ "type": "github" } }, - "devshell_5": { + "devshell_3": { "inputs": { "flake-utils": [ "cardano-node", @@ -3354,7 +2547,7 @@ "type": "github" } }, - "devshell_6": { + "devshell_4": { "locked": { "lastModified": 1632436039, "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", @@ -3369,7 +2562,7 @@ "type": "github" } }, - "devshell_7": { + "devshell_5": { "locked": { "lastModified": 1636119665, "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", @@ -3384,7 +2577,7 @@ "type": "github" } }, - "devshell_8": { + "devshell_6": { "locked": { "lastModified": 1637098489, "narHash": "sha256-IWBYLSNSENI/fTrXdYDhuCavxcgN9+RERrPM81f6DXY=", @@ -3399,7 +2592,7 @@ "type": "github" } }, - "devshell_9": { + "devshell_7": { "locked": { "lastModified": 1632436039, "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=", @@ -3414,42 +2607,57 @@ "type": "github" } }, - "dmerge": { + "devshell_8": { + "locked": { + "lastModified": 1636119665, + "narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", + "owner": "numtide", + "repo": "devshell", + "rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "devshell_9": { "inputs": { - "nixlib": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia", + "flake-utils": [ + "db-sync", + "cardano-world", + "bitte", "std", - "nixpkgs" + "flake-utils" ], - "yants": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia", + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", "std", - "yants" + "nixpkgs" ] }, "locked": { - "lastModified": 1659548052, - "narHash": "sha256-fzI2gp1skGA8mQo/FBFrUAtY0GQkAIAaV/V127TJPyY=", - "owner": "divnix", - "repo": "data-merge", - "rev": "d160d18ce7b1a45b88344aa3f13ed1163954b497", + "lastModified": 1658746384, + "narHash": "sha256-CCJcoMOcXyZFrV1ag4XMTpAPjLWb4Anbv+ktXFI1ry0=", + "owner": "numtide", + "repo": "devshell", + "rev": "0ffc7937bb5e8141af03d462b468bd071eb18e1b", "type": "github" }, "original": { - "owner": "divnix", - "repo": "data-merge", + "owner": "numtide", + "repo": "devshell", "type": "github" } }, - "dmerge_2": { + "dmerge": { "inputs": { "nixlib": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "cardano-automation", "tullia", "std", @@ -3457,7 +2665,7 @@ ], "yants": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "cardano-automation", "tullia", "std", @@ -3478,24 +2686,23 @@ "type": "github" } }, - "dmerge_3": { + "dmerge_2": { "inputs": { "haumea": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "std", "haumea" ], "nixlib": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "std", - "haumea", - "nixpkgs" + "lib" ], "yants": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "std", "yants" ] @@ -3515,7 +2722,7 @@ "type": "github" } }, - "dmerge_4": { + "dmerge_3": { "inputs": { "nixlib": [ "cardano-node", @@ -3546,7 +2753,7 @@ "type": "github" } }, - "dmerge_5": { + "dmerge_4": { "inputs": { "haumea": [ "cardano-node", @@ -3579,7 +2786,7 @@ "type": "github" } }, - "dmerge_6": { + "dmerge_5": { "inputs": { "nixlib": [ "db-sync", @@ -3610,7 +2817,7 @@ "type": "github" } }, - "dmerge_7": { + "dmerge_6": { "inputs": { "nixlib": [ "db-sync", @@ -3641,9 +2848,9 @@ }, "driver": { "inputs": { - "devshell": "devshell_13", - "inclusive": "inclusive_7", - "nix": "nix_12", + "devshell": "devshell_11", + "inclusive": "inclusive_6", + "nix": "nix_9", "nixpkgs": [ "db-sync", "cardano-world", @@ -3651,7 +2858,7 @@ "cicero", "nixpkgs" ], - "utils": "utils_19" + "utils": "utils_17" }, "locked": { "lastModified": 1644418487, @@ -3686,11 +2893,11 @@ "em": { "flake": false, "locked": { - "lastModified": 1684791668, - "narHash": "sha256-JyPm0RiWCfy/8rs7wd/IRSWIz+bTkD78uxIMnKktU2g=", + "lastModified": 1685015066, + "narHash": "sha256-etAdEoYhtvjTw1ITh28WPNfwvvb5t/fpwCP6s7odSiQ=", "owner": "deepfire", "repo": "em", - "rev": "302cdf6d654fb18baff0213bdfa41a653774585a", + "rev": "af69bb5c2ac2161434d8fea45f920f8f359587ce", "type": "github" }, "original": { @@ -3700,22 +2907,6 @@ } }, "em_2": { - "flake": false, - "locked": { - "lastModified": 1684791668, - "narHash": "sha256-JyPm0RiWCfy/8rs7wd/IRSWIz+bTkD78uxIMnKktU2g=", - "owner": "deepfire", - "repo": "em", - "rev": "302cdf6d654fb18baff0213bdfa41a653774585a", - "type": "github" - }, - "original": { - "owner": "deepfire", - "repo": "em", - "type": "github" - } - }, - "em_3": { "flake": false, "locked": { "lastModified": 1685015066, @@ -3733,10 +2924,10 @@ }, "ema": { "inputs": { - "flake-compat": "flake-compat_20", - "flake-utils": "flake-utils_37", - "nixpkgs": "nixpkgs_83", - "pre-commit-hooks": "pre-commit-hooks" + "flake-compat": "flake-compat_14", + "flake-utils": "flake-utils_28", + "nixpkgs": "nixpkgs_65", + "pre-commit-hooks": "pre-commit-hooks_2" }, "locked": { "lastModified": 1646661767, @@ -3772,9 +2963,9 @@ "emanote": { "inputs": { "ema": "ema_2", - "flake-parts": "flake-parts_6", + "flake-parts": "flake-parts_4", "haskell-flake": "haskell-flake", - "nixpkgs": "nixpkgs_86", + "nixpkgs": "nixpkgs_68", "tailwind-haskell": "tailwind-haskell" }, "locked": { @@ -3821,86 +3012,11 @@ "type": "github" } }, - "empty-flake_3": { - "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", - "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "empty-flake", - "type": "github" - } - }, - "empty-flake_4": { - "locked": { - "lastModified": 1630400035, - "narHash": "sha256-MWaVOCzuFwp09wZIW9iHq5wWen5C69I940N1swZLEQ0=", - "owner": "input-output-hk", - "repo": "empty-flake", - "rev": "2040a05b67bf9a669ce17eca56beb14b4206a99a", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "empty-flake", - "type": "github" - } - }, - "fenix": { - "inputs": { - "nixpkgs": [ - "cardano-nix", - "cardano-db-sync", - "cardano-parts", - "auth-keys-hub", - "statix", - "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1645251813, - "narHash": "sha256-cQ66tGjnZclBCS3nD26mZ5fUH+3/HnysGffBiWXUSHk=", - "owner": "nix-community", - "repo": "fenix", - "rev": "9892337b588c38ec59466a1c89befce464aae7f8", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, - "fenix_2": { - "inputs": { - "nixpkgs": "nixpkgs_30", - "rust-analyzer-src": "rust-analyzer-src_2" - }, - "locked": { - "lastModified": 1677306201, - "narHash": "sha256-VZ9x7qdTosFvVsrpgFHrtYfT6PU3yMIs7NRYn9ELapI=", - "owner": "nix-community", - "repo": "fenix", - "rev": "0923f0c162f65ae40261ec940406049726cfeab4", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, - "fenix_3": { - "inputs": { - "nixpkgs": "nixpkgs_42", - "rust-analyzer-src": "rust-analyzer-src_3" - }, + "fenix": { + "inputs": { + "nixpkgs": "nixpkgs_24", + "rust-analyzer-src": "rust-analyzer-src" + }, "locked": { "lastModified": 1645165506, "narHash": "sha256-PClhTeC1EhkHUQQmP9XyiR7y1d6hlEc7QY8nN1GuAzQ=", @@ -3915,7 +3031,7 @@ "type": "github" } }, - "fenix_4": { + "fenix_2": { "inputs": { "nixpkgs": [ "db-sync", @@ -3925,7 +3041,7 @@ "bitte", "nixpkgs-unstable" ], - "rust-analyzer-src": "rust-analyzer-src_4" + "rust-analyzer-src": "rust-analyzer-src_2" }, "locked": { "lastModified": 1649226351, @@ -3941,10 +3057,10 @@ "type": "github" } }, - "fenix_5": { + "fenix_3": { "inputs": { - "nixpkgs": "nixpkgs_55", - "rust-analyzer-src": "rust-analyzer-src_5" + "nixpkgs": "nixpkgs_37", + "rust-analyzer-src": "rust-analyzer-src_3" }, "locked": { "lastModified": 1645165506, @@ -3960,7 +3076,7 @@ "type": "github" } }, - "fenix_6": { + "fenix_4": { "inputs": { "nixpkgs": [ "db-sync", @@ -3968,7 +3084,7 @@ "bitte", "nixpkgs-unstable" ], - "rust-analyzer-src": "rust-analyzer-src_6" + "rust-analyzer-src": "rust-analyzer-src_4" }, "locked": { "lastModified": 1660631227, @@ -3984,10 +3100,10 @@ "type": "github" } }, - "fenix_7": { + "fenix_5": { "inputs": { - "nixpkgs": "nixpkgs_71", - "rust-analyzer-src": "rust-analyzer-src_7" + "nixpkgs": "nixpkgs_53", + "rust-analyzer-src": "rust-analyzer-src_5" }, "locked": { "lastModified": 1645165506, @@ -4003,7 +3119,7 @@ "type": "github" } }, - "fenix_8": { + "fenix_6": { "inputs": { "nixpkgs": [ "db-sync", @@ -4012,7 +3128,7 @@ "bitte", "nixpkgs-unstable" ], - "rust-analyzer-src": "rust-analyzer-src_8" + "rust-analyzer-src": "rust-analyzer-src_6" }, "locked": { "lastModified": 1649226351, @@ -4029,22 +3145,6 @@ } }, "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_10": { "flake": false, "locked": { "lastModified": 1647532380, @@ -4061,40 +3161,7 @@ "type": "github" } }, - "flake-compat_11": { - "flake": false, - "locked": { - "lastModified": 1672831974, - "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "hkm/gitlab-fix", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_12": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_13": { + "flake-compat_10": { "flake": false, "locked": { "lastModified": 1696426674, @@ -4110,57 +3177,7 @@ "type": "github" } }, - "flake-compat_14": { - "flake": false, - "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_15": { - "flake": false, - "locked": { - "lastModified": 1647532380, - "narHash": "sha256-wswAxyO8AJTH7d5oU8VK82yBCpqwA+p6kLgpb1f1PAY=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "7da118186435255a30b5ffeabba9629c344c0bec", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "fixes", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_16": { - "flake": false, - "locked": { - "lastModified": 1672831974, - "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "hkm/gitlab-fix", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_17": { + "flake-compat_11": { "flake": false, "locked": { "lastModified": 1627913399, @@ -4176,7 +3193,7 @@ "type": "github" } }, - "flake-compat_18": { + "flake-compat_12": { "flake": false, "locked": { "lastModified": 1627913399, @@ -4192,7 +3209,7 @@ "type": "github" } }, - "flake-compat_19": { + "flake-compat_13": { "flake": false, "locked": { "lastModified": 1627913399, @@ -4208,24 +3225,7 @@ "type": "github" } }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1672831974, - "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", - "owner": "input-output-hk", - "repo": "flake-compat", - "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "hkm/gitlab-fix", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_20": { + "flake-compat_14": { "flake": false, "locked": { "lastModified": 1641205782, @@ -4241,7 +3241,7 @@ "type": "github" } }, - "flake-compat_21": { + "flake-compat_15": { "flake": false, "locked": { "lastModified": 1635892615, @@ -4257,7 +3257,7 @@ "type": "github" } }, - "flake-compat_22": { + "flake-compat_16": { "flake": false, "locked": { "lastModified": 1650374568, @@ -4273,7 +3273,7 @@ "type": "github" } }, - "flake-compat_23": { + "flake-compat_17": { "flake": false, "locked": { "lastModified": 1647532380, @@ -4290,7 +3290,7 @@ "type": "github" } }, - "flake-compat_24": { + "flake-compat_18": { "flake": false, "locked": { "lastModified": 1696426674, @@ -4306,7 +3306,7 @@ "type": "github" } }, - "flake-compat_25": { + "flake-compat_19": { "flake": false, "locked": { "lastModified": 1672831974, @@ -4323,14 +3323,14 @@ "type": "github" } }, - "flake-compat_3": { + "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { @@ -4339,7 +3339,7 @@ "type": "github" } }, - "flake-compat_4": { + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1647532380, @@ -4356,7 +3356,7 @@ "type": "github" } }, - "flake-compat_5": { + "flake-compat_4": { "flake": false, "locked": { "lastModified": 1672831974, @@ -4373,7 +3373,39 @@ "type": "github" } }, + "flake-compat_5": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_7": { "flake": false, "locked": { "lastModified": 1647532380, @@ -4390,7 +3422,7 @@ "type": "github" } }, - "flake-compat_7": { + "flake-compat_8": { "flake": false, "locked": { "lastModified": 1672831974, @@ -4407,34 +3439,19 @@ "type": "github" } }, - "flake-compat_8": { - "flake": false, - "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "flake-compat_9": { "flake": false, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", + "lastModified": 1672831974, + "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=", + "owner": "input-output-hk", "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "rev": "45f2638735f8cdc40fe302742b79f248d23eb368", "type": "github" }, "original": { - "owner": "edolstra", + "owner": "input-output-hk", + "ref": "hkm/gitlab-fix", "repo": "flake-compat", "type": "github" } @@ -4444,11 +3461,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1672152762, - "narHash": "sha256-U8iWWHgabN07zfbgedogMVWrEP1Zywyf3Yx3OYHSSgE=", + "lastModified": 1696343447, + "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "19e0f88324d90509141e192664ded98bb88ef9b2", + "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", "type": "github" }, "original": { @@ -4462,11 +3479,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1682984683, - "narHash": "sha256-fSMthG+tp60AHhNmaHc4StT3ltfHkQsJtN8GhfLWmtI=", + "lastModified": 1709336216, + "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "86684881e184f41aa322e653880e497b66429f3e", + "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", "type": "github" }, "original": { @@ -4477,61 +3494,28 @@ }, "flake-parts_3": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" + "nixpkgs-lib": [ + "clb", + "hercules-ci-effects", + "nixpkgs" + ] }, "locked": { - "lastModified": 1690933134, - "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", + "lastModified": 1709336216, + "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", + "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" + "id": "flake-parts", + "type": "indirect" } }, "flake-parts_4": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_4" - }, - "locked": { - "lastModified": 1690933134, - "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_5" - }, - "locked": { - "lastModified": 1696343447, - "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_6": { - "inputs": { - "nixpkgs": "nixpkgs_85" + "nixpkgs": "nixpkgs_67" }, "locked": { "lastModified": 1655570068, @@ -4547,7 +3531,7 @@ "type": "github" } }, - "flake-parts_7": { + "flake-parts_5": { "inputs": { "nixpkgs-lib": [ "hercules-ci-effects", @@ -4584,11 +3568,11 @@ }, "flake-utils": { "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "owner": "numtide", "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { @@ -4598,12 +3582,15 @@ } }, "flake-utils_10": { + "inputs": { + "systems": "systems_5" + }, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -4613,12 +3600,15 @@ } }, "flake-utils_11": { + "inputs": { + "systems": "systems_7" + }, "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -4629,11 +3619,11 @@ }, "flake-utils_12": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -4644,11 +3634,11 @@ }, "flake-utils_13": { "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -4659,11 +3649,11 @@ }, "flake-utils_14": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -4673,15 +3663,12 @@ } }, "flake-utils_15": { - "inputs": { - "systems": "systems_4" - }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "type": "github" }, "original": { @@ -4692,11 +3679,11 @@ }, "flake-utils_16": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { @@ -4707,11 +3694,11 @@ }, "flake-utils_17": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -4722,11 +3709,11 @@ }, "flake-utils_18": { "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -4737,11 +3724,11 @@ }, "flake-utils_19": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", "type": "github" }, "original": { @@ -4752,30 +3739,26 @@ }, "flake-utils_2": { "locked": { - "lastModified": 1679360468, - "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=", - "owner": "hamishmack", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", "repo": "flake-utils", - "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "hamishmack", - "ref": "hkm/nested-hydraJobs", + "owner": "numtide", "repo": "flake-utils", "type": "github" } }, "flake-utils_20": { - "inputs": { - "systems": "systems_5" - }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "type": "github" }, "original": { @@ -4786,11 +3769,11 @@ }, "flake-utils_21": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", "type": "github" }, "original": { @@ -4801,11 +3784,11 @@ }, "flake-utils_22": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { @@ -4816,11 +3799,11 @@ }, "flake-utils_23": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1610051610, + "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", "type": "github" }, "original": { @@ -4831,11 +3814,11 @@ }, "flake-utils_24": { "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -4846,11 +3829,11 @@ }, "flake-utils_25": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -4861,11 +3844,11 @@ }, "flake-utils_26": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1634851050, + "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "type": "github" }, "original": { @@ -4876,11 +3859,11 @@ }, "flake-utils_27": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { @@ -4891,11 +3874,11 @@ }, "flake-utils_28": { "locked": { - "lastModified": 1656928814, - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", "owner": "numtide", "repo": "flake-utils", - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", "type": "github" }, "original": { @@ -4906,11 +3889,11 @@ }, "flake-utils_29": { "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "lastModified": 1619345332, + "narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", "owner": "numtide", "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", "type": "github" }, "original": { @@ -4921,11 +3904,11 @@ }, "flake-utils_3": { "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", "owner": "numtide", "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { @@ -4936,26 +3919,27 @@ }, "flake-utils_30": { "locked": { - "lastModified": 1642700792, - "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "lastModified": 1652776076, + "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", "owner": "numtide", "repo": "flake-utils", - "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", "type": "github" }, "original": { "owner": "numtide", + "ref": "v1.0.0", "repo": "flake-utils", "type": "github" } }, "flake-utils_31": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { @@ -4966,11 +3950,11 @@ }, "flake-utils_32": { "locked": { - "lastModified": 1610051610, - "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "owner": "numtide", "repo": "flake-utils", - "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { @@ -4981,11 +3965,11 @@ }, "flake-utils_33": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { @@ -4996,11 +3980,11 @@ }, "flake-utils_34": { "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { @@ -5011,11 +3995,11 @@ }, "flake-utils_35": { "locked": { - "lastModified": 1634851050, - "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", "owner": "numtide", "repo": "flake-utils", - "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", "type": "github" }, "original": { @@ -5026,11 +4010,11 @@ }, "flake-utils_36": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -5055,82 +4039,6 @@ } }, "flake-utils_38": { - "locked": { - "lastModified": 1619345332, - "narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_39": { - "locked": { - "lastModified": 1652776076, - "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", - "type": "github" - }, - "original": { - "owner": "numtide", - "ref": "v1.0.0", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_4": { - "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_40": { - "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_41": { - "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_42": { "locked": { "lastModified": 1644229661, "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", @@ -5145,7 +4053,7 @@ "type": "github" } }, - "flake-utils_43": { + "flake-utils_4": { "locked": { "lastModified": 1653893745, "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", @@ -5160,58 +4068,16 @@ "type": "github" } }, - "flake-utils_44": { - "locked": { - "lastModified": 1656928814, - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_45": { - "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_46": { - "locked": { - "lastModified": 1642700792, - "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", - "type": "github" + "flake-utils_5": { + "inputs": { + "systems": "systems_4" }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_47": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -5220,29 +4086,13 @@ "type": "github" } }, - "flake-utils_5": { - "locked": { - "lastModified": 1679360468, - "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=", - "owner": "hamishmack", - "repo": "flake-utils", - "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5", - "type": "github" - }, - "original": { - "owner": "hamishmack", - "ref": "hkm/nested-hydraJobs", - "repo": "flake-utils", - "type": "github" - } - }, "flake-utils_6": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { @@ -5283,11 +4133,11 @@ }, "flake-utils_9": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { @@ -5314,8 +4164,8 @@ }, "follower": { "inputs": { - "devshell": "devshell_14", - "inclusive": "inclusive_8", + "devshell": "devshell_12", + "inclusive": "inclusive_7", "nixpkgs": [ "db-sync", "cardano-world", @@ -5323,7 +4173,7 @@ "cicero", "nixpkgs" ], - "utils": "utils_20" + "utils": "utils_18" }, "locked": { "lastModified": 1642008295, @@ -5356,23 +4206,6 @@ "type": "github" } }, - "ghc-8.6.5-iohk_10": { - "flake": false, - "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", - "type": "github" - } - }, "ghc-8.6.5-iohk_2": { "flake": false, "locked": { @@ -5492,23 +4325,6 @@ "type": "github" } }, - "ghc-8.6.5-iohk_9": { - "flake": false, - "locked": { - "lastModified": 1600920045, - "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=", - "owner": "input-output-hk", - "repo": "ghc", - "rev": "95713a6ecce4551240da7c96b6176f980af75cae", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "release/8.6.5-iohk", - "repo": "ghc", - "type": "github" - } - }, "ghc910X": { "flake": false, "locked": { @@ -5528,70 +4344,51 @@ "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "ghc911": { - "flake": false, - "locked": { - "lastModified": 1714817013, - "narHash": "sha256-m2je4UvWfkgepMeUIiXHMwE6W+iVfUY38VDGkMzjCcc=", - "ref": "refs/heads/master", - "rev": "fc24c5cf6c62ca9e3c8d236656e139676df65034", - "revCount": 62816, - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" - }, - "original": { - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" - } - }, - "ghc98X": { + "ghc910X_2": { "flake": false, "locked": { - "lastModified": 1696643148, - "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", - "ref": "ghc-9.8", - "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", - "revCount": 61642, + "lastModified": 1714520650, + "narHash": "sha256-4uz6RA1hRr0RheGNDM49a/B3jszqNNU8iHIow4mSyso=", + "ref": "ghc-9.10", + "rev": "2c6375b9a804ac7fca1e82eb6fcfc8594c67c5f5", + "revCount": 62663, "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" }, "original": { - "ref": "ghc-9.8", + "ref": "ghc-9.10", "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "ghc98X_2": { + "ghc911": { "flake": false, "locked": { - "lastModified": 1696643148, - "narHash": "sha256-E02DfgISH7EvvNAu0BHiPvl1E5FGMDi0pWdNZtIBC9I=", - "ref": "ghc-9.8", - "rev": "443e870d977b1ab6fc05f47a9a17bc49296adbd6", - "revCount": 61642, + "lastModified": 1714817013, + "narHash": "sha256-m2je4UvWfkgepMeUIiXHMwE6W+iVfUY38VDGkMzjCcc=", + "ref": "refs/heads/master", + "rev": "fc24c5cf6c62ca9e3c8d236656e139676df65034", + "revCount": 62816, "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" }, "original": { - "ref": "ghc-9.8", "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "ghc99": { + "ghc911_2": { "flake": false, "locked": { - "lastModified": 1697054644, - "narHash": "sha256-kKarOuXUaAH3QWv7ASx+gGFMHaHKe0pK5Zu37ky2AL4=", + "lastModified": 1714817013, + "narHash": "sha256-m2je4UvWfkgepMeUIiXHMwE6W+iVfUY38VDGkMzjCcc=", "ref": "refs/heads/master", - "rev": "f383a242c76f90bcca8a4d7ee001dcb49c172a9a", - "revCount": 62040, + "rev": "fc24c5cf6c62ca9e3c8d236656e139676df65034", + "revCount": 62816, "submodules": true, "type": "git", "url": "https://gitlab.haskell.org/ghc/ghc" @@ -5602,29 +4399,33 @@ "url": "https://gitlab.haskell.org/ghc/ghc" } }, - "ghc99_2": { - "flake": false, + "gitignore": { + "inputs": { + "nixpkgs": [ + "cardano-nix", + "pre-commit-hooks-nix", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1697054644, - "narHash": "sha256-kKarOuXUaAH3QWv7ASx+gGFMHaHKe0pK5Zu37ky2AL4=", - "ref": "refs/heads/master", - "rev": "f383a242c76f90bcca8a4d7ee001dcb49c172a9a", - "revCount": 62040, - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "lastModified": 1703887061, + "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", + "type": "github" }, "original": { - "submodules": true, - "type": "git", - "url": "https://gitlab.haskell.org/ghc/ghc" + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" } }, - "gitignore": { + "gitignore_2": { "inputs": { "nixpkgs": [ - "cardano-nix", - "pre-commit-hooks-nix", + "clb", + "pre-commit-hooks", "nixpkgs" ] }, @@ -5644,7 +4445,7 @@ }, "gomod2nix": { "inputs": { - "nixpkgs": "nixpkgs_18", + "nixpkgs": "nixpkgs_3", "utils": "utils_2" }, "locked": { @@ -5663,27 +4464,8 @@ }, "gomod2nix_2": { "inputs": { - "nixpkgs": "nixpkgs_22", - "utils": "utils_4" - }, - "locked": { - "lastModified": 1655245309, - "narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=", - "owner": "tweag", - "repo": "gomod2nix", - "rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58", - "type": "github" - }, - "original": { - "owner": "tweag", - "repo": "gomod2nix", - "type": "github" - } - }, - "gomod2nix_3": { - "inputs": { - "nixpkgs": "nixpkgs_31", - "utils": "utils_7" + "nixpkgs": "nixpkgs_9", + "utils": "utils_5" }, "locked": { "lastModified": 1655245309, @@ -5702,11 +4484,11 @@ "hackage": { "flake": false, "locked": { - "lastModified": 1692145451, - "narHash": "sha256-kqfyD3Mu5kgiH5W2ZshUhzO46H0zYDpwD1SWz+POMrk=", + "lastModified": 1725496262, + "narHash": "sha256-iH4t45i6S8HtAK9jexPQ9fz0i+FDceGMIHOhNyeLEfg=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "9d2daeca0e09002bc6fb552a097a1802a2f3a4e3", + "rev": "b6302b479468c507d2b9bf69bfbff2c1649cc5dc", "type": "github" }, "original": { @@ -5750,11 +4532,11 @@ "hackageNix_2": { "flake": false, "locked": { - "lastModified": 1685492843, - "narHash": "sha256-X8dNs5Gfc2ucfaWAgZ1VmkpBB4Cb44EQZu0b7tkvz2Y=", + "lastModified": 1725928375, + "narHash": "sha256-XO/6kJ77bR99bAuRGr9PleQX75vde5CbSU+6Xf3e8NQ=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "e7407bab324eb2445bda58c5ffac393e80dda1e4", + "rev": "68cfb288b958e9d7a1329df614684132f44bd2b3", "type": "github" }, "original": { @@ -5764,22 +4546,6 @@ } }, "hackageNix_3": { - "flake": false, - "locked": { - "lastModified": 1701303758, - "narHash": "sha256-8XqVEQwmJBxRPFa7SizJuZxbG+NFEZKWdhtYPTQ7ZKM=", - "owner": "input-output-hk", - "repo": "hackage.nix", - "rev": "8a0e3ae9295b7ef8431b9be208dd06aa2789be53", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "hackage.nix", - "type": "github" - } - }, - "hackageNix_4": { "flake": false, "locked": { "lastModified": 1724200761, @@ -5876,48 +4642,50 @@ }, "haskell-nix": { "inputs": { - "HTTP": "HTTP", - "cabal-32": "cabal-32", - "cabal-34": "cabal-34", - "cabal-36": "cabal-36", - "cardano-shell": "cardano-shell", - "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_2", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk", + "HTTP": "HTTP_3", + "cabal-32": "cabal-32_3", + "cabal-34": "cabal-34_3", + "cabal-36": "cabal-36_3", + "cardano-shell": "cardano-shell_3", + "flake-compat": "flake-compat_9", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_3", "hackage": "hackage", - "hls-1.10": "hls-1.10", - "hls-2.0": "hls-2.0", - "hpc-coveralls": "hpc-coveralls", - "hydra": "hydra", - "iserv-proxy": "iserv-proxy", + "hls-1.10": "hls-1.10_3", + "hls-2.0": "hls-2.0_3", + "hls-2.2": "hls-2.2_3", + "hls-2.3": "hls-2.3_3", + "hls-2.4": "hls-2.4_3", + "hls-2.5": "hls-2.5_3", + "hls-2.6": "hls-2.6_3", + "hls-2.7": "hls-2.7_3", + "hls-2.8": "hls-2.8_3", + "hls-2.9": "hls-2.9_3", + "hpc-coveralls": "hpc-coveralls_3", + "hydra": "hydra_3", + "iserv-proxy": "iserv-proxy_3", "nixpkgs": [ - "cardano-nix", - "cardano-db-sync", - "cardano-parts", + "clb", "haskell-nix", "nixpkgs-unstable" ], - "nixpkgs-2003": "nixpkgs-2003", - "nixpkgs-2105": "nixpkgs-2105", - "nixpkgs-2111": "nixpkgs-2111", - "nixpkgs-2205": "nixpkgs-2205", - "nixpkgs-2211": "nixpkgs-2211", - "nixpkgs-2305": "nixpkgs-2305", - "nixpkgs-unstable": "nixpkgs-unstable", - "old-ghc-nix": "old-ghc-nix", - "stackage": [ - "cardano-nix", - "cardano-db-sync", - "cardano-parts", - "empty-flake" - ] + "nixpkgs-2003": "nixpkgs-2003_3", + "nixpkgs-2105": "nixpkgs-2105_3", + "nixpkgs-2111": "nixpkgs-2111_3", + "nixpkgs-2205": "nixpkgs-2205_3", + "nixpkgs-2211": "nixpkgs-2211_3", + "nixpkgs-2305": "nixpkgs-2305_3", + "nixpkgs-2311": "nixpkgs-2311_3", + "nixpkgs-2405": "nixpkgs-2405", + "nixpkgs-unstable": "nixpkgs-unstable_3", + "old-ghc-nix": "old-ghc-nix_3", + "stackage": "stackage_3" }, "locked": { - "lastModified": 1692147008, - "narHash": "sha256-ZiRaryaboJbNZ7y7XKZs2xuSfydZyGeupJNOfYpgQSw=", + "lastModified": 1725540942, + "narHash": "sha256-XcKdYdSFXg3eCwJJh9tXFlkV9wDjtZWnU1RyDy4t7hg=", "owner": "input-output-hk", "repo": "haskell.nix", - "rev": "1970bb2d5b0eb8152f89b305f32d055dbd6857d9", + "rev": "f0700666232ba5e5aba7f6aab1565b5ca31e55e3", "type": "github" }, "original": { @@ -5928,15 +4696,15 @@ }, "haskell-nix_2": { "inputs": { - "HTTP": "HTTP_6", - "cabal-32": "cabal-32_6", - "cabal-34": "cabal-34_6", - "cabal-36": "cabal-36_6", - "cardano-shell": "cardano-shell_6", - "flake-utils": "flake-utils_31", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_6", + "HTTP": "HTTP_4", + "cabal-32": "cabal-32_4", + "cabal-34": "cabal-34_4", + "cabal-36": "cabal-36_4", + "cardano-shell": "cardano-shell_4", + "flake-utils": "flake-utils_22", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_4", "hackage": "hackage_2", - "hpc-coveralls": "hpc-coveralls_6", + "hpc-coveralls": "hpc-coveralls_4", "nix-tools": "nix-tools", "nixpkgs": [ "db-sync", @@ -5946,9 +4714,9 @@ "haskell-nix", "nixpkgs-unstable" ], - "nixpkgs-2003": "nixpkgs-2003_6", - "nixpkgs-2105": "nixpkgs-2105_6", - "nixpkgs-2111": "nixpkgs-2111_6", + "nixpkgs-2003": "nixpkgs-2003_4", + "nixpkgs-2105": "nixpkgs-2105_4", + "nixpkgs-2111": "nixpkgs-2111_4", "nixpkgs-unstable": [ "db-sync", "cardano-world", @@ -5956,8 +4724,8 @@ "cicero", "nixpkgs" ], - "old-ghc-nix": "old-ghc-nix_6", - "stackage": "stackage_5" + "old-ghc-nix": "old-ghc-nix_4", + "stackage": "stackage_4" }, "locked": { "lastModified": 1646097976, @@ -5975,20 +4743,20 @@ }, "haskell-nix_3": { "inputs": { - "HTTP": "HTTP_8", - "cabal-32": "cabal-32_8", - "cabal-34": "cabal-34_8", - "cabal-36": "cabal-36_8", - "cardano-shell": "cardano-shell_8", - "flake-utils": "flake-utils_42", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_8", + "HTTP": "HTTP_6", + "cabal-32": "cabal-32_6", + "cabal-34": "cabal-34_6", + "cabal-36": "cabal-36_6", + "cardano-shell": "cardano-shell_6", + "flake-utils": "flake-utils_33", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_6", "hackage": [ "db-sync", "cardano-world", "hackage" ], - "hpc-coveralls": "hpc-coveralls_8", - "hydra": "hydra_10", + "hpc-coveralls": "hpc-coveralls_6", + "hydra": "hydra_8", "nix-tools": "nix-tools_3", "nixpkgs": [ "db-sync", @@ -5996,13 +4764,13 @@ "haskell-nix", "nixpkgs-unstable" ], - "nixpkgs-2003": "nixpkgs-2003_8", - "nixpkgs-2105": "nixpkgs-2105_8", - "nixpkgs-2111": "nixpkgs-2111_8", - "nixpkgs-2205": "nixpkgs-2205_6", - "nixpkgs-unstable": "nixpkgs-unstable_11", - "old-ghc-nix": "old-ghc-nix_8", - "stackage": "stackage_7" + "nixpkgs-2003": "nixpkgs-2003_6", + "nixpkgs-2105": "nixpkgs-2105_6", + "nixpkgs-2111": "nixpkgs-2111_6", + "nixpkgs-2205": "nixpkgs-2205_4", + "nixpkgs-unstable": "nixpkgs-unstable_8", + "old-ghc-nix": "old-ghc-nix_6", + "stackage": "stackage_6" }, "locked": { "lastModified": 1659439444, @@ -6020,43 +4788,43 @@ }, "haskell-nix_4": { "inputs": { - "HTTP": "HTTP_10", - "cabal-32": "cabal-32_10", - "cabal-34": "cabal-34_10", - "cabal-36": "cabal-36_10", - "cardano-shell": "cardano-shell_10", - "flake-compat": "flake-compat_25", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_10", + "HTTP": "HTTP_8", + "cabal-32": "cabal-32_8", + "cabal-34": "cabal-34_8", + "cabal-36": "cabal-36_8", + "cardano-shell": "cardano-shell_8", + "flake-compat": "flake-compat_19", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_8", "hackage": [ "hackage-nix" ], - "hls-1.10": "hls-1.10_6", - "hls-2.0": "hls-2.0_5", + "hls-1.10": "hls-1.10_4", + "hls-2.0": "hls-2.0_4", "hls-2.2": "hls-2.2_4", "hls-2.3": "hls-2.3_4", "hls-2.4": "hls-2.4_4", - "hls-2.5": "hls-2.5_2", - "hls-2.6": "hls-2.6_2", - "hls-2.7": "hls-2.7_2", - "hls-2.8": "hls-2.8_2", - "hls-2.9": "hls-2.9_2", - "hpc-coveralls": "hpc-coveralls_10", - "hydra": "hydra_12", - "iserv-proxy": "iserv-proxy_6", + "hls-2.5": "hls-2.5_4", + "hls-2.6": "hls-2.6_4", + "hls-2.7": "hls-2.7_4", + "hls-2.8": "hls-2.8_4", + "hls-2.9": "hls-2.9_4", + "hpc-coveralls": "hpc-coveralls_8", + "hydra": "hydra_10", + "iserv-proxy": "iserv-proxy_4", "nixpkgs": [ "nixpkgs" ], - "nixpkgs-2003": "nixpkgs-2003_10", - "nixpkgs-2105": "nixpkgs-2105_10", - "nixpkgs-2111": "nixpkgs-2111_10", - "nixpkgs-2205": "nixpkgs-2205_7", - "nixpkgs-2211": "nixpkgs-2211_6", - "nixpkgs-2305": "nixpkgs-2305_5", - "nixpkgs-2311": "nixpkgs-2311_2", - "nixpkgs-2405": "nixpkgs-2405", - "nixpkgs-unstable": "nixpkgs-unstable_13", - "old-ghc-nix": "old-ghc-nix_10", - "stackage": "stackage_9" + "nixpkgs-2003": "nixpkgs-2003_8", + "nixpkgs-2105": "nixpkgs-2105_8", + "nixpkgs-2111": "nixpkgs-2111_8", + "nixpkgs-2205": "nixpkgs-2205_5", + "nixpkgs-2211": "nixpkgs-2211_4", + "nixpkgs-2305": "nixpkgs-2305_4", + "nixpkgs-2311": "nixpkgs-2311_4", + "nixpkgs-2405": "nixpkgs-2405_2", + "nixpkgs-unstable": "nixpkgs-unstable_10", + "old-ghc-nix": "old-ghc-nix_8", + "stackage": "stackage_8" }, "locked": { "lastModified": 1724979052, @@ -6073,34 +4841,95 @@ } }, "haskellNix": { + "inputs": { + "HTTP": "HTTP", + "cabal-32": "cabal-32", + "cabal-34": "cabal-34", + "cabal-36": "cabal-36", + "cardano-shell": "cardano-shell", + "flake-compat": "flake-compat_4", + "ghc-8.6.5-iohk": "ghc-8.6.5-iohk", + "ghc910X": "ghc910X", + "ghc911": "ghc911", + "hackage": [ + "cardano-nix", + "cardano-node-92", + "hackageNix" + ], + "hls-1.10": "hls-1.10", + "hls-2.0": "hls-2.0", + "hls-2.2": "hls-2.2", + "hls-2.3": "hls-2.3", + "hls-2.4": "hls-2.4", + "hls-2.5": "hls-2.5", + "hls-2.6": "hls-2.6", + "hls-2.7": "hls-2.7", + "hls-2.8": "hls-2.8", + "hls-2.9": "hls-2.9", + "hpc-coveralls": "hpc-coveralls", + "hydra": "hydra", + "iserv-proxy": "iserv-proxy", + "nixpkgs": [ + "cardano-nix", + "cardano-node-92", + "nixpkgs" + ], + "nixpkgs-2003": "nixpkgs-2003", + "nixpkgs-2105": "nixpkgs-2105", + "nixpkgs-2111": "nixpkgs-2111", + "nixpkgs-2205": "nixpkgs-2205", + "nixpkgs-2211": "nixpkgs-2211", + "nixpkgs-2305": "nixpkgs-2305", + "nixpkgs-2311": "nixpkgs-2311", + "nixpkgs-unstable": "nixpkgs-unstable", + "old-ghc-nix": "old-ghc-nix", + "stackage": "stackage" + }, + "locked": { + "lastModified": 1718797200, + "narHash": "sha256-ueFxTuZrQ3ZT/Fj5sSeUWlqKa4+OkUU1xW0E+q/XTfw=", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "cb139fa956158397aa398186bb32dd26f7318784", + "type": "github" + }, + "original": { + "owner": "input-output-hk", + "repo": "haskell.nix", + "type": "github" + } + }, + "haskellNix_2": { "inputs": { "HTTP": "HTTP_2", "cabal-32": "cabal-32_2", "cabal-34": "cabal-34_2", "cabal-36": "cabal-36_2", "cardano-shell": "cardano-shell_2", - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_8", "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2", - "ghc98X": "ghc98X", - "ghc99": "ghc99", + "ghc910X": "ghc910X_2", + "ghc911": "ghc911_2", "hackage": [ - "cardano-nix", - "cardano-db-sync", + "cardano-node", "hackageNix" ], "hls-1.10": "hls-1.10_2", "hls-2.0": "hls-2.0_2", - "hls-2.2": "hls-2.2", - "hls-2.3": "hls-2.3", - "hls-2.4": "hls-2.4", + "hls-2.2": "hls-2.2_2", + "hls-2.3": "hls-2.3_2", + "hls-2.4": "hls-2.4_2", + "hls-2.5": "hls-2.5_2", + "hls-2.6": "hls-2.6_2", + "hls-2.7": "hls-2.7_2", + "hls-2.8": "hls-2.8_2", + "hls-2.9": "hls-2.9_2", "hpc-coveralls": "hpc-coveralls_2", "hydra": "hydra_2", "iserv-proxy": "iserv-proxy_2", "nixpkgs": [ - "cardano-nix", - "cardano-db-sync", - "haskellNix", - "nixpkgs-unstable" + "cardano-node", + "nixpkgs" ], "nixpkgs-2003": "nixpkgs-2003_2", "nixpkgs-2105": "nixpkgs-2105_2", @@ -6108,16 +4937,17 @@ "nixpkgs-2205": "nixpkgs-2205_2", "nixpkgs-2211": "nixpkgs-2211_2", "nixpkgs-2305": "nixpkgs-2305_2", - "nixpkgs-unstable": "nixpkgs-unstable_3", + "nixpkgs-2311": "nixpkgs-2311_2", + "nixpkgs-unstable": "nixpkgs-unstable_2", "old-ghc-nix": "old-ghc-nix_2", - "stackage": "stackage" + "stackage": "stackage_2" }, "locked": { - "lastModified": 1701053834, - "narHash": "sha256-4sH4//POARjeKJv1mu8aU4W4A28GYqrj9KB3PqusHis=", + "lastModified": 1718797200, + "narHash": "sha256-ueFxTuZrQ3ZT/Fj5sSeUWlqKa4+OkUU1xW0E+q/XTfw=", "owner": "input-output-hk", "repo": "haskell.nix", - "rev": "7c491c55157208575c70c7b8434e9d4a1cf173a6", + "rev": "cb139fa956158397aa398186bb32dd26f7318784", "type": "github" }, "original": { @@ -6126,155 +4956,38 @@ "type": "github" } }, - "haskellNix_2": { - "inputs": { - "HTTP": "HTTP_3", - "cabal-32": "cabal-32_3", - "cabal-34": "cabal-34_3", - "cabal-36": "cabal-36_3", - "cardano-shell": "cardano-shell_3", - "flake-compat": "flake-compat_7", - "flake-utils": "flake-utils_5", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_3", - "hackage": [ - "cardano-nix", - "cardano-node-8.1.1", - "hackageNix" - ], - "hls-1.10": "hls-1.10_3", - "hpc-coveralls": "hpc-coveralls_3", - "hydra": "hydra_3", - "iserv-proxy": "iserv-proxy_3", - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.1.1", - "nixpkgs" - ], - "nixpkgs-2003": "nixpkgs-2003_3", - "nixpkgs-2105": "nixpkgs-2105_3", - "nixpkgs-2111": "nixpkgs-2111_3", - "nixpkgs-2205": "nixpkgs-2205_3", - "nixpkgs-2211": "nixpkgs-2211_3", - "nixpkgs-unstable": "nixpkgs-unstable_4", - "old-ghc-nix": "old-ghc-nix_3", - "stackage": "stackage_2" - }, - "locked": { - "lastModified": 1685495397, - "narHash": "sha256-BwbWroS1Qm8BiHatG5+iHMHN5U6kqOccewBROUYuMKw=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "d07c42cdb1cf88d0cab27d3090b00cb3899643c9", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", - "type": "github" - } - }, - "haskellNix_3": { - "inputs": { - "HTTP": "HTTP_4", - "cabal-32": "cabal-32_4", - "cabal-34": "cabal-34_4", - "cabal-36": "cabal-36_4", - "cardano-shell": "cardano-shell_4", - "flake-compat": "flake-compat_11", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_4", - "ghc98X": "ghc98X_2", - "ghc99": "ghc99_2", - "hackage": [ - "cardano-nix", - "cardano-node-8.7.3", - "hackageNix" - ], - "hls-1.10": "hls-1.10_4", - "hls-2.0": "hls-2.0_3", - "hls-2.2": "hls-2.2_2", - "hls-2.3": "hls-2.3_2", - "hls-2.4": "hls-2.4_2", - "hpc-coveralls": "hpc-coveralls_4", - "hydra": "hydra_4", - "iserv-proxy": "iserv-proxy_4", - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "nixpkgs" - ], - "nixpkgs-2003": "nixpkgs-2003_4", - "nixpkgs-2105": "nixpkgs-2105_4", - "nixpkgs-2111": "nixpkgs-2111_4", - "nixpkgs-2205": "nixpkgs-2205_4", - "nixpkgs-2211": "nixpkgs-2211_4", - "nixpkgs-2305": "nixpkgs-2305_3", - "nixpkgs-unstable": "nixpkgs-unstable_5", - "old-ghc-nix": "old-ghc-nix_4", - "stackage": "stackage_3" - }, - "locked": { - "lastModified": 1700441391, - "narHash": "sha256-oJqP1AUskUvr3GNUH97eKwaIUHdYgENS2kQ7GI9RI+c=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "3b6056f3866f88d1d16eaeb2e810d3ac0df0e7cd", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", - "type": "github" - } - }, - "haskellNix_4": { + "haskellNix_3": { "inputs": { "HTTP": "HTTP_5", "cabal-32": "cabal-32_5", "cabal-34": "cabal-34_5", "cabal-36": "cabal-36_5", "cardano-shell": "cardano-shell_5", - "flake-compat": "flake-compat_16", + "flake-utils": "flake-utils_32", "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_5", - "ghc910X": "ghc910X", - "ghc911": "ghc911", - "hackage": [ - "cardano-node", - "hackageNix" - ], - "hls-1.10": "hls-1.10_5", - "hls-2.0": "hls-2.0_4", - "hls-2.2": "hls-2.2_3", - "hls-2.3": "hls-2.3_3", - "hls-2.4": "hls-2.4_3", - "hls-2.5": "hls-2.5", - "hls-2.6": "hls-2.6", - "hls-2.7": "hls-2.7", - "hls-2.8": "hls-2.8", - "hls-2.9": "hls-2.9", + "hackage": "hackage_3", "hpc-coveralls": "hpc-coveralls_5", - "hydra": "hydra_5", - "iserv-proxy": "iserv-proxy_5", + "hydra": "hydra_7", + "nix-tools": "nix-tools_2", "nixpkgs": [ - "cardano-node", + "db-sync", + "cardano-world", + "cardano-wallet", "nixpkgs" ], "nixpkgs-2003": "nixpkgs-2003_5", "nixpkgs-2105": "nixpkgs-2105_5", "nixpkgs-2111": "nixpkgs-2111_5", - "nixpkgs-2205": "nixpkgs-2205_5", - "nixpkgs-2211": "nixpkgs-2211_5", - "nixpkgs-2305": "nixpkgs-2305_4", - "nixpkgs-2311": "nixpkgs-2311", - "nixpkgs-unstable": "nixpkgs-unstable_6", + "nixpkgs-unstable": "nixpkgs-unstable_7", "old-ghc-nix": "old-ghc-nix_5", - "stackage": "stackage_4" + "stackage": "stackage_5" }, "locked": { - "lastModified": 1718797200, - "narHash": "sha256-ueFxTuZrQ3ZT/Fj5sSeUWlqKa4+OkUU1xW0E+q/XTfw=", + "lastModified": 1655369909, + "narHash": "sha256-Z3d17WvaXY2kWdfsOE6yPKViQ1RBfGi4d7XZgXA/j2I=", "owner": "input-output-hk", "repo": "haskell.nix", - "rev": "cb139fa956158397aa398186bb32dd26f7318784", + "rev": "5a310b0b3904d9b90239390eb2dfb59e4dcb0d96", "type": "github" }, "original": { @@ -6283,70 +4996,30 @@ "type": "github" } }, - "haskellNix_5": { + "haskellNix_4": { "inputs": { "HTTP": "HTTP_7", "cabal-32": "cabal-32_7", "cabal-34": "cabal-34_7", "cabal-36": "cabal-36_7", "cardano-shell": "cardano-shell_7", - "flake-utils": "flake-utils_41", + "flake-utils": "flake-utils_38", "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_7", - "hackage": "hackage_3", + "hackage": "hackage_5", "hpc-coveralls": "hpc-coveralls_7", "hydra": "hydra_9", - "nix-tools": "nix-tools_2", + "nix-tools": "nix-tools_4", "nixpkgs": [ "db-sync", - "cardano-world", - "cardano-wallet", - "nixpkgs" + "haskellNix", + "nixpkgs-unstable" ], "nixpkgs-2003": "nixpkgs-2003_7", "nixpkgs-2105": "nixpkgs-2105_7", "nixpkgs-2111": "nixpkgs-2111_7", - "nixpkgs-unstable": "nixpkgs-unstable_10", + "nixpkgs-unstable": "nixpkgs-unstable_9", "old-ghc-nix": "old-ghc-nix_7", - "stackage": "stackage_6" - }, - "locked": { - "lastModified": 1655369909, - "narHash": "sha256-Z3d17WvaXY2kWdfsOE6yPKViQ1RBfGi4d7XZgXA/j2I=", - "owner": "input-output-hk", - "repo": "haskell.nix", - "rev": "5a310b0b3904d9b90239390eb2dfb59e4dcb0d96", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "haskell.nix", - "type": "github" - } - }, - "haskellNix_6": { - "inputs": { - "HTTP": "HTTP_9", - "cabal-32": "cabal-32_9", - "cabal-34": "cabal-34_9", - "cabal-36": "cabal-36_9", - "cardano-shell": "cardano-shell_9", - "flake-utils": "flake-utils_47", - "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_9", - "hackage": "hackage_5", - "hpc-coveralls": "hpc-coveralls_9", - "hydra": "hydra_11", - "nix-tools": "nix-tools_4", - "nixpkgs": [ - "db-sync", - "haskellNix", - "nixpkgs-unstable" - ], - "nixpkgs-2003": "nixpkgs-2003_9", - "nixpkgs-2105": "nixpkgs-2105_9", - "nixpkgs-2111": "nixpkgs-2111_9", - "nixpkgs-unstable": "nixpkgs-unstable_12", - "old-ghc-nix": "old-ghc-nix_9", - "stackage": "stackage_8" + "stackage": "stackage_7" }, "locked": { "lastModified": 1650936156, @@ -6364,7 +5037,12 @@ }, "haumea": { "inputs": { - "nixpkgs": "nixpkgs_28" + "nixpkgs": [ + "cardano-nix", + "cardano-node-92", + "std", + "lib" + ] }, "locked": { "lastModified": 1685133229, @@ -6432,15 +5110,15 @@ }, "hercules-ci-effects_2": { "inputs": { - "flake-parts": "flake-parts_7", - "nixpkgs": "nixpkgs_99" + "flake-parts": "flake-parts_3", + "nixpkgs": "nixpkgs_17" }, "locked": { - "lastModified": 1724947644, - "narHash": "sha256-MHHrHasTngp7EYQOObHJ1a/IsRF+wodHqOckhH6uZbk=", + "lastModified": 1710478346, + "narHash": "sha256-Xjf8BdnQG0tLhPMlqQdwCIjOp7Teox0DP3N/jjyiGM4=", "owner": "hercules-ci", "repo": "hercules-ci-effects", - "rev": "dba4367b9a9d9615456c430a6d6af716f6e84cef", + "rev": "64e7763d72c1e4c1e5e6472640615b6ae2d40fbf", "type": "github" }, "original": { @@ -6449,41 +5127,26 @@ "type": "github" } }, - "hls-1.10": { - "flake": false, - "locked": { - "lastModified": 1680000865, - "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", - "type": "github" + "hercules-ci-effects_3": { + "inputs": { + "flake-parts": "flake-parts_5", + "nixpkgs": "nixpkgs_81" }, - "original": { - "owner": "haskell", - "ref": "1.10.0.0", - "repo": "haskell-language-server", - "type": "github" - } - }, - "hls-1.10_2": { - "flake": false, "locked": { - "lastModified": 1680000865, - "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9", + "lastModified": 1724947644, + "narHash": "sha256-MHHrHasTngp7EYQOObHJ1a/IsRF+wodHqOckhH6uZbk=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "dba4367b9a9d9615456c430a6d6af716f6e84cef", "type": "github" }, "original": { - "owner": "haskell", - "ref": "1.10.0.0", - "repo": "haskell-language-server", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", "type": "github" } }, - "hls-1.10_3": { + "hls-1.10": { "flake": false, "locked": { "lastModified": 1680000865, @@ -6500,7 +5163,7 @@ "type": "github" } }, - "hls-1.10_4": { + "hls-1.10_2": { "flake": false, "locked": { "lastModified": 1680000865, @@ -6517,7 +5180,7 @@ "type": "github" } }, - "hls-1.10_5": { + "hls-1.10_3": { "flake": false, "locked": { "lastModified": 1680000865, @@ -6534,7 +5197,7 @@ "type": "github" } }, - "hls-1.10_6": { + "hls-1.10_4": { "flake": false, "locked": { "lastModified": 1680000865, @@ -6619,23 +5282,6 @@ "type": "github" } }, - "hls-2.0_5": { - "flake": false, - "locked": { - "lastModified": 1687698105, - "narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=", - "owner": "haskell", - "repo": "haskell-language-server", - "rev": "783905f211ac63edf982dd1889c671653327e441", - "type": "github" - }, - "original": { - "owner": "haskell", - "ref": "2.0.0.1", - "repo": "haskell-language-server", - "type": "github" - } - }, "hls-2.2": { "flake": false, "locked": { @@ -6775,16 +5421,16 @@ "hls-2.4": { "flake": false, "locked": { - "lastModified": 1696939266, - "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", + "lastModified": 1699862708, + "narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=", "owner": "haskell", "repo": "haskell-language-server", - "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", + "rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57", "type": "github" }, "original": { "owner": "haskell", - "ref": "2.4.0.0", + "ref": "2.4.0.1", "repo": "haskell-language-server", "type": "github" } @@ -6792,16 +5438,16 @@ "hls-2.4_2": { "flake": false, "locked": { - "lastModified": 1696939266, - "narHash": "sha256-VOMf5+kyOeOmfXTHlv4LNFJuDGa7G3pDnOxtzYR40IU=", + "lastModified": 1699862708, + "narHash": "sha256-YHXSkdz53zd0fYGIYOgLt6HrA0eaRJi9mXVqDgmvrjk=", "owner": "haskell", "repo": "haskell-language-server", - "rev": "362fdd1293efb4b82410b676ab1273479f6d17ee", + "rev": "54507ef7e85fa8e9d0eb9a669832a3287ffccd57", "type": "github" }, "original": { "owner": "haskell", - "ref": "2.4.0.0", + "ref": "2.4.0.1", "repo": "haskell-language-server", "type": "github" } @@ -6874,45 +5520,113 @@ "type": "github" } }, - "hls-2.6": { + "hls-2.5_3": { "flake": false, "locked": { - "lastModified": 1705325287, - "narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=", + "lastModified": 1701080174, + "narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=", "owner": "haskell", "repo": "haskell-language-server", - "rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e", + "rev": "27f8c3d3892e38edaef5bea3870161815c4d014c", "type": "github" }, "original": { "owner": "haskell", - "ref": "2.6.0.0", + "ref": "2.5.0.0", "repo": "haskell-language-server", "type": "github" } }, - "hls-2.6_2": { + "hls-2.5_4": { "flake": false, "locked": { - "lastModified": 1705325287, - "narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=", + "lastModified": 1701080174, + "narHash": "sha256-fyiR9TaHGJIIR0UmcCb73Xv9TJq3ht2ioxQ2mT7kVdc=", "owner": "haskell", "repo": "haskell-language-server", - "rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e", + "rev": "27f8c3d3892e38edaef5bea3870161815c4d014c", "type": "github" }, "original": { "owner": "haskell", - "ref": "2.6.0.0", + "ref": "2.5.0.0", "repo": "haskell-language-server", "type": "github" } }, - "hls-2.7": { + "hls-2.6": { "flake": false, "locked": { - "lastModified": 1708965829, - "narHash": "sha256-LfJ+TBcBFq/XKoiNI7pc4VoHg4WmuzsFxYJ3Fu+Jf+M=", + "lastModified": 1705325287, + "narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.6.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.6_2": { + "flake": false, + "locked": { + "lastModified": 1705325287, + "narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.6.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.6_3": { + "flake": false, + "locked": { + "lastModified": 1705325287, + "narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.6.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.6_4": { + "flake": false, + "locked": { + "lastModified": 1705325287, + "narHash": "sha256-+P87oLdlPyMw8Mgoul7HMWdEvWP/fNlo8jyNtwME8E8=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "6e0b342fa0327e628610f2711f8c3e4eaaa08b1e", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.6.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.7": { + "flake": false, + "locked": { + "lastModified": 1708965829, + "narHash": "sha256-LfJ+TBcBFq/XKoiNI7pc4VoHg4WmuzsFxYJ3Fu+Jf+M=", "owner": "haskell", "repo": "haskell-language-server", "rev": "50322b0a4aefb27adc5ec42f5055aaa8f8e38001", @@ -6942,6 +5656,40 @@ "type": "github" } }, + "hls-2.7_3": { + "flake": false, + "locked": { + "lastModified": 1708965829, + "narHash": "sha256-LfJ+TBcBFq/XKoiNI7pc4VoHg4WmuzsFxYJ3Fu+Jf+M=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "50322b0a4aefb27adc5ec42f5055aaa8f8e38001", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.7.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.7_4": { + "flake": false, + "locked": { + "lastModified": 1708965829, + "narHash": "sha256-LfJ+TBcBFq/XKoiNI7pc4VoHg4WmuzsFxYJ3Fu+Jf+M=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "50322b0a4aefb27adc5ec42f5055aaa8f8e38001", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.7.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, "hls-2.8": { "flake": false, "locked": { @@ -6976,6 +5724,40 @@ "type": "github" } }, + "hls-2.8_3": { + "flake": false, + "locked": { + "lastModified": 1715153580, + "narHash": "sha256-Vi/iUt2pWyUJlo9VrYgTcbRviWE0cFO6rmGi9rmALw0=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "dd1be1beb16700de59e0d6801957290bcf956a0a", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.8.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.8_4": { + "flake": false, + "locked": { + "lastModified": 1715153580, + "narHash": "sha256-Vi/iUt2pWyUJlo9VrYgTcbRviWE0cFO6rmGi9rmALw0=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "dd1be1beb16700de59e0d6801957290bcf956a0a", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.8.0.0", + "repo": "haskell-language-server", + "type": "github" + } + }, "hls-2.9": { "flake": false, "locked": { @@ -6994,6 +5776,23 @@ } }, "hls-2.9_2": { + "flake": false, + "locked": { + "lastModified": 1718469202, + "narHash": "sha256-qnDx8Pk0UxtoPr7BimEsAZh9g2WuTuMB/kGqnmdryKs=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "0c1817cb2babef0765e4e72dd297c013e8e3d12b", + "type": "github" + }, + "original": { + "owner": "haskell", + "ref": "2.9.0.1", + "repo": "haskell-language-server", + "type": "github" + } + }, + "hls-2.9_3": { "flake": false, "locked": { "lastModified": 1718469202, @@ -7010,23 +5809,24 @@ "type": "github" } }, - "hpc-coveralls": { + "hls-2.9_4": { "flake": false, "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", + "lastModified": 1718469202, + "narHash": "sha256-THXSz+iwB1yQQsr/PY151+2GvtoJnTIB2pIQ4OzfjD4=", + "owner": "haskell", + "repo": "haskell-language-server", + "rev": "40891bccb235ebacce020b598b083eab9dda80f1", "type": "github" }, "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", + "owner": "haskell", + "ref": "2.9.0.0", + "repo": "haskell-language-server", "type": "github" } }, - "hpc-coveralls_10": { + "hpc-coveralls": { "flake": false, "locked": { "lastModified": 1607498076, @@ -7154,30 +5954,13 @@ "type": "github" } }, - "hpc-coveralls_9": { - "flake": false, - "locked": { - "lastModified": 1607498076, - "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=", - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430", - "type": "github" - }, - "original": { - "owner": "sevanspowell", - "repo": "hpc-coveralls", - "type": "github" - } - }, "hydra": { "inputs": { "nix": "nix", "nixpkgs": [ "cardano-nix", - "cardano-db-sync", - "cardano-parts", - "haskell-nix", + "cardano-node-92", + "haskellNix", "hydra", "nix", "nixpkgs" @@ -7198,10 +5981,8 @@ }, "hydra_10": { "inputs": { - "nix": "nix_18", + "nix": "nix_17", "nixpkgs": [ - "db-sync", - "cardano-world", "haskell-nix", "hydra", "nix", @@ -7209,11 +5990,11 @@ ] }, "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", "owner": "NixOS", "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", "type": "github" }, "original": { @@ -7221,11 +6002,11 @@ "type": "indirect" } }, - "hydra_11": { + "hydra_2": { "inputs": { - "nix": "nix_19", + "nix": "nix_2", "nixpkgs": [ - "db-sync", + "cardano-node", "haskellNix", "hydra", "nix", @@ -7233,11 +6014,11 @@ ] }, "locked": { - "lastModified": 1646878427, - "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "lastModified": 1671755331, + "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", "owner": "NixOS", "repo": "hydra", - "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", + "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", "type": "github" }, "original": { @@ -7245,10 +6026,11 @@ "type": "indirect" } }, - "hydra_12": { + "hydra_3": { "inputs": { - "nix": "nix_20", + "nix": "nix_3", "nixpkgs": [ + "clb", "haskell-nix", "hydra", "nix", @@ -7268,103 +6050,68 @@ "type": "indirect" } }, - "hydra_2": { + "hydra_4": { "inputs": { - "nix": "nix_3", + "nix": [ + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "nix" + ], "nixpkgs": [ - "cardano-nix", - "cardano-db-sync", - "haskellNix", - "hydra", - "nix", + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", "nixpkgs" ] }, "locked": { - "lastModified": 1671755331, - "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", - "owner": "NixOS", + "lastModified": 1631062883, + "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", + "owner": "kreisys", "repo": "hydra", - "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "rev": "785326948be4b1cc2ce77435c806521565e9af45", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" + "owner": "kreisys", + "ref": "hydra-server-includes", + "repo": "hydra", + "type": "github" } }, - "hydra_3": { + "hydra_5": { "inputs": { - "nix": "nix_4", + "nix": [ + "db-sync", + "cardano-world", + "bitte", + "nix" + ], "nixpkgs": [ - "cardano-nix", - "cardano-node-8.1.1", - "haskellNix", - "hydra", - "nix", + "db-sync", + "cardano-world", + "bitte", "nixpkgs" ] }, "locked": { - "lastModified": 1671755331, - "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", - "owner": "NixOS", - "repo": "hydra", - "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", - "type": "github" - }, - "original": { - "id": "hydra", - "type": "indirect" - } - }, - "hydra_4": { - "inputs": { - "nix": "nix_5", - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "haskellNix", - "hydra", - "nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1671755331, - "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", - "owner": "NixOS", + "lastModified": 1631062883, + "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", + "owner": "kreisys", "repo": "hydra", - "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", + "rev": "785326948be4b1cc2ce77435c806521565e9af45", "type": "github" }, "original": { - "id": "hydra", - "type": "indirect" - } - }, - "hydra_5": { - "inputs": { - "nix": "nix_6", - "nixpkgs": [ - "cardano-node", - "haskellNix", - "hydra", - "nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1671755331, - "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=", - "owner": "NixOS", + "owner": "kreisys", + "ref": "hydra-server-includes", "repo": "hydra", - "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8", "type": "github" - }, - "original": { - "id": "hydra", - "type": "indirect" } }, "hydra_6": { @@ -7372,7 +6119,6 @@ "nix": [ "db-sync", "cardano-world", - "bitte", "capsules", "bitte", "nix" @@ -7380,7 +6126,6 @@ "nixpkgs": [ "db-sync", "cardano-world", - "bitte", "capsules", "bitte", "nixpkgs" @@ -7403,73 +6148,60 @@ }, "hydra_7": { "inputs": { - "nix": [ - "db-sync", - "cardano-world", - "bitte", - "nix" - ], + "nix": "nix_14", "nixpkgs": [ "db-sync", "cardano-world", - "bitte", + "cardano-wallet", + "haskellNix", + "hydra", + "nix", "nixpkgs" ] }, "locked": { - "lastModified": 1631062883, - "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", - "owner": "kreisys", + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", "repo": "hydra", - "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "hydra-server-includes", - "repo": "hydra", - "type": "github" + "id": "hydra", + "type": "indirect" } }, "hydra_8": { "inputs": { - "nix": [ - "db-sync", - "cardano-world", - "capsules", - "bitte", - "nix" - ], + "nix": "nix_15", "nixpkgs": [ "db-sync", "cardano-world", - "capsules", - "bitte", + "haskell-nix", + "hydra", + "nix", "nixpkgs" ] }, "locked": { - "lastModified": 1631062883, - "narHash": "sha256-JZ6/gjHyX50fHCYpXy/FrX9C0e9k8X9In5Jb/SQYlT8=", - "owner": "kreisys", + "lastModified": 1646878427, + "narHash": "sha256-KtbrofMtN8GlM7D+n90kixr7QpSlVmdN+vK5CA/aRzc=", + "owner": "NixOS", "repo": "hydra", - "rev": "785326948be4b1cc2ce77435c806521565e9af45", + "rev": "28b682b85b7efc5cf7974065792a1f22203a5927", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "hydra-server-includes", - "repo": "hydra", - "type": "github" + "id": "hydra", + "type": "indirect" } }, "hydra_9": { "inputs": { - "nix": "nix_17", + "nix": "nix_16", "nixpkgs": [ "db-sync", - "cardano-world", - "cardano-wallet", "haskellNix", "hydra", "nix", @@ -7493,10 +6225,9 @@ "inputs": { "nixlib": [ "cardano-nix", - "cardano-node-8.1.1", - "tullia", + "cardano-node-92", "std", - "nixpkgs" + "lib" ] }, "locked": { @@ -7514,55 +6245,6 @@ } }, "incl_2": { - "inputs": { - "nixlib": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1669263024, - "narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=", - "owner": "divnix", - "repo": "incl", - "rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "incl", - "type": "github" - } - }, - "incl_3": { - "inputs": { - "nixlib": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "haumea", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1669263024, - "narHash": "sha256-E/+23NKtxAqYG/0ydYgxlgarKnxmDbg6rCMWnOBqn9Q=", - "owner": "divnix", - "repo": "incl", - "rev": "ce7bebaee048e4cd7ebdb4cee7885e00c4e2abca", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "incl", - "type": "github" - } - }, - "incl_4": { "inputs": { "nixlib": [ "cardano-node", @@ -7638,24 +6320,6 @@ "type": "github" } }, - "inclusive_12": { - "inputs": { - "stdlib": "stdlib_12" - }, - "locked": { - "lastModified": 1628098927, - "narHash": "sha256-Ft4sdf7VPL8MQtu18AAPiN2s5pUsbv+3RxqzJSa/yzg=", - "owner": "input-output-hk", - "repo": "nix-inclusive", - "rev": "13123eb7a8c3359738a4756b8d645729e8655b27", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "nix-inclusive", - "type": "github" - } - }, "inclusive_2": { "inputs": { "stdlib": "stdlib_2" @@ -7800,31 +6464,12 @@ "type": "github" } }, - "inputs-check": { - "inputs": { - "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_7" - }, - "locked": { - "lastModified": 1692633913, - "narHash": "sha256-f80/49lt2hIapc9AEaTBC93jnRZe5zxlm21JXXewkko=", - "owner": "input-output-hk", - "repo": "inputs-check", - "rev": "1e9f65e56140f4e357c9abaf5311e3ea979d33e9", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "inputs-check", - "type": "github" - } - }, "iogo": { "inputs": { - "devshell": "devshell_8", - "inclusive": "inclusive_4", - "nixpkgs": "nixpkgs_51", - "utils": "utils_14" + "devshell": "devshell_6", + "inclusive": "inclusive_3", + "nixpkgs": "nixpkgs_33", + "utils": "utils_12" }, "locked": { "lastModified": 1652212694, @@ -7842,10 +6487,10 @@ }, "iogo_2": { "inputs": { - "devshell": "devshell_18", - "inclusive": "inclusive_12", - "nixpkgs": "nixpkgs_80", - "utils": "utils_28" + "devshell": "devshell_16", + "inclusive": "inclusive_11", + "nixpkgs": "nixpkgs_62", + "utils": "utils_26" }, "locked": { "lastModified": 1658302707, @@ -7863,39 +6508,21 @@ }, "iohk-nix": { "inputs": { - "blst": "blst", - "nixpkgs": "nixpkgs_8", - "secp256k1": "secp256k1", - "sodium": "sodium" - }, - "locked": { - "lastModified": 1691469905, - "narHash": "sha256-TV0p1dFGYAMl1dLJEfe/tNFjxvV2H7VgHU1I43q+b84=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "2f3760f135616ebc477d3ed74eba9b63c22f83a0", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "2f3760f135616ebc477d3ed74eba9b63c22f83a0", - "type": "github" - } - }, - "iohk-nix-ng": { - "inputs": { - "blst": "blst_2", - "nixpkgs": "nixpkgs_9", - "secp256k1": "secp256k1_2", - "sodium": "sodium_2" + "blst": "blst_4", + "nixpkgs": [ + "clb", + "haskell-nix", + "nixpkgs" + ], + "secp256k1": "secp256k1_4", + "sodium": "sodium_4" }, "locked": { - "lastModified": 1696471795, - "narHash": "sha256-aNNvjUtCGXaXSp5M/HSj1SOeLjqLyTRWYbIHqAEeUp0=", + "lastModified": 1721825987, + "narHash": "sha256-PPcma4tjozwXJAWf+YtHUQUulmxwulVlwSQzKItx/n8=", "owner": "input-output-hk", "repo": "iohk-nix", - "rev": "91f16fa8acb58b312f94977715c630d8bf77e33e", + "rev": "eb61f2c14e1f610ec59117ad40f8690cddbf80cb", "type": "github" }, "original": { @@ -7928,12 +6555,12 @@ }, "iohk-nix_3": { "inputs": { - "blst": "blst_7", + "blst": "blst_5", "nixpkgs": [ "nixpkgs" ], - "secp256k1": "secp256k1_7", - "sodium": "sodium_7" + "secp256k1": "secp256k1_5", + "sodium": "sodium_5" }, "locked": { "lastModified": 1721825987, @@ -7951,14 +6578,14 @@ }, "iohkNix": { "inputs": { - "blst": "blst_3", + "blst": "blst", "nixpkgs": [ "cardano-nix", "cardano-db-sync", "nixpkgs" ], - "secp256k1": "secp256k1_3", - "sodium": "sodium_3" + "secp256k1": "secp256k1", + "sodium": "sodium" }, "locked": { "lastModified": 1698999258, @@ -7976,21 +6603,21 @@ }, "iohkNix_2": { "inputs": { - "blst": "blst_4", + "blst": "blst_2", "nixpkgs": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", "nixpkgs" ], - "secp256k1": "secp256k1_4", - "sodium": "sodium_4" + "secp256k1": "secp256k1_2", + "sodium": "sodium_2" }, "locked": { - "lastModified": 1684223806, - "narHash": "sha256-IyLoP+zhuyygLtr83XXsrvKyqqLQ8FHXTiySFf4FJOI=", + "lastModified": 1721825987, + "narHash": "sha256-PPcma4tjozwXJAWf+YtHUQUulmxwulVlwSQzKItx/n8=", "owner": "input-output-hk", "repo": "iohk-nix", - "rev": "86421fdd89b3af43fa716ccd07638f96c6ecd1e4", + "rev": "eb61f2c14e1f610ec59117ad40f8690cddbf80cb", "type": "github" }, "original": { @@ -8001,38 +6628,13 @@ }, "iohkNix_3": { "inputs": { - "blst": "blst_5", - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "nixpkgs" - ], - "secp256k1": "secp256k1_5", - "sodium": "sodium_5" - }, - "locked": { - "lastModified": 1698746924, - "narHash": "sha256-8og+vqQPEoB2KLUtN5esGMDymT+2bT/rCHZt1NAe7y0=", - "owner": "input-output-hk", - "repo": "iohk-nix", - "rev": "af551ca93d969d9715fa9bf86691d9a0a19e89d9", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "iohk-nix", - "type": "github" - } - }, - "iohkNix_4": { - "inputs": { - "blst": "blst_6", + "blst": "blst_3", "nixpkgs": [ "cardano-node", "nixpkgs" ], - "secp256k1": "secp256k1_6", - "sodium": "sodium_6" + "secp256k1": "secp256k1_3", + "sodium": "sodium_3" }, "locked": { "lastModified": 1721825987, @@ -8048,7 +6650,7 @@ "type": "github" } }, - "iohkNix_5": { + "iohkNix_4": { "inputs": { "nixpkgs": [ "db-sync", @@ -8071,7 +6673,7 @@ "type": "github" } }, - "iohkNix_6": { + "iohkNix_5": { "inputs": { "nixpkgs": [ "db-sync", @@ -8095,72 +6697,38 @@ "iserv-proxy": { "flake": false, "locked": { - "lastModified": 1688517130, - "narHash": "sha256-hUqfxSlo+ffqVdkSZ1EDoB7/ILCL25eYkcCXW9/P3Wc=", - "ref": "hkm/remote-iserv", - "rev": "9151db2a9a61d7f5fe52ff8836f18bbd0fd8933c", - "revCount": 13, - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + "lastModified": 1717479972, + "narHash": "sha256-7vE3RQycHI1YT9LHJ1/fUaeln2vIpYm6Mmn8FTpYeVo=", + "owner": "stable-haskell", + "repo": "iserv-proxy", + "rev": "2ed34002247213fc435d0062350b91bab920626e", + "type": "github" }, "original": { - "ref": "hkm/remote-iserv", - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + "owner": "stable-haskell", + "ref": "iserv-syms", + "repo": "iserv-proxy", + "type": "github" } }, "iserv-proxy_2": { "flake": false, "locked": { - "lastModified": 1691634696, - "narHash": "sha256-MZH2NznKC/gbgBu8NgIibtSUZeJ00HTLJ0PlWKCBHb0=", - "ref": "hkm/remote-iserv", - "rev": "43a979272d9addc29fbffc2e8542c5d96e993d73", - "revCount": 14, - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + "lastModified": 1717479972, + "narHash": "sha256-7vE3RQycHI1YT9LHJ1/fUaeln2vIpYm6Mmn8FTpYeVo=", + "owner": "stable-haskell", + "repo": "iserv-proxy", + "rev": "2ed34002247213fc435d0062350b91bab920626e", + "type": "github" }, "original": { - "ref": "hkm/remote-iserv", - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" + "owner": "stable-haskell", + "ref": "iserv-syms", + "repo": "iserv-proxy", + "type": "github" } }, "iserv-proxy_3": { - "flake": false, - "locked": { - "lastModified": 1670983692, - "narHash": "sha256-avLo34JnI9HNyOuauK5R69usJm+GfW3MlyGlYxZhTgY=", - "ref": "hkm/remote-iserv", - "rev": "50d0abb3317ac439a4e7495b185a64af9b7b9300", - "revCount": 10, - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" - }, - "original": { - "ref": "hkm/remote-iserv", - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" - } - }, - "iserv-proxy_4": { - "flake": false, - "locked": { - "lastModified": 1691634696, - "narHash": "sha256-MZH2NznKC/gbgBu8NgIibtSUZeJ00HTLJ0PlWKCBHb0=", - "ref": "hkm/remote-iserv", - "rev": "43a979272d9addc29fbffc2e8542c5d96e993d73", - "revCount": 14, - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" - }, - "original": { - "ref": "hkm/remote-iserv", - "type": "git", - "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git" - } - }, - "iserv-proxy_5": { "flake": false, "locked": { "lastModified": 1717479972, @@ -8177,7 +6745,7 @@ "type": "github" } }, - "iserv-proxy_6": { + "iserv-proxy_4": { "flake": false, "locked": { "lastModified": 1717479972, @@ -8209,55 +6777,22 @@ "type": "github" } }, - "lowdown-src": { - "flake": false, - "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", - "type": "github" - }, - "original": { - "owner": "kristapsdz", - "repo": "lowdown", - "type": "github" - } - }, - "lowdown-src_10": { - "flake": false, - "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", - "type": "github" - }, - "original": { - "owner": "kristapsdz", - "repo": "lowdown", - "type": "github" - } - }, - "lowdown-src_11": { - "flake": false, + "lib_2": { "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", - "owner": "kristapsdz", - "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "lastModified": 1694306727, + "narHash": "sha256-26fkTOJOI65NOTNKFvtcJF9mzzf/kK9swHzfYt1Dl6Q=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "c30b6a84c0b84ec7aecbe74466033facc9ed103f", "type": "github" }, "original": { - "owner": "kristapsdz", - "repo": "lowdown", + "owner": "nix-community", + "repo": "nixpkgs.lib", "type": "github" } }, - "lowdown-src_12": { + "lowdown-src": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8273,7 +6808,7 @@ "type": "github" } }, - "lowdown-src_13": { + "lowdown-src_10": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8289,7 +6824,7 @@ "type": "github" } }, - "lowdown-src_14": { + "lowdown-src_11": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8305,7 +6840,7 @@ "type": "github" } }, - "lowdown-src_15": { + "lowdown-src_12": { "flake": false, "locked": { "lastModified": 1598695561, @@ -8321,7 +6856,7 @@ "type": "github" } }, - "lowdown-src_16": { + "lowdown-src_13": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8337,7 +6872,7 @@ "type": "github" } }, - "lowdown-src_17": { + "lowdown-src_14": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8353,7 +6888,7 @@ "type": "github" } }, - "lowdown-src_18": { + "lowdown-src_15": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8369,7 +6904,7 @@ "type": "github" } }, - "lowdown-src_19": { + "lowdown-src_16": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8385,7 +6920,7 @@ "type": "github" } }, - "lowdown-src_2": { + "lowdown-src_17": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8401,7 +6936,7 @@ "type": "github" } }, - "lowdown-src_20": { + "lowdown-src_2": { "flake": false, "locked": { "lastModified": 1633514407, @@ -8452,11 +6987,11 @@ "lowdown-src_5": { "flake": false, "locked": { - "lastModified": 1633514407, - "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", + "lastModified": 1598695561, + "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", "owner": "kristapsdz", "repo": "lowdown", - "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", + "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", "type": "github" }, "original": { @@ -8500,11 +7035,11 @@ "lowdown-src_8": { "flake": false, "locked": { - "lastModified": 1598695561, - "narHash": "sha256-gyH/5j+h/nWw0W8AcR2WKvNBUsiQ7QuxqSJNXAwV+8E=", + "lastModified": 1633514407, + "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=", "owner": "kristapsdz", "repo": "lowdown", - "rev": "1705b4a26fbf065d9574dce47a94e8c7c79e052f", + "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8", "type": "github" }, "original": { @@ -8548,11 +7083,11 @@ "mdbook-kroki-preprocessor_2": { "flake": false, "locked": { - "lastModified": 1655670640, - "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", + "lastModified": 1661755005, + "narHash": "sha256-1TJuUzfyMycWlOQH67LR63/ll2GDZz25I3JfScy/Jnw=", "owner": "JoelCourtney", "repo": "mdbook-kroki-preprocessor", - "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", + "rev": "93adb5716d035829efed27f65f2f0833a7d3e76f", "type": "github" }, "original": { @@ -8577,50 +7112,28 @@ "type": "github" } }, - "n2c": { - "inputs": { - "flake-utils": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia", - "std", - "flake-utils" - ], - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia", - "std", - "nixpkgs" - ] - }, + "mdbook-kroki-preprocessor_4": { + "flake": false, "locked": { - "lastModified": 1665039323, - "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", + "lastModified": 1655670640, + "narHash": "sha256-JjqdxftHBjABTkOpFl3cWUJtc/KGwkQ3NRWGLjH2oUs=", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", + "rev": "bb6e607437ecc3f22fd9036acee6b797a5b45dbc", "type": "github" }, "original": { - "owner": "nlewo", - "repo": "nix2container", + "owner": "JoelCourtney", + "repo": "mdbook-kroki-preprocessor", "type": "github" } }, - "n2c_2": { + "n2c": { "inputs": { - "flake-utils": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "flake-utils" - ], + "flake-utils": "flake-utils_4", "nixpkgs": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "cardano-automation", "tullia", "std", @@ -8628,40 +7141,11 @@ ] }, "locked": { - "lastModified": 1677330646, - "narHash": "sha256-hUYCwJneMjnxTvj30Fjow6UMJUITqHlpUGpXMPXUJsU=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "ebca8f58d450cae1a19c07701a5a8ae40afc9efc", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "n2c_3": { - "inputs": { - "flake-utils": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "flake-utils" - ], - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1685771919, - "narHash": "sha256-3lVKWrhNXjHJB6QkZ2SJaOs4X/mmYXtY6ovPVpDMOHc=", + "lastModified": 1665039323, + "narHash": "sha256-SAh3ZjFGsaCI8FRzXQyp56qcGdAqgKEfJWPCQ0Sr7tQ=", "owner": "nlewo", "repo": "nix2container", - "rev": "95e2220911874064b5d809f8d35f7835184c4ddf", + "rev": "b008fe329ffb59b67bf9e7b08ede6ee792f2741a", "type": "github" }, "original": { @@ -8670,9 +7154,9 @@ "type": "github" } }, - "n2c_4": { + "n2c_2": { "inputs": { - "flake-utils": "flake-utils_19", + "flake-utils": "flake-utils_9", "nixpkgs": [ "cardano-node", "cardano-automation", @@ -8695,10 +7179,10 @@ "type": "github" } }, - "n2c_5": { + "n2c_3": { "inputs": { - "flake-utils": "flake-utils_26", - "nixpkgs": "nixpkgs_56" + "flake-utils": "flake-utils_17", + "nixpkgs": "nixpkgs_38" }, "locked": { "lastModified": 1650568002, @@ -8714,10 +7198,10 @@ "type": "github" } }, - "n2c_6": { + "n2c_4": { "inputs": { - "flake-utils": "flake-utils_43", - "nixpkgs": "nixpkgs_91" + "flake-utils": "flake-utils_34", + "nixpkgs": "nixpkgs_73" }, "locked": { "lastModified": 1655533513, @@ -8736,7 +7220,7 @@ "nix": { "inputs": { "lowdown-src": "lowdown-src", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "nixpkgs-regression": "nixpkgs-regression" }, "locked": { @@ -8756,7 +7240,7 @@ }, "nix-cache-proxy": { "inputs": { - "devshell": "devshell_15", + "devshell": "devshell_13", "inclusive": [ "db-sync", "cardano-world", @@ -8771,7 +7255,7 @@ "cicero", "nixpkgs" ], - "utils": "utils_21" + "utils": "utils_19" }, "locked": { "lastModified": 1644317729, @@ -8789,7 +7273,7 @@ }, "nix-inclusive": { "inputs": { - "stdlib": "stdlib_13" + "stdlib": "stdlib_12" }, "locked": { "lastModified": 1628098927, @@ -8807,10 +7291,11 @@ }, "nix-nomad": { "inputs": { - "flake-compat": "flake-compat_8", + "flake-compat": "flake-compat_2", "flake-utils": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", + "cardano-automation", "tullia", "nix2container", "flake-utils" @@ -8818,13 +7303,15 @@ "gomod2nix": "gomod2nix", "nixpkgs": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", + "cardano-automation", "tullia", "nixpkgs" ], "nixpkgs-lib": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", + "cardano-automation", "tullia", "nixpkgs" ] @@ -8845,10 +7332,9 @@ }, "nix-nomad_2": { "inputs": { - "flake-compat": "flake-compat_9", + "flake-compat": "flake-compat_6", "flake-utils": [ - "cardano-nix", - "cardano-node-8.7.3", + "cardano-node", "cardano-automation", "tullia", "nix2container", @@ -8856,53 +7342,13 @@ ], "gomod2nix": "gomod2nix_2", "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", + "cardano-node", "cardano-automation", "tullia", "nixpkgs" ], "nixpkgs-lib": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1658277770, - "narHash": "sha256-T/PgG3wUn8Z2rnzfxf2VqlR1CBjInPE0l1yVzXxPnt0=", - "owner": "tristanpemble", - "repo": "nix-nomad", - "rev": "054adcbdd0a836ae1c20951b67ed549131fd2d70", - "type": "github" - }, - "original": { - "owner": "tristanpemble", - "repo": "nix-nomad", - "type": "github" - } - }, - "nix-nomad_3": { - "inputs": { - "flake-compat": "flake-compat_14", - "flake-utils": [ - "cardano-node", - "cardano-automation", - "tullia", - "nix2container", - "flake-utils" - ], - "gomod2nix": "gomod2nix_3", - "nixpkgs": [ - "cardano-node", - "cardano-automation", - "tullia", - "nixpkgs" - ], - "nixpkgs-lib": [ - "cardano-node", + "cardano-node", "cardano-automation", "tullia", "nixpkgs" @@ -8988,15 +7434,15 @@ }, "nix2container": { "inputs": { - "flake-utils": "flake-utils_6", - "nixpkgs": "nixpkgs_17" + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1671269339, - "narHash": "sha256-KR2SXh4c2Y+bgbCfXjTGJ74O9/u4CAPFA0KYZHhKf5Q=", + "lastModified": 1658567952, + "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", "owner": "nlewo", "repo": "nix2container", - "rev": "6800fff45afecc7e47c334d14cf2b2f4f25601a0", + "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", "type": "github" }, "original": { @@ -9008,7 +7454,7 @@ "nix2container_2": { "inputs": { "flake-utils": "flake-utils_7", - "nixpkgs": "nixpkgs_19" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1658567952, @@ -9027,64 +7473,7 @@ "nix2container_3": { "inputs": { "flake-utils": "flake-utils_10", - "nixpkgs": "nixpkgs_23" - }, - "locked": { - "lastModified": 1658567952, - "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nix2container_4": { - "inputs": { - "flake-utils": "flake-utils_12", - "nixpkgs": "nixpkgs_27" - }, - "locked": { - "lastModified": 1671269339, - "narHash": "sha256-KR2SXh4c2Y+bgbCfXjTGJ74O9/u4CAPFA0KYZHhKf5Q=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "6800fff45afecc7e47c334d14cf2b2f4f25601a0", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nix2container_5": { - "inputs": { - "flake-utils": "flake-utils_17", - "nixpkgs": "nixpkgs_32" - }, - "locked": { - "lastModified": 1658567952, - "narHash": "sha256-XZ4ETYAMU7XcpEeAFP3NOl9yDXNuZAen/aIJ84G+VgA=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "60bb43d405991c1378baf15a40b5811a53e32ffa", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nix2container_6": { - "inputs": { - "flake-utils": "flake-utils_20", - "nixpkgs": "nixpkgs_36" + "nixpkgs": "nixpkgs_14" }, "locked": { "lastModified": 1712990762, @@ -9100,10 +7489,10 @@ "type": "github" } }, - "nix2container_7": { + "nix2container_4": { "inputs": { - "flake-utils": "flake-utils_45", - "nixpkgs": "nixpkgs_94" + "flake-utils": "flake-utils_36", + "nixpkgs": "nixpkgs_76" }, "locked": { "lastModified": 1653427219, @@ -9123,71 +7512,9 @@ "nix_10": { "inputs": { "lowdown-src": "lowdown-src_10", - "nixpkgs": "nixpkgs_57", + "nixpkgs": "nixpkgs_49", "nixpkgs-regression": "nixpkgs-regression_9" }, - "locked": { - "lastModified": 1652510778, - "narHash": "sha256-zldZ4SiwkISFXxrbY/UdwooIZ3Z/I6qKxtpc3zD0T/o=", - "owner": "nixos", - "repo": "nix", - "rev": "65cd26eebbbf80eaf0d74092f09b737606cb4b5a", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "2.8.1", - "repo": "nix", - "type": "github" - } - }, - "nix_11": { - "inputs": { - "lowdown-src": "lowdown-src_11", - "nixpkgs": "nixpkgs_59", - "nixpkgs-regression": "nixpkgs-regression_10" - }, - "locked": { - "lastModified": 1645189081, - "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", - "owner": "nixos", - "repo": "nix", - "rev": "9bc03adbba5334663901c1136203bc07e4776be9", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nix", - "type": "github" - } - }, - "nix_12": { - "inputs": { - "lowdown-src": "lowdown-src_12", - "nixpkgs": "nixpkgs_66", - "nixpkgs-regression": "nixpkgs-regression_11" - }, - "locked": { - "lastModified": 1644413094, - "narHash": "sha256-KLGaeSqvhuUFz6DxrB9r3w+lfp9bXIiCT9K1cqg7Ze8=", - "owner": "nixos", - "repo": "nix", - "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nix", - "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", - "type": "github" - } - }, - "nix_13": { - "inputs": { - "lowdown-src": "lowdown-src_13", - "nixpkgs": "nixpkgs_67", - "nixpkgs-regression": "nixpkgs-regression_12" - }, "locked": { "lastModified": 1645437800, "narHash": "sha256-MAMIKi3sIQ0b3jzYyOb5VY29GRgv7JXl1VXoUM9xUZw=", @@ -9203,11 +7530,11 @@ "type": "github" } }, - "nix_14": { + "nix_11": { "inputs": { - "lowdown-src": "lowdown-src_14", - "nixpkgs": "nixpkgs_72", - "nixpkgs-regression": "nixpkgs-regression_13" + "lowdown-src": "lowdown-src_11", + "nixpkgs": "nixpkgs_54", + "nixpkgs-regression": "nixpkgs-regression_10" }, "locked": { "lastModified": 1646164353, @@ -9224,10 +7551,10 @@ "type": "github" } }, - "nix_15": { + "nix_12": { "inputs": { - "lowdown-src": "lowdown-src_15", - "nixpkgs": "nixpkgs_74" + "lowdown-src": "lowdown-src_12", + "nixpkgs": "nixpkgs_56" }, "locked": { "lastModified": 1604400356, @@ -9243,11 +7570,11 @@ "type": "github" } }, - "nix_16": { + "nix_13": { "inputs": { - "lowdown-src": "lowdown-src_16", - "nixpkgs": "nixpkgs_76", - "nixpkgs-regression": "nixpkgs-regression_14" + "lowdown-src": "lowdown-src_13", + "nixpkgs": "nixpkgs_58", + "nixpkgs-regression": "nixpkgs-regression_11" }, "locked": { "lastModified": 1645189081, @@ -9263,11 +7590,11 @@ "type": "github" } }, - "nix_17": { + "nix_14": { "inputs": { - "lowdown-src": "lowdown-src_17", - "nixpkgs": "nixpkgs_88", - "nixpkgs-regression": "nixpkgs-regression_15" + "lowdown-src": "lowdown-src_14", + "nixpkgs": "nixpkgs_70", + "nixpkgs-regression": "nixpkgs-regression_12" }, "locked": { "lastModified": 1643066034, @@ -9284,11 +7611,11 @@ "type": "github" } }, - "nix_18": { + "nix_15": { "inputs": { - "lowdown-src": "lowdown-src_18", - "nixpkgs": "nixpkgs_90", - "nixpkgs-regression": "nixpkgs-regression_16" + "lowdown-src": "lowdown-src_15", + "nixpkgs": "nixpkgs_72", + "nixpkgs-regression": "nixpkgs-regression_13" }, "locked": { "lastModified": 1643066034, @@ -9305,11 +7632,11 @@ "type": "github" } }, - "nix_19": { + "nix_16": { "inputs": { - "lowdown-src": "lowdown-src_19", - "nixpkgs": "nixpkgs_97", - "nixpkgs-regression": "nixpkgs-regression_17" + "lowdown-src": "lowdown-src_16", + "nixpkgs": "nixpkgs_79", + "nixpkgs-regression": "nixpkgs-regression_14" }, "locked": { "lastModified": 1643066034, @@ -9326,33 +7653,32 @@ "type": "github" } }, - "nix_2": { + "nix_17": { "inputs": { - "flake-compat": "flake-compat_3", - "lowdown-src": "lowdown-src_2", - "nixpkgs": "nixpkgs_10", - "nixpkgs-regression": "nixpkgs-regression_2" + "lowdown-src": "lowdown-src_17", + "nixpkgs": "nixpkgs_80", + "nixpkgs-regression": "nixpkgs-regression_15" }, "locked": { - "lastModified": 1693573010, - "narHash": "sha256-HBm8mR2skhPtbJ7p+ByrOZjs7SfsfZPwy75MwI1EUmk=", - "owner": "nixos", + "lastModified": 1661606874, + "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "owner": "NixOS", "repo": "nix", - "rev": "5568ca5ff130a8a0bc3db5878432eb527c74dd60", + "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", "type": "github" }, "original": { - "owner": "nixos", - "ref": "2.17-maintenance", + "owner": "NixOS", + "ref": "2.11.0", "repo": "nix", "type": "github" } }, - "nix_20": { + "nix_2": { "inputs": { - "lowdown-src": "lowdown-src_20", - "nixpkgs": "nixpkgs_98", - "nixpkgs-regression": "nixpkgs-regression_18" + "lowdown-src": "lowdown-src_2", + "nixpkgs": "nixpkgs_13", + "nixpkgs-regression": "nixpkgs-regression_2" }, "locked": { "lastModified": 1661606874, @@ -9372,7 +7698,7 @@ "nix_3": { "inputs": { "lowdown-src": "lowdown-src_3", - "nixpkgs": "nixpkgs_14", + "nixpkgs": "nixpkgs_16", "nixpkgs-regression": "nixpkgs-regression_3" }, "locked": { @@ -9393,20 +7719,20 @@ "nix_4": { "inputs": { "lowdown-src": "lowdown-src_4", - "nixpkgs": "nixpkgs_16", + "nixpkgs": "nixpkgs_25", "nixpkgs-regression": "nixpkgs-regression_4" }, "locked": { - "lastModified": 1661606874, - "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", - "owner": "NixOS", + "lastModified": 1646164353, + "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", + "owner": "kreisys", "repo": "nix", - "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "rev": "45677cae8d474270ecd797eb40eb1f8836981604", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "2.11.0", + "owner": "kreisys", + "ref": "goodnix-maybe-dont-functor", "repo": "nix", "type": "github" } @@ -9414,20 +7740,18 @@ "nix_5": { "inputs": { "lowdown-src": "lowdown-src_5", - "nixpkgs": "nixpkgs_26", - "nixpkgs-regression": "nixpkgs-regression_5" + "nixpkgs": "nixpkgs_27" }, "locked": { - "lastModified": 1661606874, - "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", + "lastModified": 1604400356, + "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", "owner": "NixOS", "repo": "nix", - "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "rev": "cf82e14712b3be881b7c880468cd5486e8934638", "type": "github" }, "original": { "owner": "NixOS", - "ref": "2.11.0", "repo": "nix", "type": "github" } @@ -9435,20 +7759,19 @@ "nix_6": { "inputs": { "lowdown-src": "lowdown-src_6", - "nixpkgs": "nixpkgs_35", - "nixpkgs-regression": "nixpkgs-regression_6" + "nixpkgs": "nixpkgs_29", + "nixpkgs-regression": "nixpkgs-regression_5" }, "locked": { - "lastModified": 1661606874, - "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=", - "owner": "NixOS", + "lastModified": 1645189081, + "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "owner": "nixos", "repo": "nix", - "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f", + "rev": "9bc03adbba5334663901c1136203bc07e4776be9", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "2.11.0", + "owner": "nixos", "repo": "nix", "type": "github" } @@ -9456,20 +7779,20 @@ "nix_7": { "inputs": { "lowdown-src": "lowdown-src_7", - "nixpkgs": "nixpkgs_43", - "nixpkgs-regression": "nixpkgs-regression_7" + "nixpkgs": "nixpkgs_39", + "nixpkgs-regression": "nixpkgs-regression_6" }, "locked": { - "lastModified": 1646164353, - "narHash": "sha256-Nj3ARvplf0Xa+h4F5Cq1r9cc81C2UIpbAKDgJLsDmUc=", - "owner": "kreisys", + "lastModified": 1652510778, + "narHash": "sha256-zldZ4SiwkISFXxrbY/UdwooIZ3Z/I6qKxtpc3zD0T/o=", + "owner": "nixos", "repo": "nix", - "rev": "45677cae8d474270ecd797eb40eb1f8836981604", + "rev": "65cd26eebbbf80eaf0d74092f09b737606cb4b5a", "type": "github" }, "original": { - "owner": "kreisys", - "ref": "goodnix-maybe-dont-functor", + "owner": "nixos", + "ref": "2.8.1", "repo": "nix", "type": "github" } @@ -9477,18 +7800,19 @@ "nix_8": { "inputs": { "lowdown-src": "lowdown-src_8", - "nixpkgs": "nixpkgs_45" + "nixpkgs": "nixpkgs_41", + "nixpkgs-regression": "nixpkgs-regression_7" }, "locked": { - "lastModified": 1604400356, - "narHash": "sha256-PX1cSYv0Y6I2tidcuEwJTo8X5vAvf9vjdfHO51LD/J0=", - "owner": "NixOS", + "lastModified": 1645189081, + "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "owner": "nixos", "repo": "nix", - "rev": "cf82e14712b3be881b7c880468cd5486e8934638", + "rev": "9bc03adbba5334663901c1136203bc07e4776be9", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "repo": "nix", "type": "github" } @@ -9496,20 +7820,21 @@ "nix_9": { "inputs": { "lowdown-src": "lowdown-src_9", - "nixpkgs": "nixpkgs_47", + "nixpkgs": "nixpkgs_48", "nixpkgs-regression": "nixpkgs-regression_8" }, "locked": { - "lastModified": 1645189081, - "narHash": "sha256-yZA+07JTG9Z610DceiYyzm+C08yHhcIgfl/Cp7lY3ho=", + "lastModified": 1644413094, + "narHash": "sha256-KLGaeSqvhuUFz6DxrB9r3w+lfp9bXIiCT9K1cqg7Ze8=", "owner": "nixos", "repo": "nix", - "rev": "9bc03adbba5334663901c1136203bc07e4776be9", + "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", "type": "github" }, "original": { "owner": "nixos", "repo": "nix", + "rev": "52f52319ad21bdbd7a33bb85eccc83756648f110", "type": "github" } }, @@ -9517,21 +7842,24 @@ "inputs": { "flake-utils": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", + "cardano-automation", "tullia", "std", "flake-utils" ], "nixago-exts": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", + "cardano-automation", "tullia", "std", "blank" ], "nixpkgs": [ "cardano-nix", - "cardano-node-8.1.1", + "cardano-node-92", + "cardano-automation", "tullia", "std", "nixpkgs" @@ -9582,82 +7910,6 @@ } }, "nixago_2": { - "inputs": { - "flake-utils": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "flake-utils" - ], - "nixago-exts": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "blank" - ], - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1676075813, - "narHash": "sha256-X/aIT8Qc8UCqnxJvaZykx3CJ0ZnDFvO+dqp/7fglZWo=", - "owner": "nix-community", - "repo": "nixago", - "rev": "9cab4dde31ec2f2c05d702ea8648ce580664e906", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" - } - }, - "nixago_3": { - "inputs": { - "flake-utils": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "flake-utils" - ], - "nixago-exts": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "blank" - ], - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1683210100, - "narHash": "sha256-bhGDOlkWtlhVECpoOog4fWiFJmLCpVEg09a40aTjCbw=", - "owner": "nix-community", - "repo": "nixago", - "rev": "1da60ad9412135f9ed7a004669fdcf3d378ec630", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixago", - "type": "github" - } - }, - "nixago_4": { "inputs": { "flake-utils": [ "cardano-node", @@ -9695,7 +7947,7 @@ "type": "github" } }, - "nixago_5": { + "nixago_3": { "inputs": { "flake-utils": [ "db-sync", @@ -9727,7 +7979,7 @@ "type": "github" } }, - "nixago_6": { + "nixago_4": { "inputs": { "flake-utils": [ "db-sync", @@ -9834,22 +8086,6 @@ "type": "github" } }, - "nixpkgs-2003_10": { - "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-2003_2": { "locked": { "lastModified": 1620055814, @@ -9962,22 +8198,6 @@ "type": "github" } }, - "nixpkgs-2003_9": { - "locked": { - "lastModified": 1620055814, - "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-20.03-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-2105": { "locked": { "lastModified": 1659914493, @@ -9994,22 +8214,6 @@ "type": "github" } }, - "nixpkgs-2105_10": { - "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-2105_2": { "locked": { "lastModified": 1659914493, @@ -10043,38 +8247,6 @@ } }, "nixpkgs-2105_4": { - "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2105_5": { - "locked": { - "lastModified": 1659914493, - "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2105_6": { "locked": { "lastModified": 1642244250, "narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=", @@ -10090,7 +8262,7 @@ "type": "github" } }, - "nixpkgs-2105_7": { + "nixpkgs-2105_5": { "locked": { "lastModified": 1645296114, "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", @@ -10106,7 +8278,7 @@ "type": "github" } }, - "nixpkgs-2105_8": { + "nixpkgs-2105_6": { "locked": { "lastModified": 1655034179, "narHash": "sha256-rf1/7AbzuYDw6+8Xvvf3PtEOygymLBrFsFxvext5ZjI=", @@ -10122,7 +8294,7 @@ "type": "github" } }, - "nixpkgs-2105_9": { + "nixpkgs-2105_7": { "locked": { "lastModified": 1645296114, "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", @@ -10138,23 +8310,23 @@ "type": "github" } }, - "nixpkgs-2111": { + "nixpkgs-2105_8": { "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "lastModified": 1659914493, + "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", + "ref": "nixpkgs-21.05-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2111_10": { + "nixpkgs-2111": { "locked": { "lastModified": 1659446231, "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", @@ -10203,38 +8375,6 @@ } }, "nixpkgs-2111_4": { - "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2111_5": { - "locked": { - "lastModified": 1659446231, - "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-21.11-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2111_6": { "locked": { "lastModified": 1644510859, "narHash": "sha256-xjpVvL5ecbyi0vxtVl/Fh9bwGlMbw3S06zE5nUzFB8A=", @@ -10250,7 +8390,7 @@ "type": "github" } }, - "nixpkgs-2111_7": { + "nixpkgs-2111_5": { "locked": { "lastModified": 1648744337, "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", @@ -10266,7 +8406,7 @@ "type": "github" } }, - "nixpkgs-2111_8": { + "nixpkgs-2111_6": { "locked": { "lastModified": 1656782578, "narHash": "sha256-1eMCBEqJplPotTo/SZ/t5HU6Sf2I8qKlZi9MX7jv9fw=", @@ -10282,7 +8422,7 @@ "type": "github" } }, - "nixpkgs-2111_9": { + "nixpkgs-2111_7": { "locked": { "lastModified": 1648744337, "narHash": "sha256-bYe1dFJAXovjqiaPKrmAbSBEK5KUkgwVaZcTbSoJ7hg=", @@ -10298,23 +8438,23 @@ "type": "github" } }, - "nixpkgs-2205": { + "nixpkgs-2111_8": { "locked": { - "lastModified": 1685573264, - "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "380be19fbd2d9079f677978361792cb25e8a3635", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", + "ref": "nixpkgs-21.11-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2205_2": { + "nixpkgs-2205": { "locked": { "lastModified": 1685573264, "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", @@ -10330,23 +8470,7 @@ "type": "github" } }, - "nixpkgs-2205_3": { - "locked": { - "lastModified": 1682600000, - "narHash": "sha256-ha4BehR1dh8EnXSoE1m/wyyYVvHI9txjW4w5/oxsW5Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "50fc86b75d2744e1ab3837ef74b53f103a9b55a0", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-22.05-darwin", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-2205_4": { + "nixpkgs-2205_2": { "locked": { "lastModified": 1685573264, "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", @@ -10362,7 +8486,7 @@ "type": "github" } }, - "nixpkgs-2205_5": { + "nixpkgs-2205_3": { "locked": { "lastModified": 1685573264, "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", @@ -10378,7 +8502,7 @@ "type": "github" } }, - "nixpkgs-2205_6": { + "nixpkgs-2205_4": { "locked": { "lastModified": 1657876628, "narHash": "sha256-URmf0O2cQ/3heg2DJOeLyU/JmfVMqG4X5t9crQXMaeY=", @@ -10394,7 +8518,7 @@ "type": "github" } }, - "nixpkgs-2205_7": { + "nixpkgs-2205_5": { "locked": { "lastModified": 1685573264, "narHash": "sha256-Zffu01pONhs/pqH07cjlF10NnMDLok8ix5Uk4rhOnZQ=", @@ -10444,11 +8568,11 @@ }, "nixpkgs-2211_3": { "locked": { - "lastModified": 1682682915, - "narHash": "sha256-haR0u/j/nUvlMloYlaOYq1FMXTvkNHw+wGxc+0qXisM=", + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "09f1b33fcc0f59263137e23e935c1bb03ec920e4", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", "type": "github" }, "original": { @@ -10474,45 +8598,45 @@ "type": "github" } }, - "nixpkgs-2211_5": { + "nixpkgs-2305": { "locked": { - "lastModified": 1688392541, - "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", - "owner": "NixOS", + "lastModified": 1701362232, + "narHash": "sha256-GVdzxL0lhEadqs3hfRLuj+L1OJFGiL/L7gCcelgBlsw=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "rev": "d2332963662edffacfddfad59ff4f709dde80ffe", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.11-darwin", + "ref": "nixpkgs-23.05-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2211_6": { + "nixpkgs-2305_2": { "locked": { - "lastModified": 1688392541, - "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "lastModified": 1701362232, + "narHash": "sha256-GVdzxL0lhEadqs3hfRLuj+L1OJFGiL/L7gCcelgBlsw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "rev": "d2332963662edffacfddfad59ff4f709dde80ffe", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-22.11-darwin", + "ref": "nixpkgs-23.05-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2305": { + "nixpkgs-2305_3": { "locked": { - "lastModified": 1690680713, - "narHash": "sha256-NXCWA8N+GfSQyoN7ZNiOgq/nDJKOp5/BHEpiZP8sUZw=", + "lastModified": 1705033721, + "narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b81af66deb21f73a70c67e5ea189568af53b1e8c", + "rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea", "type": "github" }, "original": { @@ -10522,13 +8646,13 @@ "type": "github" } }, - "nixpkgs-2305_2": { + "nixpkgs-2305_4": { "locked": { - "lastModified": 1695416179, - "narHash": "sha256-610o1+pwbSu+QuF3GE0NU5xQdTHM3t9wyYhB9l94Cd8=", + "lastModified": 1705033721, + "narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "715d72e967ec1dd5ecc71290ee072bcaf5181ed6", + "rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea", "type": "github" }, "original": { @@ -10538,61 +8662,61 @@ "type": "github" } }, - "nixpkgs-2305_3": { + "nixpkgs-2311": { "locked": { - "lastModified": 1695416179, - "narHash": "sha256-610o1+pwbSu+QuF3GE0NU5xQdTHM3t9wyYhB9l94Cd8=", + "lastModified": 1701386440, + "narHash": "sha256-xI0uQ9E7JbmEy/v8kR9ZQan6389rHug+zOtZeZFiDJk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "715d72e967ec1dd5ecc71290ee072bcaf5181ed6", + "rev": "293822e55ec1872f715a66d0eda9e592dc14419f", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-23.05-darwin", + "ref": "nixpkgs-23.11-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2305_4": { + "nixpkgs-2311_2": { "locked": { - "lastModified": 1701362232, - "narHash": "sha256-GVdzxL0lhEadqs3hfRLuj+L1OJFGiL/L7gCcelgBlsw=", + "lastModified": 1701386440, + "narHash": "sha256-xI0uQ9E7JbmEy/v8kR9ZQan6389rHug+zOtZeZFiDJk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d2332963662edffacfddfad59ff4f709dde80ffe", + "rev": "293822e55ec1872f715a66d0eda9e592dc14419f", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-23.05-darwin", + "ref": "nixpkgs-23.11-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2305_5": { + "nixpkgs-2311_3": { "locked": { - "lastModified": 1705033721, - "narHash": "sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ=", + "lastModified": 1719957072, + "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a1982c92d8980a0114372973cbdfe0a307f1bdea", + "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-23.05-darwin", + "ref": "nixpkgs-23.11-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2311": { + "nixpkgs-2311_4": { "locked": { - "lastModified": 1701386440, - "narHash": "sha256-xI0uQ9E7JbmEy/v8kR9ZQan6389rHug+zOtZeZFiDJk=", + "lastModified": 1719957072, + "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "293822e55ec1872f715a66d0eda9e592dc14419f", + "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", "type": "github" }, "original": { @@ -10602,23 +8726,23 @@ "type": "github" } }, - "nixpkgs-2311_2": { + "nixpkgs-2405": { "locked": { - "lastModified": 1719957072, - "narHash": "sha256-gvFhEf5nszouwLAkT9nWsDzocUTqLWHuL++dvNjMp9I=", + "lastModified": 1720122915, + "narHash": "sha256-Nby8WWxj0elBu1xuRaUcRjPi/rU3xVbkAt2kj4QwX2U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7144d6241f02d171d25fba3edeaf15e0f2592105", + "rev": "835cf2d3f37989c5db6585a28de967a667a75fb1", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-23.11-darwin", + "ref": "nixpkgs-24.05-darwin", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-2405": { + "nixpkgs-2405_2": { "locked": { "lastModified": 1720122915, "narHash": "sha256-Nby8WWxj0elBu1xuRaUcRjPi/rU3xVbkAt2kj4QwX2U=", @@ -10668,11 +8792,11 @@ "nixpkgs-lib": { "locked": { "dir": "lib", - "lastModified": 1671359686, - "narHash": "sha256-3MpC6yZo+Xn9cPordGz2/ii6IJpP2n8LE8e/ebUXLrs=", + "lastModified": 1696019113, + "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "04f574a1c0fde90b51bf68198e2297ca4e7cccf4", + "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", "type": "github" }, "original": { @@ -10686,65 +8810,11 @@ "nixpkgs-lib_2": { "locked": { "dir": "lib", - "lastModified": 1682879489, - "narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib_3": { - "locked": { - "dir": "lib", - "lastModified": 1690881714, - "narHash": "sha256-h/nXluEqdiQHs1oSgkOOWF+j8gcJMWhwnZ9PFabN6q0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9e1960bc196baf6881340d53dccb203a951745a2", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib_4": { - "locked": { - "dir": "lib", - "lastModified": 1690881714, - "narHash": "sha256-h/nXluEqdiQHs1oSgkOOWF+j8gcJMWhwnZ9PFabN6q0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9e1960bc196baf6881340d53dccb203a951745a2", - "type": "github" - }, - "original": { - "dir": "lib", - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib_5": { - "locked": { - "dir": "lib", - "lastModified": 1696019113, - "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", + "lastModified": 1709237383, + "narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", + "rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8", "type": "github" }, "original": { @@ -10847,51 +8917,6 @@ } }, "nixpkgs-regression_15": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_16": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_17": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "indirect" - } - }, - "nixpkgs-regression_18": { "locked": { "lastModified": 1643052045, "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", @@ -10949,10 +8974,9 @@ "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nixpkgs", + "id": "nixpkgs", "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" + "type": "indirect" } }, "nixpkgs-regression_5": { @@ -10965,10 +8989,9 @@ "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nixpkgs", + "id": "nixpkgs", "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" + "type": "indirect" } }, "nixpkgs-regression_6": { @@ -10981,10 +9004,9 @@ "type": "github" }, "original": { - "owner": "NixOS", - "repo": "nixpkgs", + "id": "nixpkgs", "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" + "type": "indirect" } }, "nixpkgs-regression_7": { @@ -11034,85 +9056,37 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1690066826, - "narHash": "sha256-6L2qb+Zc0BFkh72OS9uuX637gniOjzU6qCDBpjB2LGY=", + "lastModified": 1704874635, + "narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ce45b591975d070044ca24e3003c830d26fea1c8", + "rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356", "type": "github" }, "original": { "owner": "NixOS", - "ref": "release-23.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1690720142, - "narHash": "sha256-GywuiZjBKfFkntQwpNQfL+Ksa2iGjPprBGL0/psgRZM=", + "lastModified": 1694822471, + "narHash": "sha256-6fSDCj++lZVMZlyqOe9SIOL8tYSBz1bI8acwovRwoX8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3acb5c4264c490e7714d503c7166a3fde0c51324", + "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", "repo": "nixpkgs", + "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", "type": "github" } }, "nixpkgs-unstable_10": { - "locked": { - "lastModified": 1648219316, - "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_11": { - "locked": { - "lastModified": 1657888067, - "narHash": "sha256-GnwJoFBTPfW3+mz7QEeJEEQ9OMHZOiIJ/qDhZxrlKh8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "65fae659e31098ca4ac825a6fef26d890aaf3f4e", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_12": { - "locked": { - "lastModified": 1648219316, - "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_13": { "locked": { "lastModified": 1720181791, "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", @@ -11128,451 +9102,77 @@ "type": "github" } }, - "nixpkgs-unstable_2": { - "locked": { - "lastModified": 1696577711, - "narHash": "sha256-94VRjvClIKDym1QRqPkX5LTQoAwZ1E6QE/3dWtOXSIQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "a2eb207f45e4a14a1e3019d9e3863d1e208e2295", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_3": { - "locked": { - "lastModified": 1695318763, - "narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e12483116b3b51a185a33a272bf351e357ba9a99", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_4": { - "locked": { - "lastModified": 1682656005, - "narHash": "sha256-fYplYo7so1O+rSQ2/aS+SbTPwLTeoUXk4ekKNtSl4P8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "6806b63e824f84b0f0e60b6d660d4ae753de0477", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_5": { - "locked": { - "lastModified": 1695318763, - "narHash": "sha256-FHVPDRP2AfvsxAdc+AsgFJevMz5VBmnZglFUMlxBkcY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e12483116b3b51a185a33a272bf351e357ba9a99", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_6": { - "locked": { - "lastModified": 1694822471, - "narHash": "sha256-6fSDCj++lZVMZlyqOe9SIOL8tYSBz1bI8acwovRwoX8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", - "type": "github" - } - }, - "nixpkgs-unstable_7": { - "locked": { - "lastModified": 1646331602, - "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_8": { - "locked": { - "lastModified": 1656338871, - "narHash": "sha256-+LOvZFt3MpWtrxXLH4igQtRVzyD43VnuTJjDVbt7phY=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "819e4d63fc7f337a822a049fd055cd7615a5e0d6", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable_9": { - "locked": { - "lastModified": 1646331602, - "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_10": { - "locked": { - "lastModified": 1670461440, - "narHash": "sha256-jy1LB8HOMKGJEGXgzFRLDU1CBGL0/LlkolgnqIsF0D8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "04a75b2eecc0acf6239acf9dd04485ff8d14f425", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-22.11-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1690026219, - "narHash": "sha256-oOduRk/kzQxOBknZXTLSEYd7tk+GoKvr8wV6Ab+t4AU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f465da166263bc0d4b39dfd4ca28b777c92d4b73", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_12": { - "locked": { - "lastModified": 1675249806, - "narHash": "sha256-u8Rcqekusl3pMZm68hZqr6zozI8Ug5IxqOiqDLAlu1k=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "79feedf38536de2a27d13fe2eaf200a9c05193ba", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_13": { - "locked": { - "lastModified": 1636823747, - "narHash": "sha256-oWo1nElRAOZqEf90Yek2ixdHyjD+gqtS/pAgwaQ9UhQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "f6a2ed2082d9a51668c86ba27d0b5496f7a2ea93", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_14": { - "locked": { - "lastModified": 1657693803, - "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-22.05-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_15": { - "locked": { - "lastModified": 1642336556, - "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, - "nixpkgs_16": { - "locked": { - "lastModified": 1657693803, - "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-22.05-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_17": { - "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_18": { - "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_19": { - "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1687420147, - "narHash": "sha256-NILbmZVsoP2Aw0OAIXdbYXrWc/qggIDDyIwZ01yUx+Q=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d449a456ba7d81038fc9ec9141eae7ee3aaf2982", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_20": { - "locked": { - "lastModified": 1674407282, - "narHash": "sha256-2qwc8mrPINSFdWffPK+ji6nQ9aGnnZyHSItVcYDZDlk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ab1254087f4cdf4af74b552d7fc95175d9bdbb49", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-22.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_21": { - "locked": { - "lastModified": 1665087388, - "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_22": { - "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_23": { - "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_24": { - "locked": { - "lastModified": 1675940568, - "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "6ccc4a59c3f1b56d039d93da52696633e641bc71", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_25": { + "nixpkgs-unstable_2": { "locked": { - "lastModified": 1642336556, - "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", + "lastModified": 1694822471, + "narHash": "sha256-6fSDCj++lZVMZlyqOe9SIOL8tYSBz1bI8acwovRwoX8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", + "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "47585496bcb13fb72e4a90daeea2f434e2501998", + "type": "github" } }, - "nixpkgs_26": { + "nixpkgs-unstable_3": { "locked": { - "lastModified": 1657693803, - "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", + "lastModified": 1720181791, + "narHash": "sha256-i4vJL12/AdyuQuviMMd1Hk2tsGt02hDNhA0Zj1m16N8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", + "rev": "4284c2b73c8bce4b46a6adf23e16d9e2ec8da4bb", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.05-small", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_27": { + "nixpkgs-unstable_4": { "locked": { - "lastModified": 1654807842, - "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", - "owner": "NixOS", + "lastModified": 1646331602, + "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", + "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_28": { + "nixpkgs-unstable_5": { "locked": { - "lastModified": 1681001314, - "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "367c0e1086a4eb4502b24d872cea2c7acdd557f4", + "lastModified": 1656338871, + "narHash": "sha256-+LOvZFt3MpWtrxXLH4igQtRVzyD43VnuTJjDVbt7phY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "819e4d63fc7f337a822a049fd055cd7615a5e0d6", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_29": { + "nixpkgs-unstable_6": { "locked": { - "lastModified": 1675940568, - "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", + "lastModified": 1646331602, + "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6ccc4a59c3f1b56d039d93da52696633e641bc71", + "rev": "ad267cc9cf3d5a6ae63940df31eb31382d6356e6", "type": "github" }, "original": { @@ -11582,55 +9182,55 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs-unstable_7": { "locked": { - "lastModified": 1677543769, - "narHash": "sha256-LwbqS8vGisXl2WHpK9r5+kodr0zoIT8F2YB0R4y1TsA=", + "lastModified": 1648219316, + "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b26d52c9feb6476580016e78935cbf96eb3e2115", + "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_30": { + "nixpkgs-unstable_8": { "locked": { - "lastModified": 1677063315, - "narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=", - "owner": "nixos", + "lastModified": 1657888067, + "narHash": "sha256-GnwJoFBTPfW3+mz7QEeJEEQ9OMHZOiIJ/qDhZxrlKh8=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "988cc958c57ce4350ec248d2d53087777f9e1949", + "rev": "65fae659e31098ca4ac825a6fef26d890aaf3f4e", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", + "owner": "NixOS", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_31": { + "nixpkgs-unstable_9": { "locked": { - "lastModified": 1653581809, - "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", + "lastModified": 1648219316, + "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", + "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_32": { + "nixpkgs_10": { "locked": { "lastModified": 1654807842, "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", @@ -11645,7 +9245,7 @@ "type": "github" } }, - "nixpkgs_33": { + "nixpkgs_11": { "locked": { "lastModified": 1665087388, "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", @@ -11661,7 +9261,7 @@ "type": "github" } }, - "nixpkgs_34": { + "nixpkgs_12": { "locked": { "lastModified": 1642336556, "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", @@ -11675,7 +9275,7 @@ "type": "indirect" } }, - "nixpkgs_35": { + "nixpkgs_13": { "locked": { "lastModified": 1657693803, "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", @@ -11691,7 +9291,7 @@ "type": "github" } }, - "nixpkgs_36": { + "nixpkgs_14": { "locked": { "lastModified": 1712920918, "narHash": "sha256-1yxFvUcJfUphK9V91KufIQom7gCsztza0H4Rz2VCWUU=", @@ -11706,7 +9306,7 @@ "type": "github" } }, - "nixpkgs_37": { + "nixpkgs_15": { "locked": { "lastModified": 1708343346, "narHash": "sha256-qlzHvterVRzS8fS0ophQpkh0rqw0abijHEOAKm0HmV0=", @@ -11722,27 +9322,60 @@ "type": "github" } }, - "nixpkgs_38": { + "nixpkgs_16": { "locked": { - "lastModified": 1627969475, - "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bd27e2e8316ac6eab11aa35c586e743286f23ecf", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "NixOS", + "ref": "nixos-22.05-small", + "repo": "nixpkgs", + "type": "github" } }, - "nixpkgs_39": { + "nixpkgs_17": { "locked": { - "lastModified": 1644972330, - "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", + "lastModified": 1710272261, + "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "19574af0af3ffaf7c9e359744ed32556f34536bd", + "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_18": { + "locked": { + "lastModified": 1710620900, + "narHash": "sha256-jrAAfVlB1GoraqCe/HkD//y/Ub7cHnadQBfElC1xD/Y=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "6a44e8d6b261559a97d3f9c4e4fdc87173e781e9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_19": { + "locked": { + "lastModified": 1704842529, + "narHash": "sha256-OTeQA+F8d/Evad33JMfuXC89VMetQbsU4qcaePchGr4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "eabe8d3eface69f5bb16c18f8662a702f50c20d5", "type": "github" }, "original": { @@ -11752,23 +9385,53 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_2": { "locked": { - "lastModified": 1645013224, - "narHash": "sha256-b7OEC8vwzJv3rsz9pwnTX2LQDkeOWz2DbKypkVvNHXc=", - "owner": "nixos", + "lastModified": 1687420147, + "narHash": "sha256-NILbmZVsoP2Aw0OAIXdbYXrWc/qggIDDyIwZ01yUx+Q=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "b66b39216b1fef2d8c33cc7a5c72d8da80b79970", + "rev": "d449a456ba7d81038fc9ec9141eae7ee3aaf2982", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_20": { + "locked": { + "lastModified": 1627969475, + "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "bd27e2e8316ac6eab11aa35c586e743286f23ecf", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_21": { + "locked": { + "lastModified": 1644972330, + "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "19574af0af3ffaf7c9e359744ed32556f34536bd", + "type": "github" + }, + "original": { + "owner": "NixOS", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_40": { + "nixpkgs_22": { "locked": { "lastModified": 1627969475, "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", @@ -11782,7 +9445,7 @@ "type": "indirect" } }, - "nixpkgs_41": { + "nixpkgs_23": { "locked": { "lastModified": 1644972330, "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", @@ -11798,7 +9461,7 @@ "type": "github" } }, - "nixpkgs_42": { + "nixpkgs_24": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -11814,7 +9477,7 @@ "type": "github" } }, - "nixpkgs_43": { + "nixpkgs_25": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -11829,7 +9492,7 @@ "type": "indirect" } }, - "nixpkgs_44": { + "nixpkgs_26": { "locked": { "lastModified": 1638452135, "narHash": "sha256-5Il6hgrTgcWIsB7zug0yDFccYXx7pJCw8cwJdXMuLfM=", @@ -11845,7 +9508,7 @@ "type": "github" } }, - "nixpkgs_45": { + "nixpkgs_27": { "locked": { "lastModified": 1602702596, "narHash": "sha256-fqJ4UgOb4ZUnCDIapDb4gCrtAah5Rnr2/At3IzMitig=", @@ -11860,7 +9523,7 @@ "type": "indirect" } }, - "nixpkgs_46": { + "nixpkgs_28": { "locked": { "lastModified": 1638887115, "narHash": "sha256-emjtIeqyJ84Eb3X7APJruTrwcfnHQKs55XGljj62prs=", @@ -11876,7 +9539,7 @@ "type": "github" } }, - "nixpkgs_47": { + "nixpkgs_29": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -11891,29 +9554,29 @@ "type": "indirect" } }, - "nixpkgs_48": { + "nixpkgs_3": { "locked": { - "lastModified": 1641909823, - "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", - "owner": "nixos", + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "f0f67400bc49c44f305d6fe17698a2f1ce1c29a0", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", + "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_49": { + "nixpkgs_30": { "locked": { - "lastModified": 1647350163, - "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", + "lastModified": 1641909823, + "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3eb07eeafb52bcbf02ce800f032f18d666a9498d", + "rev": "f0f67400bc49c44f305d6fe17698a2f1ce1c29a0", "type": "github" }, "original": { @@ -11923,23 +9586,23 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_31": { "locked": { - "lastModified": 1680945546, - "narHash": "sha256-8FuaH5t/aVi/pR1XxnF0qi4WwMYC+YxlfdsA0V+TEuQ=", + "lastModified": 1647350163, + "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d9f759f2ea8d265d974a6e1259bd510ac5844c5d", + "rev": "3eb07eeafb52bcbf02ce800f032f18d666a9498d", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_50": { + "nixpkgs_32": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -11955,7 +9618,7 @@ "type": "github" } }, - "nixpkgs_51": { + "nixpkgs_33": { "locked": { "lastModified": 1646506091, "narHash": "sha256-sWNAJE2m+HOh1jtXlHcnhxsj6/sXrHgbqVNcVRlveK4=", @@ -11971,7 +9634,7 @@ "type": "github" } }, - "nixpkgs_52": { + "nixpkgs_34": { "locked": { "lastModified": 1658119717, "narHash": "sha256-4upOZIQQ7Bc4CprqnHsKnqYfw+arJeAuU+QcpjYBXW0=", @@ -11987,7 +9650,7 @@ "type": "github" } }, - "nixpkgs_53": { + "nixpkgs_35": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -12003,7 +9666,7 @@ "type": "github" } }, - "nixpkgs_54": { + "nixpkgs_36": { "locked": { "lastModified": 1652576347, "narHash": "sha256-52Wu7hkcIRcS4UenSSrt01J2sAbbQ6YqxZIDpuEPL/c=", @@ -12018,7 +9681,7 @@ "type": "github" } }, - "nixpkgs_55": { + "nixpkgs_37": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -12034,7 +9697,7 @@ "type": "github" } }, - "nixpkgs_56": { + "nixpkgs_38": { "locked": { "lastModified": 1642451377, "narHash": "sha256-hvAuYDUN8XIrcQKE6wDw4LjTCcwrTp2B1i1i/5vfDMQ=", @@ -12049,7 +9712,7 @@ "type": "github" } }, - "nixpkgs_57": { + "nixpkgs_39": { "locked": { "lastModified": 1645296114, "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", @@ -12064,7 +9727,22 @@ "type": "indirect" } }, - "nixpkgs_58": { + "nixpkgs_4": { + "locked": { + "lastModified": 1654807842, + "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_40": { "locked": { "lastModified": 1652559422, "narHash": "sha256-jPVTNImBTUIFdtur+d4IVot6eXmsvtOcBm0TzxmhWPk=", @@ -12080,7 +9758,7 @@ "type": "github" } }, - "nixpkgs_59": { + "nixpkgs_41": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -12095,23 +9773,7 @@ "type": "indirect" } }, - "nixpkgs_6": { - "locked": { - "lastModified": 1657693803, - "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-22.05-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_60": { + "nixpkgs_42": { "locked": { "lastModified": 1641909823, "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", @@ -12127,7 +9789,7 @@ "type": "github" } }, - "nixpkgs_61": { + "nixpkgs_43": { "locked": { "lastModified": 1647350163, "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", @@ -12143,7 +9805,7 @@ "type": "github" } }, - "nixpkgs_62": { + "nixpkgs_44": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -12159,7 +9821,7 @@ "type": "github" } }, - "nixpkgs_63": { + "nixpkgs_45": { "locked": { "lastModified": 1658311025, "narHash": "sha256-GqagY5YmaZB3YaO41kKcQhe5RcpS83wnsW8iCu5Znqo=", @@ -12175,7 +9837,7 @@ "type": "github" } }, - "nixpkgs_64": { + "nixpkgs_46": { "locked": { "lastModified": 1646331602, "narHash": "sha256-cRuytTfel52z947yKfJcZU7zbQBgM16qqTf+oJkVwtg=", @@ -12191,7 +9853,7 @@ "type": "github" } }, - "nixpkgs_65": { + "nixpkgs_47": { "locked": { "lastModified": 1643381941, "narHash": "sha256-pHTwvnN4tTsEKkWlXQ8JMY423epos8wUOhthpwJjtpc=", @@ -12207,7 +9869,7 @@ "type": "github" } }, - "nixpkgs_66": { + "nixpkgs_48": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -12222,7 +9884,7 @@ "type": "indirect" } }, - "nixpkgs_67": { + "nixpkgs_49": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -12237,7 +9899,23 @@ "type": "indirect" } }, - "nixpkgs_68": { + "nixpkgs_5": { + "locked": { + "lastModified": 1665087388, + "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_50": { "locked": { "lastModified": 1644486793, "narHash": "sha256-EeijR4guVHgVv+JpOX3cQO+1XdrkJfGmiJ9XVsVU530=", @@ -12253,7 +9931,7 @@ "type": "github" } }, - "nixpkgs_69": { + "nixpkgs_51": { "locked": { "lastModified": 1627969475, "narHash": "sha256-MhVtkVt1MFfaDY3ObJu54NBcsaPk19vOBZ8ouhjO4qs=", @@ -12267,23 +9945,7 @@ "type": "indirect" } }, - "nixpkgs_7": { - "locked": { - "lastModified": 1692339729, - "narHash": "sha256-TUK76/Pqm9qIDjEGd27Lz9EiBIvn5F70JWDmEQ4Y5DQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ae521bd4e460b076a455dca8b13f4151489a725c", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_70": { + "nixpkgs_52": { "locked": { "lastModified": 1644972330, "narHash": "sha256-6V2JFpTUzB9G+KcqtUR1yl7f6rd9495YrFECslEmbGw=", @@ -12299,7 +9961,7 @@ "type": "github" } }, - "nixpkgs_71": { + "nixpkgs_53": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -12315,7 +9977,7 @@ "type": "github" } }, - "nixpkgs_72": { + "nixpkgs_54": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -12330,7 +9992,7 @@ "type": "indirect" } }, - "nixpkgs_73": { + "nixpkgs_55": { "locked": { "lastModified": 1638452135, "narHash": "sha256-5Il6hgrTgcWIsB7zug0yDFccYXx7pJCw8cwJdXMuLfM=", @@ -12346,7 +10008,7 @@ "type": "github" } }, - "nixpkgs_74": { + "nixpkgs_56": { "locked": { "lastModified": 1602702596, "narHash": "sha256-fqJ4UgOb4ZUnCDIapDb4gCrtAah5Rnr2/At3IzMitig=", @@ -12361,7 +10023,7 @@ "type": "indirect" } }, - "nixpkgs_75": { + "nixpkgs_57": { "locked": { "lastModified": 1638887115, "narHash": "sha256-emjtIeqyJ84Eb3X7APJruTrwcfnHQKs55XGljj62prs=", @@ -12377,7 +10039,7 @@ "type": "github" } }, - "nixpkgs_76": { + "nixpkgs_58": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -12392,7 +10054,7 @@ "type": "indirect" } }, - "nixpkgs_77": { + "nixpkgs_59": { "locked": { "lastModified": 1641909823, "narHash": "sha256-Uxo+Wm6c/ijNhaJlYtFLJG9mh75FYZaBreMC2ZE0nEY=", @@ -12408,7 +10070,21 @@ "type": "github" } }, - "nixpkgs_78": { + "nixpkgs_6": { + "locked": { + "lastModified": 1642336556, + "narHash": "sha256-QSPPbFEwy0T0DrIuSzAACkaANPQaR1lZR/nHZGz9z04=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f3d9d4bd898cca7d04af2ae4f6ef01f2219df3d6", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_60": { "locked": { "lastModified": 1647350163, "narHash": "sha256-OcMI+PFEHTONthXuEQNddt16Ml7qGvanL3x8QOl2Aao=", @@ -12424,7 +10100,7 @@ "type": "github" } }, - "nixpkgs_79": { + "nixpkgs_61": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -12440,23 +10116,7 @@ "type": "github" } }, - "nixpkgs_8": { - "locked": { - "lastModified": 1684171562, - "narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "55af203d468a6f5032a519cba4f41acf5a74b638", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-22.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_80": { + "nixpkgs_62": { "locked": { "lastModified": 1646506091, "narHash": "sha256-sWNAJE2m+HOh1jtXlHcnhxsj6/sXrHgbqVNcVRlveK4=", @@ -12472,7 +10132,7 @@ "type": "github" } }, - "nixpkgs_81": { + "nixpkgs_63": { "locked": { "lastModified": 1658119717, "narHash": "sha256-4upOZIQQ7Bc4CprqnHsKnqYfw+arJeAuU+QcpjYBXW0=", @@ -12488,7 +10148,7 @@ "type": "github" } }, - "nixpkgs_82": { + "nixpkgs_64": { "locked": { "lastModified": 1644525281, "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", @@ -12504,7 +10164,7 @@ "type": "github" } }, - "nixpkgs_83": { + "nixpkgs_65": { "locked": { "lastModified": 1646470760, "narHash": "sha256-dQISyucVCCPaFioUhy5ZgfBz8rOMKGI8k13aPDFTqEs=", @@ -12520,7 +10180,7 @@ "type": "github" } }, - "nixpkgs_84": { + "nixpkgs_66": { "locked": { "lastModified": 1619531122, "narHash": "sha256-ovm5bo6PkZzNKh2YGXbRKYIjega0EjiEP0YDwyeXEYU=", @@ -12534,7 +10194,7 @@ "type": "indirect" } }, - "nixpkgs_85": { + "nixpkgs_67": { "locked": { "lastModified": 1656461576, "narHash": "sha256-rlmmw6lIlkMQIiB+NsnO8wQYWTfle8TA41UREPLP5VY=", @@ -12550,7 +10210,7 @@ "type": "github" } }, - "nixpkgs_86": { + "nixpkgs_68": { "locked": { "lastModified": 1655567057, "narHash": "sha256-Cc5hQSMsTzOHmZnYm8OSJ5RNUp22bd5NADWLHorULWQ=", @@ -12564,7 +10224,7 @@ "type": "indirect" } }, - "nixpkgs_87": { + "nixpkgs_69": { "locked": { "lastModified": 1656401090, "narHash": "sha256-bUS2nfQsvTQW2z8SK7oEFSElbmoBahOPtbXPm0AL3I4=", @@ -12578,7 +10238,23 @@ "type": "indirect" } }, - "nixpkgs_88": { + "nixpkgs_7": { + "locked": { + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.05-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_70": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -12593,7 +10269,7 @@ "type": "indirect" } }, - "nixpkgs_89": { + "nixpkgs_71": { "locked": { "lastModified": 1656809537, "narHash": "sha256-pwXBYG3ThN4ccJjvcdNdonQ8Wyv0y/iYdnuesiFUY1U=", @@ -12608,23 +10284,7 @@ "type": "github" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1684171562, - "narHash": "sha256-BMUWjVWAUdyMWKk0ATMC9H0Bv4qAV/TXwwPUvTiC5IQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "55af203d468a6f5032a519cba4f41acf5a74b638", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-22.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_90": { + "nixpkgs_72": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -12639,7 +10299,7 @@ "type": "indirect" } }, - "nixpkgs_91": { + "nixpkgs_73": { "locked": { "lastModified": 1654807842, "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=", @@ -12654,7 +10314,7 @@ "type": "github" } }, - "nixpkgs_92": { + "nixpkgs_74": { "locked": { "lastModified": 1656947410, "narHash": "sha256-htDR/PZvjUJGyrRJsVqDmXR8QeoswBaRLzHt13fd0iY=", @@ -12670,7 +10330,7 @@ "type": "github" } }, - "nixpkgs_93": { + "nixpkgs_75": { "locked": { "lastModified": 1658311025, "narHash": "sha256-GqagY5YmaZB3YaO41kKcQhe5RcpS83wnsW8iCu5Znqo=", @@ -12686,7 +10346,7 @@ "type": "github" } }, - "nixpkgs_94": { + "nixpkgs_76": { "locked": { "lastModified": 1642451377, "narHash": "sha256-hvAuYDUN8XIrcQKE6wDw4LjTCcwrTp2B1i1i/5vfDMQ=", @@ -12701,7 +10361,7 @@ "type": "github" } }, - "nixpkgs_95": { + "nixpkgs_77": { "locked": { "lastModified": 1653920503, "narHash": "sha256-BBeCZwZImtjP3oYy4WogkQYy5OxNyfNciVSc1AfZgLQ=", @@ -12717,7 +10377,7 @@ "type": "github" } }, - "nixpkgs_96": { + "nixpkgs_78": { "locked": { "lastModified": 1650469885, "narHash": "sha256-BuILRZ6pzMnGey8/irbjGq1oo3vIvZa1pitSdZCmIXA=", @@ -12733,7 +10393,7 @@ "type": "github" } }, - "nixpkgs_97": { + "nixpkgs_79": { "locked": { "lastModified": 1632864508, "narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=", @@ -12748,7 +10408,23 @@ "type": "indirect" } }, - "nixpkgs_98": { + "nixpkgs_8": { + "locked": { + "lastModified": 1708343346, + "narHash": "sha256-qlzHvterVRzS8fS0ophQpkh0rqw0abijHEOAKm0HmV0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9312b935a538684049cb668885e60f15547d4c5f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "release-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_80": { "locked": { "lastModified": 1657693803, "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", @@ -12764,7 +10440,7 @@ "type": "github" } }, - "nixpkgs_99": { + "nixpkgs_81": { "locked": { "lastModified": 1713714899, "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", @@ -12780,11 +10456,27 @@ "type": "github" } }, + "nixpkgs_9": { + "locked": { + "lastModified": 1653581809, + "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "83658b28fe638a170a19b8933aa008b30640fbd1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nomad": { "inputs": { - "nix": "nix_8", - "nixpkgs": "nixpkgs_46", - "utils": "utils_10" + "nix": "nix_5", + "nixpkgs": "nixpkgs_28", + "utils": "utils_8" }, "locked": { "lastModified": 1648128770, @@ -12803,11 +10495,11 @@ }, "nomad-driver-nix": { "inputs": { - "devshell": "devshell_6", - "inclusive": "inclusive_2", - "nix": "nix_9", - "nixpkgs": "nixpkgs_48", - "utils": "utils_11" + "devshell": "devshell_4", + "inclusive": "inclusive", + "nix": "nix_6", + "nixpkgs": "nixpkgs_30", + "utils": "utils_9" }, "locked": { "lastModified": 1648029666, @@ -12825,11 +10517,11 @@ }, "nomad-driver-nix_2": { "inputs": { - "devshell": "devshell_9", - "inclusive": "inclusive_5", - "nix": "nix_11", - "nixpkgs": "nixpkgs_60", - "utils": "utils_16" + "devshell": "devshell_7", + "inclusive": "inclusive_4", + "nix": "nix_8", + "nixpkgs": "nixpkgs_42", + "utils": "utils_14" }, "locked": { "lastModified": 1648029666, @@ -12847,11 +10539,11 @@ }, "nomad-driver-nix_3": { "inputs": { - "devshell": "devshell_16", - "inclusive": "inclusive_10", - "nix": "nix_16", - "nixpkgs": "nixpkgs_77", - "utils": "utils_25" + "devshell": "devshell_14", + "inclusive": "inclusive_9", + "nix": "nix_13", + "nixpkgs": "nixpkgs_59", + "utils": "utils_23" }, "locked": { "lastModified": 1648029666, @@ -12869,10 +10561,10 @@ }, "nomad-follower": { "inputs": { - "devshell": "devshell_7", - "inclusive": "inclusive_3", - "nixpkgs": "nixpkgs_49", - "utils": "utils_12" + "devshell": "devshell_5", + "inclusive": "inclusive_2", + "nixpkgs": "nixpkgs_31", + "utils": "utils_10" }, "locked": { "lastModified": 1649836589, @@ -12890,10 +10582,10 @@ }, "nomad-follower_2": { "inputs": { - "devshell": "devshell_10", - "inclusive": "inclusive_6", - "nixpkgs": "nixpkgs_61", - "utils": "utils_17" + "devshell": "devshell_8", + "inclusive": "inclusive_5", + "nixpkgs": "nixpkgs_43", + "utils": "utils_15" }, "locked": { "lastModified": 1658244176, @@ -12911,10 +10603,10 @@ }, "nomad-follower_3": { "inputs": { - "devshell": "devshell_17", - "inclusive": "inclusive_11", - "nixpkgs": "nixpkgs_78", - "utils": "utils_26" + "devshell": "devshell_15", + "inclusive": "inclusive_10", + "nixpkgs": "nixpkgs_60", + "utils": "utils_24" }, "locked": { "lastModified": 1649836589, @@ -12932,9 +10624,9 @@ }, "nomad_2": { "inputs": { - "nix": "nix_15", - "nixpkgs": "nixpkgs_75", - "utils": "utils_24" + "nix": "nix_12", + "nixpkgs": "nixpkgs_57", + "utils": "utils_22" }, "locked": { "lastModified": 1648128770, @@ -12952,36 +10644,6 @@ } }, "nosys": { - "locked": { - "lastModified": 1667881534, - "narHash": "sha256-FhwJ15uPLRsvaxtt/bNuqE/ykMpNAPF0upozFKhTtXM=", - "owner": "divnix", - "repo": "nosys", - "rev": "2d0d5207f6a230e9d0f660903f8db9807b54814f", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "nosys", - "type": "github" - } - }, - "nosys_2": { - "locked": { - "lastModified": 1668010795, - "narHash": "sha256-JBDVBnos8g0toU7EhIIqQ1If5m/nyBqtHhL3sicdPwI=", - "owner": "divnix", - "repo": "nosys", - "rev": "feade0141487801c71ff55623b421ed535dbdefa", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "nosys", - "type": "github" - } - }, - "nosys_3": { "locked": { "lastModified": 1668010795, "narHash": "sha256-JBDVBnos8g0toU7EhIIqQ1If5m/nyBqtHhL3sicdPwI=", @@ -12996,7 +10658,7 @@ "type": "github" } }, - "nosys_4": { + "nosys_2": { "locked": { "lastModified": 1668010795, "narHash": "sha256-JBDVBnos8g0toU7EhIIqQ1If5m/nyBqtHhL3sicdPwI=", @@ -13011,23 +10673,6 @@ "type": "github" } }, - "offchain-metadata-tools-service": { - "flake": false, - "locked": { - "lastModified": 1684160858, - "narHash": "sha256-2pu/T4uoXBxhI47PrOS6zHRZRwaSM6qA87HJySwwIBo=", - "owner": "input-output-hk", - "repo": "offchain-metadata-tools", - "rev": "a68c12b10fe5ed9802defb4a6ca80919b695d945", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "ref": "feat-add-password-to-db-conn-string", - "repo": "offchain-metadata-tools", - "type": "github" - } - }, "ogmios": { "flake": false, "locked": { @@ -13079,23 +10724,6 @@ "type": "github" } }, - "old-ghc-nix_10": { - "flake": false, - "locked": { - "lastModified": 1631092763, - "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", - "owner": "angerman", - "repo": "old-ghc-nix", - "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", - "type": "github" - }, - "original": { - "owner": "angerman", - "ref": "master", - "repo": "old-ghc-nix", - "type": "github" - } - }, "old-ghc-nix_2": { "flake": false, "locked": { @@ -13215,31 +10843,14 @@ "type": "github" } }, - "old-ghc-nix_9": { - "flake": false, - "locked": { - "lastModified": 1631092763, - "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=", - "owner": "angerman", - "repo": "old-ghc-nix", - "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8", - "type": "github" - }, - "original": { - "owner": "angerman", - "ref": "master", - "repo": "old-ghc-nix", - "type": "github" - } - }, "ops-lib": { "flake": false, "locked": { - "lastModified": 1675186784, - "narHash": "sha256-HqDtrvk1l7YeREzCSEpUtChtlEgT6Tww9WrJiozjukc=", + "lastModified": 1713366514, + "narHash": "sha256-0hNlv+grFTE+TeXIbxSY97QoEEaUupOKMusZ4PesdrQ=", "owner": "input-output-hk", "repo": "ops-lib", - "rev": "5be29ed53b2a4cbbf4cf326fa2e9c1f2b754d26d", + "rev": "19d83fa8eab1c0b7765f736eb4e8569d84d3e39d", "type": "github" }, "original": { @@ -13249,22 +10860,6 @@ } }, "ops-lib_2": { - "flake": false, - "locked": { - "lastModified": 1675186784, - "narHash": "sha256-HqDtrvk1l7YeREzCSEpUtChtlEgT6Tww9WrJiozjukc=", - "owner": "input-output-hk", - "repo": "ops-lib", - "rev": "5be29ed53b2a4cbbf4cf326fa2e9c1f2b754d26d", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "ops-lib", - "type": "github" - } - }, - "ops-lib_3": { "flake": false, "locked": { "lastModified": 1713366514, @@ -13280,7 +10875,7 @@ "type": "github" } }, - "ops-lib_4": { + "ops-lib_3": { "flake": false, "locked": { "lastModified": 1649848729, @@ -13296,7 +10891,7 @@ "type": "github" } }, - "ops-lib_5": { + "ops-lib_4": { "flake": false, "locked": { "lastModified": 1649848729, @@ -13312,7 +10907,7 @@ "type": "github" } }, - "ops-lib_6": { + "ops-lib_5": { "flake": false, "locked": { "lastModified": 1649848729, @@ -13334,174 +10929,73 @@ "cardano-nix", "crane" ], - "utils": "utils_6" + "utils": "utils_4" }, "locked": { - "lastModified": 1720226386, - "narHash": "sha256-oBvHLxWM2vN351flm7jWjwuatFEK6la/nX9fHNy9/hk=", + "lastModified": 1724784734, + "narHash": "sha256-+rFPyNqo75wQ8vll8LutoqHwH7H3gdPNkmMQqPx+BrI=", "owner": "txpipe", "repo": "oura", - "rev": "d94068562d98f43aeef8e224111fbdaeb2bc186c", + "rev": "2fb369d7e9176feda74f270261b59f7d2ee35bc7", "type": "github" }, "original": { "owner": "txpipe", - "ref": "v1.8.6", + "ref": "v1.9.1", "repo": "oura", "type": "github" } }, "paisano": { "inputs": { + "call-flake": "call-flake", "nixpkgs": [ "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", + "cardano-node-92", "std", "nixpkgs" ], - "nosys": "nosys_2", + "nosys": "nosys", "yants": [ "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", + "cardano-node-92", "std", "yants" ] }, "locked": { - "lastModified": 1677437285, - "narHash": "sha256-YGfMothgUq1T9wMJYEhOSvdIiD/8gLXO1YcZA6hyIWU=", + "lastModified": 1708640854, + "narHash": "sha256-EpcAmvIS4ErqhXtVEfd2GPpU/E/s8CCRSfYzk6FZ/fY=", "owner": "paisano-nix", "repo": "core", - "rev": "5f2fc05e98e001cb1cf9535ded09e05d90cec131", + "rev": "adcf742bc9463c08764ca9e6955bd5e7dcf3a3fe", "type": "github" }, "original": { "owner": "paisano-nix", + "ref": "0.2.0", "repo": "core", "type": "github" } }, - "paisano-actions": { - "inputs": { - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "paisano-mdbook-preprocessor", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1677306424, - "narHash": "sha256-H9/dI2rGEbKo4KEisqbRPHFG2ajF8Tm111NPdKGIf28=", - "owner": "paisano-nix", - "repo": "actions", - "rev": "65ec4e080b3480167fc1a748c89a05901eea9a9b", - "type": "github" - }, - "original": { - "owner": "paisano-nix", - "repo": "actions", - "type": "github" - } - }, - "paisano-mdbook-preprocessor": { - "inputs": { - "crane": "crane", - "fenix": "fenix_2", - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "nixpkgs" - ], - "paisano-actions": "paisano-actions", - "std": [ - "cardano-nix", - "cardano-node-8.7.3", - "std" - ] - }, - "locked": { - "lastModified": 1680654400, - "narHash": "sha256-Qdpio+ldhUK3zfl22Mhf8HUULdUOJXDWDdO7MIK69OU=", - "owner": "paisano-nix", - "repo": "mdbook-paisano-preprocessor", - "rev": "11a8fc47f574f194a7ae7b8b98001f6143ba4cf1", - "type": "github" - }, - "original": { - "owner": "paisano-nix", - "repo": "mdbook-paisano-preprocessor", - "type": "github" - } - }, "paisano-tui": { - "inputs": { - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "blank" - ], - "std": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std" - ] - }, + "flake": false, "locked": { - "lastModified": 1677533603, - "narHash": "sha256-Nq1dH/qn7Wg/Tj1+id+ZM3o0fzqonW73jAgY3mCp35M=", + "lastModified": 1708637035, + "narHash": "sha256-R19YURSK+MY/Rw6FZnojQS9zuDh+OoTAyngQAjjoubc=", "owner": "paisano-nix", "repo": "tui", - "rev": "802958d123b0a5437441be0cab1dee487b0ed3eb", + "rev": "231761b260587a64817e4ffae3afc15defaa15db", "type": "github" }, "original": { "owner": "paisano-nix", + "ref": "v0.5.0", "repo": "tui", "type": "github" } }, "paisano-tui_2": { - "inputs": { - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "blank" - ], - "std": [ - "cardano-nix", - "cardano-node-8.7.3", - "std" - ] - }, - "locked": { - "lastModified": 1681847764, - "narHash": "sha256-mdd7PJW1BZvxy0cIKsPfAO+ohVl/V7heE5ZTAHzTdv8=", - "owner": "paisano-nix", - "repo": "tui", - "rev": "3096bad91cae73ab8ab3367d31f8a143d248a244", - "type": "github" - }, - "original": { - "owner": "paisano-nix", - "ref": "0.1.1", - "repo": "tui", - "type": "github" - } - }, - "paisano-tui_3": { "flake": false, "locked": { "lastModified": 1708637035, @@ -13520,44 +11014,13 @@ }, "paisano_2": { "inputs": { - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "nixpkgs" - ], - "nosys": "nosys_3", - "yants": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "yants" - ] - }, - "locked": { - "lastModified": 1686862844, - "narHash": "sha256-m8l/HpRBJnZ3c0F1u0IyQ3nYGWE0R9V5kfORuqZPzgk=", - "owner": "paisano-nix", - "repo": "core", - "rev": "6674b3d3577212c1eeecd30d62d52edbd000e726", - "type": "github" - }, - "original": { - "owner": "paisano-nix", - "ref": "0.1.1", - "repo": "core", - "type": "github" - } - }, - "paisano_3": { - "inputs": { - "call-flake": "call-flake", + "call-flake": "call-flake_2", "nixpkgs": [ "cardano-node", "std", "nixpkgs" ], - "nosys": "nosys_4", + "nosys": "nosys_2", "yants": [ "cardano-node", "std", @@ -13581,7 +11044,7 @@ }, "poetry2nix": { "inputs": { - "flake-utils": "flake-utils_32", + "flake-utils": "flake-utils_23", "nixpkgs": [ "db-sync", "cardano-world", @@ -13607,15 +11070,18 @@ }, "pre-commit-hooks": { "inputs": { - "flake-utils": "flake-utils_38", - "nixpkgs": "nixpkgs_84" + "flake-compat": "flake-compat_10", + "flake-utils": "flake-utils_11", + "gitignore": "gitignore_2", + "nixpkgs": "nixpkgs_19", + "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1639823344, - "narHash": "sha256-jlsQb2y6A5dB1R0wVPLOfDGM0wLyfYqEJNzMtXuzCXw=", + "lastModified": 1708018599, + "narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "ff9c0b459ddc4b79c06e19d44251daa8e9cd1746", + "rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431", "type": "github" }, "original": { @@ -13626,8 +11092,8 @@ }, "pre-commit-hooks-nix": { "inputs": { - "flake-compat": "flake-compat_13", - "flake-utils": "flake-utils_15", + "flake-compat": "flake-compat_5", + "flake-utils": "flake-utils_5", "gitignore": "gitignore", "nixpkgs": [ "cardano-nix", @@ -13652,12 +11118,31 @@ "type": "github" } }, + "pre-commit-hooks_2": { + "inputs": { + "flake-utils": "flake-utils_29", + "nixpkgs": "nixpkgs_66" + }, + "locked": { + "lastModified": 1639823344, + "narHash": "sha256-jlsQb2y6A5dB1R0wVPLOfDGM0wLyfYqEJNzMtXuzCXw=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "ff9c0b459ddc4b79c06e19d44251daa8e9cd1746", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "ragenix": { "inputs": { "agenix": "agenix_3", - "flake-utils": "flake-utils_23", - "nixpkgs": "nixpkgs_50", - "rust-overlay": "rust-overlay_2" + "flake-utils": "flake-utils_14", + "nixpkgs": "nixpkgs_32", + "rust-overlay": "rust-overlay" }, "locked": { "lastModified": 1641119695, @@ -13676,9 +11161,9 @@ "ragenix_2": { "inputs": { "agenix": "agenix_4", - "flake-utils": "flake-utils_25", - "nixpkgs": "nixpkgs_53", - "rust-overlay": "rust-overlay_3" + "flake-utils": "flake-utils_16", + "nixpkgs": "nixpkgs_35", + "rust-overlay": "rust-overlay_2" }, "locked": { "lastModified": 1645147603, @@ -13697,9 +11182,9 @@ "ragenix_3": { "inputs": { "agenix": "agenix_5", - "flake-utils": "flake-utils_27", - "nixpkgs": "nixpkgs_62", - "rust-overlay": "rust-overlay_4" + "flake-utils": "flake-utils_18", + "nixpkgs": "nixpkgs_44", + "rust-overlay": "rust-overlay_3" }, "locked": { "lastModified": 1641119695, @@ -13718,9 +11203,9 @@ "ragenix_4": { "inputs": { "agenix": "agenix_7", - "flake-utils": "flake-utils_34", - "nixpkgs": "nixpkgs_79", - "rust-overlay": "rust-overlay_5" + "flake-utils": "flake-utils_25", + "nixpkgs": "nixpkgs_61", + "rust-overlay": "rust-overlay_4" }, "locked": { "lastModified": 1641119695, @@ -13739,9 +11224,9 @@ "ragenix_5": { "inputs": { "agenix": "agenix_8", - "flake-utils": "flake-utils_36", - "nixpkgs": "nixpkgs_82", - "rust-overlay": "rust-overlay_6" + "flake-utils": "flake-utils_27", + "nixpkgs": "nixpkgs_64", + "rust-overlay": "rust-overlay_5" }, "locked": { "lastModified": 1645147603, @@ -13764,12 +11249,13 @@ "cardano-configurations": "cardano-configurations", "cardano-nix": "cardano-nix", "cardano-node": "cardano-node", + "clb": "clb", "db-sync": "db-sync", "easy-purescript-nix": "easy-purescript-nix", - "flake-compat": "flake-compat_24", + "flake-compat": "flake-compat_18", "hackage-nix": "hackage-nix", "haskell-nix": "haskell-nix_4", - "hercules-ci-effects": "hercules-ci-effects_2", + "hercules-ci-effects": "hercules-ci-effects_3", "iohk-nix": "iohk-nix_3", "nixpkgs": [ "haskell-nix", @@ -13780,40 +11266,6 @@ } }, "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1645205556, - "narHash": "sha256-e4lZW3qRyOEJ+vLKFQP7m2Dxh5P44NrnekZYLxlucww=", - "owner": "rust-analyzer", - "repo": "rust-analyzer", - "rev": "acf5874b39f3dc5262317a6074d9fc7285081161", - "type": "github" - }, - "original": { - "owner": "rust-analyzer", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, - "rust-analyzer-src_2": { - "flake": false, - "locked": { - "lastModified": 1677221702, - "narHash": "sha256-1M+58rC4eTCWNmmX0hQVZP20t3tfYNunl9D/PrGUyGE=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "f5401f620699b26ed9d47a1d2e838143a18dbe3b", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, - "rust-analyzer-src_3": { "flake": false, "locked": { "lastModified": 1645024434, @@ -13830,7 +11282,7 @@ "type": "github" } }, - "rust-analyzer-src_4": { + "rust-analyzer-src_2": { "flake": false, "locked": { "lastModified": 1649178056, @@ -13847,7 +11299,7 @@ "type": "github" } }, - "rust-analyzer-src_5": { + "rust-analyzer-src_3": { "flake": false, "locked": { "lastModified": 1645024434, @@ -13864,7 +11316,7 @@ "type": "github" } }, - "rust-analyzer-src_6": { + "rust-analyzer-src_4": { "flake": false, "locked": { "lastModified": 1660579619, @@ -13881,7 +11333,7 @@ "type": "github" } }, - "rust-analyzer-src_7": { + "rust-analyzer-src_5": { "flake": false, "locked": { "lastModified": 1645024434, @@ -13898,7 +11350,7 @@ "type": "github" } }, - "rust-analyzer-src_8": { + "rust-analyzer-src_6": { "flake": false, "locked": { "lastModified": 1649178056, @@ -13916,39 +11368,6 @@ } }, "rust-overlay": { - "inputs": { - "flake-utils": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "paisano-mdbook-preprocessor", - "crane", - "flake-utils" - ], - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", - "std", - "paisano-mdbook-preprocessor", - "crane", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1675391458, - "narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_2": { "inputs": { "flake-utils": [ "db-sync", @@ -13983,7 +11402,7 @@ "type": "github" } }, - "rust-overlay_3": { + "rust-overlay_2": { "inputs": { "flake-utils": [ "db-sync", @@ -14016,7 +11435,7 @@ "type": "github" } }, - "rust-overlay_4": { + "rust-overlay_3": { "inputs": { "flake-utils": [ "db-sync", @@ -14047,7 +11466,7 @@ "type": "github" } }, - "rust-overlay_5": { + "rust-overlay_4": { "inputs": { "flake-utils": [ "db-sync", @@ -14080,7 +11499,7 @@ "type": "github" } }, - "rust-overlay_6": { + "rust-overlay_5": { "inputs": { "flake-utils": [ "db-sync", @@ -14196,40 +11615,6 @@ "type": "github" } }, - "secp256k1_6": { - "flake": false, - "locked": { - "lastModified": 1683999695, - "narHash": "sha256-9nJJVENMXjXEJZzw8DHzin1DkFkF8h9m/c6PuM7Uk4s=", - "owner": "bitcoin-core", - "repo": "secp256k1", - "rev": "acf5c55ae6a94e5ca847e07def40427547876101", - "type": "github" - }, - "original": { - "owner": "bitcoin-core", - "ref": "v0.3.2", - "repo": "secp256k1", - "type": "github" - } - }, - "secp256k1_7": { - "flake": false, - "locked": { - "lastModified": 1683999695, - "narHash": "sha256-9nJJVENMXjXEJZzw8DHzin1DkFkF8h9m/c6PuM7Uk4s=", - "owner": "bitcoin-core", - "repo": "secp256k1", - "rev": "acf5c55ae6a94e5ca847e07def40427547876101", - "type": "github" - }, - "original": { - "owner": "bitcoin-core", - "ref": "v0.3.2", - "repo": "secp256k1", - "type": "github" - } - }, "sodium": { "flake": false, "locked": { @@ -14315,83 +11700,14 @@ "type": "github" } }, - "sodium_6": { - "flake": false, - "locked": { - "lastModified": 1675156279, - "narHash": "sha256-0uRcN5gvMwO7MCXVYnoqG/OmeBFi8qRVnDWJLnBb9+Y=", - "owner": "input-output-hk", - "repo": "libsodium", - "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "libsodium", - "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", - "type": "github" - } - }, - "sodium_7": { - "flake": false, - "locked": { - "lastModified": 1675156279, - "narHash": "sha256-0uRcN5gvMwO7MCXVYnoqG/OmeBFi8qRVnDWJLnBb9+Y=", - "owner": "input-output-hk", - "repo": "libsodium", - "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "libsodium", - "rev": "dbb48cce5429cb6585c9034f002568964f1ce567", - "type": "github" - } - }, - "sops-nix": { - "inputs": { - "nixpkgs": "nixpkgs_11", - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1690199016, - "narHash": "sha256-yTLL72q6aqGmzHq+C3rDp3rIjno7EJZkFLof6Ika7cE=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "c36df4fe4bf4bb87759b1891cab21e7a05219500", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "stable": { - "locked": { - "lastModified": 1669735802, - "narHash": "sha256-qtG/o/i5ZWZLmXw108N2aPiVsxOcidpHJYNkT45ry9Q=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "731cc710aeebecbf45a258e977e8b68350549522", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-22.11", - "repo": "nixpkgs", - "type": "github" - } - }, "stackage": { "flake": false, "locked": { - "lastModified": 1701043780, - "narHash": "sha256-d5CYT7WGEaL6IFNmUg4JUb+onxI/tO1qgHs/TCIKB3A=", + "lastModified": 1718756571, + "narHash": "sha256-8rL8viTbuE9/yV1of6SWp2tHmhVMD2UmkOfmN5KDbKg=", "owner": "input-output-hk", "repo": "stackage.nix", - "rev": "cb49435b81adf0549589c51f39b5b38b4369f106", + "rev": "027672fb6fd45828b0e623c8152572d4058429ad", "type": "github" }, "original": { @@ -14403,11 +11719,11 @@ "stackage_2": { "flake": false, "locked": { - "lastModified": 1685491814, - "narHash": "sha256-OQX+h5hcDptW6HVrYkBL7dtgqiaiz9zn6iMYv+0CDzc=", + "lastModified": 1718756571, + "narHash": "sha256-8rL8viTbuE9/yV1of6SWp2tHmhVMD2UmkOfmN5KDbKg=", "owner": "input-output-hk", "repo": "stackage.nix", - "rev": "678b4297ccef8bbcd83294e47e1a9042034bdbd0", + "rev": "027672fb6fd45828b0e623c8152572d4058429ad", "type": "github" }, "original": { @@ -14419,11 +11735,11 @@ "stackage_3": { "flake": false, "locked": { - "lastModified": 1700438989, - "narHash": "sha256-x+7Qtboko7ds8CU8pq2sIZiD45DauYoX9LxBfwQr/hs=", + "lastModified": 1725408838, + "narHash": "sha256-tHw95xcMElCqI6xOLmdTAEvQ0/4IS7WBZc+RF7HT/uk=", "owner": "input-output-hk", "repo": "stackage.nix", - "rev": "9c2015334cc77837b8454b3b10ef4f711a256f6f", + "rev": "2ab3b5a823933ef199a289fbf39bbf0da0023100", "type": "github" }, "original": { @@ -14433,22 +11749,6 @@ } }, "stackage_4": { - "flake": false, - "locked": { - "lastModified": 1718756571, - "narHash": "sha256-8rL8viTbuE9/yV1of6SWp2tHmhVMD2UmkOfmN5KDbKg=", - "owner": "input-output-hk", - "repo": "stackage.nix", - "rev": "027672fb6fd45828b0e623c8152572d4058429ad", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "stackage.nix", - "type": "github" - } - }, - "stackage_5": { "flake": false, "locked": { "lastModified": 1646010978, @@ -14464,7 +11764,7 @@ "type": "github" } }, - "stackage_6": { + "stackage_5": { "flake": false, "locked": { "lastModified": 1655255731, @@ -14480,7 +11780,7 @@ "type": "github" } }, - "stackage_7": { + "stackage_6": { "flake": false, "locked": { "lastModified": 1659402917, @@ -14496,7 +11796,7 @@ "type": "github" } }, - "stackage_8": { + "stackage_7": { "flake": false, "locked": { "lastModified": 1650936094, @@ -14512,7 +11812,7 @@ "type": "github" } }, - "stackage_9": { + "stackage_8": { "flake": false, "locked": { "lastModified": 1724717508, @@ -14528,117 +11828,40 @@ "type": "github" } }, - "statix": { - "inputs": { - "fenix": "fenix", - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "lastModified": 1676888642, - "narHash": "sha256-C73LOMVVCkeL0jA5xN7klLEDEB4NkuiATEJY4A/tIyM=", - "owner": "nerdypepper", - "repo": "statix", - "rev": "3c7136a23f444db252a556928c1489869ca3ab4e", - "type": "github" - }, - "original": { - "owner": "nerdypepper", - "repo": "statix", - "type": "github" - } - }, "std": { "inputs": { - "arion": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia", - "std", - "blank" - ], "blank": "blank", "devshell": "devshell", "dmerge": "dmerge", - "flake-utils": "flake-utils_8", - "incl": "incl", - "makes": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia", - "std", - "blank" - ], - "microvm": [ - "cardano-nix", - "cardano-node-8.1.1", - "tullia", - "std", - "blank" - ], - "n2c": "n2c", - "nixago": "nixago", - "nixpkgs": "nixpkgs_21", - "nosys": "nosys", - "yants": "yants" - }, - "locked": { - "lastModified": 1674526466, - "narHash": "sha256-tMTaS0bqLx6VJ+K+ZT6xqsXNpzvSXJTmogkraBGzymg=", - "owner": "divnix", - "repo": "std", - "rev": "516387e3d8d059b50e742a2ff1909ed3c8f82826", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "std", - "type": "github" - } - }, - "std_2": { - "inputs": { - "arion": [ - "cardano-nix", - "cardano-node-8.7.3", - "cardano-automation", - "tullia", - "std", - "blank" - ], - "blank": "blank_2", - "devshell": "devshell_2", - "dmerge": "dmerge_2", - "flake-utils": "flake-utils_11", - "incl": "incl_2", + "flake-utils": "flake-utils_3", "makes": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "cardano-automation", "tullia", "std", "blank" ], + "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor", "microvm": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "cardano-automation", "tullia", "std", "blank" ], - "n2c": "n2c_2", - "nixago": "nixago_2", - "nixpkgs": "nixpkgs_24", - "paisano": "paisano", - "paisano-tui": "paisano-tui", - "yants": "yants_2" + "n2c": "n2c", + "nixago": "nixago", + "nixpkgs": "nixpkgs_5", + "yants": "yants" }, "locked": { - "lastModified": 1677533652, - "narHash": "sha256-H37dcuWAGZs6Yl9mewMNVcmSaUXR90/bABYFLT/nwhk=", + "lastModified": 1665513321, + "narHash": "sha256-D6Pacw9yf/HMs84KYuCxHXnNDL7v43gtcka5URagFqE=", "owner": "divnix", "repo": "std", - "rev": "490542f624412662e0411d8cb5a9af988ef56633", + "rev": "94a90eedb9cfc115b12ae8f6622d9904788559e4", "type": "github" }, "original": { @@ -14647,46 +11870,66 @@ "type": "github" } }, - "std_3": { + "std_2": { "inputs": { "arion": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "std", "blank" ], - "blank": "blank_3", - "devshell": "devshell_3", - "dmerge": "dmerge_3", - "flake-utils": "flake-utils_13", + "blank": "blank_2", + "devshell": [ + "cardano-nix", + "cardano-node-92", + "std", + "blank" + ], + "dmerge": "dmerge_2", "haumea": "haumea", - "incl": "incl_3", + "incl": "incl", + "lib": "lib", "makes": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "std", "blank" ], "microvm": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "std", "blank" ], - "n2c": "n2c_3", - "nixago": "nixago_3", - "nixpkgs": "nixpkgs_29", - "paisano": "paisano_2", - "paisano-mdbook-preprocessor": "paisano-mdbook-preprocessor", - "paisano-tui": "paisano-tui_2", - "yants": "yants_3" + "n2c": [ + "cardano-nix", + "cardano-node-92", + "std", + "blank" + ], + "nixago": [ + "cardano-nix", + "cardano-node-92", + "std", + "blank" + ], + "nixpkgs": "nixpkgs_8", + "paisano": "paisano", + "paisano-tui": "paisano-tui", + "terranix": [ + "cardano-nix", + "cardano-node-92", + "std", + "blank" + ], + "yants": "yants_2" }, "locked": { - "lastModified": 1687300684, - "narHash": "sha256-oBqbss0j+B568GoO3nF2BCoPEgPxUjxfZQGynW6mhEk=", + "lastModified": 1715201063, + "narHash": "sha256-LcLYV5CDhIiJs3MfxGZFKsXPR4PtfnY4toZ75GM+2Pw=", "owner": "divnix", "repo": "std", - "rev": "80e5792eae98353a97ab1e85f3fba2784e4a3690", + "rev": "b6924a7d37a46fc1dda8efe405040e27ecf1bbd6", "type": "github" }, "original": { @@ -14695,12 +11938,12 @@ "type": "github" } }, - "std_4": { + "std_3": { "inputs": { - "blank": "blank_4", - "devshell": "devshell_5", - "dmerge": "dmerge_4", - "flake-utils": "flake-utils_18", + "blank": "blank_3", + "devshell": "devshell_3", + "dmerge": "dmerge_3", + "flake-utils": "flake-utils_8", "makes": [ "cardano-node", "cardano-automation", @@ -14708,7 +11951,7 @@ "std", "blank" ], - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor", + "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_2", "microvm": [ "cardano-node", "cardano-automation", @@ -14716,10 +11959,10 @@ "std", "blank" ], - "n2c": "n2c_4", - "nixago": "nixago_4", - "nixpkgs": "nixpkgs_33", - "yants": "yants_4" + "n2c": "n2c_2", + "nixago": "nixago_2", + "nixpkgs": "nixpkgs_11", + "yants": "yants_3" }, "locked": { "lastModified": 1665513321, @@ -14735,23 +11978,23 @@ "type": "github" } }, - "std_5": { + "std_4": { "inputs": { "arion": [ "cardano-node", "std", "blank" ], - "blank": "blank_5", + "blank": "blank_4", "devshell": [ "cardano-node", "std", "blank" ], - "dmerge": "dmerge_5", + "dmerge": "dmerge_4", "haumea": "haumea_2", - "incl": "incl_4", - "lib": "lib", + "incl": "incl_2", + "lib": "lib_2", "makes": [ "cardano-node", "std", @@ -14772,15 +12015,15 @@ "std", "blank" ], - "nixpkgs": "nixpkgs_37", - "paisano": "paisano_3", - "paisano-tui": "paisano-tui_3", + "nixpkgs": "nixpkgs_15", + "paisano": "paisano_2", + "paisano-tui": "paisano-tui_2", "terranix": [ "cardano-node", "std", "blank" ], - "yants": "yants_5" + "yants": "yants_4" }, "locked": { "lastModified": 1715201063, @@ -14796,15 +12039,15 @@ "type": "github" } }, - "std_6": { + "std_5": { "inputs": { - "devshell": "devshell_11", - "dmerge": "dmerge_6", - "flake-utils": "flake-utils_28", - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_2", - "nixago": "nixago_5", - "nixpkgs": "nixpkgs_63", - "yants": "yants_7" + "devshell": "devshell_9", + "dmerge": "dmerge_5", + "flake-utils": "flake-utils_19", + "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_3", + "nixago": "nixago_3", + "nixpkgs": "nixpkgs_45", + "yants": "yants_6" }, "locked": { "lastModified": 1661370377, @@ -14820,15 +12063,15 @@ "type": "github" } }, - "std_7": { + "std_6": { "inputs": { - "devshell": "devshell_19", - "dmerge": "dmerge_7", - "flake-utils": "flake-utils_44", - "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_3", - "nixago": "nixago_6", - "nixpkgs": "nixpkgs_93", - "yants": "yants_9" + "devshell": "devshell_17", + "dmerge": "dmerge_6", + "flake-utils": "flake-utils_35", + "mdbook-kroki-preprocessor": "mdbook-kroki-preprocessor_4", + "nixago": "nixago_4", + "nixpkgs": "nixpkgs_75", + "yants": "yants_8" }, "locked": { "lastModified": 1661367957, @@ -14844,11 +12087,11 @@ "type": "github" } }, - "std_8": { + "std_7": { "inputs": { - "devshell": "devshell_20", - "nixpkgs": "nixpkgs_96", - "yants": "yants_10" + "devshell": "devshell_18", + "nixpkgs": "nixpkgs_78", + "yants": "yants_9" }, "locked": { "lastModified": 1652784712, @@ -14924,21 +12167,6 @@ "type": "github" } }, - "stdlib_13": { - "locked": { - "lastModified": 1590026685, - "narHash": "sha256-E5INrVvYX/P/UpcoUFDAsuHem+lsqT+/teBs9O7oc9Q=", - "owner": "manveru", - "repo": "nix-lib", - "rev": "99088cf7febcdb21afd375a335dcafa959bef3ed", - "type": "github" - }, - "original": { - "owner": "manveru", - "repo": "nix-lib", - "type": "github" - } - }, "stdlib_2": { "locked": { "lastModified": 1590026685, @@ -15149,10 +12377,25 @@ "type": "github" } }, + "systems_7": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tailwind-haskell": { "inputs": { - "flake-utils": "flake-utils_39", - "nixpkgs": "nixpkgs_87" + "flake-utils": "flake-utils_30", + "nixpkgs": "nixpkgs_69" }, "locked": { "lastModified": 1654211622, @@ -15169,38 +12412,27 @@ "type": "github" } }, - "terraform-providers": { - "inputs": { - "nixpkgs": "nixpkgs_12" - }, - "locked": { - "lastModified": 1695893013, - "narHash": "sha256-+5EuXNXwxpTiOEGCbZWtZCU75WcVwnS89heLa5xJ2K0=", - "owner": "nix-community", - "repo": "nixpkgs-terraform-providers-bin", - "rev": "6c6865ae6f9bff7aaa4e86c875f520f2aca65c0d", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs-terraform-providers-bin", - "type": "github" - } - }, "terranix": { "inputs": { "bats-assert": "bats-assert", "bats-support": "bats-support", - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_13", + "flake-utils": "flake-utils_15", + "nixpkgs": [ + "db-sync", + "cardano-world", + "bitte", + "capsules", + "bitte", + "blank" + ], "terranix-examples": "terranix-examples" }, "locked": { - "lastModified": 1684906298, - "narHash": "sha256-pNuJxmVMGbBHw7pa+Bx0HY0orXIXoyyAXOKuQ1zpfus=", + "lastModified": 1637158331, + "narHash": "sha256-x5LEKtSkVq+D3BXHDBOb2wdCLxAhVmXIWONRi9lxDPg=", "owner": "terranix", "repo": "terranix", - "rev": "c0dd15076856c6cb425795b8c7d5d37d3a1e922a", + "rev": "34198bb154af86d2a559446f10d7339e53126abe", "type": "github" }, "original": { @@ -15254,32 +12486,15 @@ "type": "github" } }, - "terranix-examples_4": { - "locked": { - "lastModified": 1636300201, - "narHash": "sha256-0n1je1WpiR6XfCsvi8ZK7GrpEnMl+DpwhWaO1949Vbc=", - "owner": "terranix", - "repo": "terranix-examples", - "rev": "a934aa1cf88f6bd6c6ddb4c77b77ec6e1660bd5e", - "type": "github" - }, - "original": { - "owner": "terranix", - "repo": "terranix-examples", - "type": "github" - } - }, "terranix_2": { "inputs": { "bats-assert": "bats-assert_2", "bats-support": "bats-support_2", - "flake-utils": "flake-utils_24", + "flake-utils": "flake-utils_20", "nixpkgs": [ "db-sync", "cardano-world", "bitte", - "capsules", - "bitte", "blank" ], "terranix-examples": "terranix-examples_2" @@ -15302,34 +12517,7 @@ "inputs": { "bats-assert": "bats-assert_3", "bats-support": "bats-support_3", - "flake-utils": "flake-utils_29", - "nixpkgs": [ - "db-sync", - "cardano-world", - "bitte", - "blank" - ], - "terranix-examples": "terranix-examples_3" - }, - "locked": { - "lastModified": 1637158331, - "narHash": "sha256-x5LEKtSkVq+D3BXHDBOb2wdCLxAhVmXIWONRi9lxDPg=", - "owner": "terranix", - "repo": "terranix", - "rev": "34198bb154af86d2a559446f10d7339e53126abe", - "type": "github" - }, - "original": { - "owner": "terranix", - "repo": "terranix", - "type": "github" - } - }, - "terranix_4": { - "inputs": { - "bats-assert": "bats-assert_4", - "bats-support": "bats-support_4", - "flake-utils": "flake-utils_35", + "flake-utils": "flake-utils_26", "nixpkgs": [ "db-sync", "cardano-world", @@ -15337,64 +12525,23 @@ "bitte", "blank" ], - "terranix-examples": "terranix-examples_4" - }, - "locked": { - "lastModified": 1637158331, - "narHash": "sha256-x5LEKtSkVq+D3BXHDBOb2wdCLxAhVmXIWONRi9lxDPg=", - "owner": "terranix", - "repo": "terranix", - "rev": "34198bb154af86d2a559446f10d7339e53126abe", - "type": "github" - }, - "original": { - "owner": "terranix", - "repo": "terranix", - "type": "github" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": "nixpkgs_5" - }, - "locked": { - "lastModified": 1683117219, - "narHash": "sha256-IyNRNRxw0slA3VQySVA7QPXHMOxlbx0ePWvj9oln+Wk=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "c8c3731dc404f837f38f89c2c5ffc2afc02e249d", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "cardano-nix", - "cardano-db-sync", - "cardano-parts", - "nixpkgs" - ] + "terranix-examples": "terranix-examples_3" }, "locked": { - "lastModified": 1691440708, - "narHash": "sha256-c7Cc08vJ0IPFgIERpTdO2xvDHQNL7Uf5iXT0GlYO6vo=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "2a535809ac5c9a32288f4d3b938296e056d948cc", + "lastModified": 1637158331, + "narHash": "sha256-x5LEKtSkVq+D3BXHDBOb2wdCLxAhVmXIWONRi9lxDPg=", + "owner": "terranix", + "repo": "terranix", + "rev": "34198bb154af86d2a559446f10d7339e53126abe", "type": "github" }, "original": { - "owner": "numtide", - "repo": "treefmt-nix", + "owner": "terranix", + "repo": "terranix", "type": "github" } }, - "treefmt-nix_3": { + "treefmt-nix": { "inputs": { "nixpkgs": [ "cardano-nix", @@ -15418,42 +12565,21 @@ "tullia": { "inputs": { "nix-nomad": "nix-nomad", - "nix2container": "nix2container_2", - "nixpkgs": "nixpkgs_20", - "std": "std" - }, - "locked": { - "lastModified": 1675695930, - "narHash": "sha256-B7rEZ/DBUMlK1AcJ9ajnAPPxqXY6zW2SBX+51bZV0Ac=", - "owner": "input-output-hk", - "repo": "tullia", - "rev": "621365f2c725608f381b3ad5b57afef389fd4c31", - "type": "github" - }, - "original": { - "owner": "input-output-hk", - "repo": "tullia", - "type": "github" - } - }, - "tullia_2": { - "inputs": { - "nix-nomad": "nix-nomad_2", - "nix2container": "nix2container_3", + "nix2container": "nix2container", "nixpkgs": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "cardano-automation", "nixpkgs" ], - "std": "std_2" + "std": "std" }, "locked": { - "lastModified": 1684859161, - "narHash": "sha256-wOKutImA7CRL0rN+Ng80E72fD5FkVub7LLP2k9NICpg=", + "lastModified": 1668711738, + "narHash": "sha256-CBjky16o9pqsGE1bWu6nRlRajgSXMEk+yaFQLibqXcE=", "owner": "input-output-hk", "repo": "tullia", - "rev": "2964cff1a16eefe301bdddb508c49d94d04603d6", + "rev": "ead1f515c251f0e060060ef0e2356a51d3dfe4b0", "type": "github" }, "original": { @@ -15462,16 +12588,16 @@ "type": "github" } }, - "tullia_3": { + "tullia_2": { "inputs": { - "nix-nomad": "nix-nomad_3", - "nix2container": "nix2container_5", + "nix-nomad": "nix-nomad_2", + "nix2container": "nix2container_2", "nixpkgs": [ "cardano-node", "cardano-automation", "nixpkgs" ], - "std": "std_4" + "std": "std_3" }, "locked": { "lastModified": 1668711738, @@ -15487,11 +12613,11 @@ "type": "github" } }, - "tullia_4": { + "tullia_3": { "inputs": { - "nix2container": "nix2container_7", - "nixpkgs": "nixpkgs_95", - "std": "std_8" + "nix2container": "nix2container_4", + "nixpkgs": "nixpkgs_77", + "std": "std_7" }, "locked": { "lastModified": 1657811465, @@ -15526,36 +12652,6 @@ } }, "utils_10": { - "locked": { - "lastModified": 1601282935, - "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "588973065fce51f4763287f0fda87a174d78bf48", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "utils_11": { - "locked": { - "lastModified": 1633020561, - "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", - "owner": "kreisys", - "repo": "flake-utils", - "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", - "type": "github" - }, - "original": { - "owner": "kreisys", - "repo": "flake-utils", - "type": "github" - } - }, - "utils_12": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15570,7 +12666,7 @@ "type": "github" } }, - "utils_13": { + "utils_11": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -15585,7 +12681,7 @@ "type": "github" } }, - "utils_14": { + "utils_12": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15600,7 +12696,7 @@ "type": "github" } }, - "utils_15": { + "utils_13": { "locked": { "lastModified": 1637014545, "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", @@ -15615,7 +12711,7 @@ "type": "github" } }, - "utils_16": { + "utils_14": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15630,7 +12726,7 @@ "type": "github" } }, - "utils_17": { + "utils_15": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15645,7 +12741,7 @@ "type": "github" } }, - "utils_18": { + "utils_16": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -15660,7 +12756,7 @@ "type": "github" } }, - "utils_19": { + "utils_17": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15675,22 +12771,22 @@ "type": "github" } }, - "utils_2": { + "utils_18": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", + "lastModified": 1633020561, + "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", + "owner": "kreisys", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", "type": "github" }, "original": { - "owner": "numtide", + "owner": "kreisys", "repo": "flake-utils", "type": "github" } }, - "utils_20": { + "utils_19": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15705,22 +12801,22 @@ "type": "github" } }, - "utils_21": { + "utils_2": { "locked": { - "lastModified": 1633020561, - "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", - "owner": "kreisys", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", "repo": "flake-utils", - "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { - "owner": "kreisys", + "owner": "numtide", "repo": "flake-utils", "type": "github" } }, - "utils_22": { + "utils_20": { "locked": { "lastModified": 1644229661, "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", @@ -15735,7 +12831,7 @@ "type": "github" } }, - "utils_23": { + "utils_21": { "locked": { "lastModified": 1637014545, "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", @@ -15750,7 +12846,7 @@ "type": "github" } }, - "utils_24": { + "utils_22": { "locked": { "lastModified": 1601282935, "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", @@ -15765,7 +12861,7 @@ "type": "github" } }, - "utils_25": { + "utils_23": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15780,7 +12876,7 @@ "type": "github" } }, - "utils_26": { + "utils_24": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15795,7 +12891,7 @@ "type": "github" } }, - "utils_27": { + "utils_25": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -15810,7 +12906,7 @@ "type": "github" } }, - "utils_28": { + "utils_26": { "locked": { "lastModified": 1633020561, "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", @@ -15825,7 +12921,7 @@ "type": "github" } }, - "utils_29": { + "utils_27": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -15841,12 +12937,15 @@ } }, "utils_3": { + "inputs": { + "systems": "systems_2" + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -15872,11 +12971,11 @@ }, "utils_5": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", "type": "github" }, "original": { @@ -15886,12 +12985,15 @@ } }, "utils_6": { + "inputs": { + "systems": "systems_6" + }, "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -15902,11 +13004,11 @@ }, "utils_7": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "lastModified": 1637014545, + "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", "type": "github" }, "original": { @@ -15916,15 +13018,12 @@ } }, "utils_8": { - "inputs": { - "systems": "systems_6" - }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1601282935, + "narHash": "sha256-WQAFV6sGGQxrRs3a+/Yj9xUYvhTpukQJIcMbIi7LCJ4=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "588973065fce51f4763287f0fda87a174d78bf48", "type": "github" }, "original": { @@ -15935,15 +13034,15 @@ }, "utils_9": { "locked": { - "lastModified": 1637014545, - "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", - "owner": "numtide", + "lastModified": 1633020561, + "narHash": "sha256-4uAiRqL9nP3d/NQ8VBqjQ5iZypHaM+X/FyWpXVXkwTA=", + "owner": "kreisys", "repo": "flake-utils", - "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", + "rev": "2923532a276a5595ee64376ec1b3db6ed8503c52", "type": "github" }, "original": { - "owner": "numtide", + "owner": "kreisys", "repo": "flake-utils", "type": "github" } @@ -15986,55 +13085,7 @@ "inputs": { "nixpkgs": [ "cardano-nix", - "cardano-node-8.1.1", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1667096281, - "narHash": "sha256-wRRec6ze0gJHmGn6m57/zhz/Kdvp9HS4Nl5fkQ+uIuA=", - "owner": "divnix", - "repo": "yants", - "rev": "d18f356ec25cb94dc9c275870c3a7927a10f8c3c", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "yants", - "type": "github" - } - }, - "yants_10": { - "inputs": { - "nixpkgs": [ - "db-sync", - "cardano-world", - "tullia", - "std", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1645126146, - "narHash": "sha256-XQ1eg4gzXoc7Tl8iXak1uCt3KnsTyxqPtLE+vOoDnrQ=", - "owner": "divnix", - "repo": "yants", - "rev": "77df2be1b3cce9f571c6cf451f786b266a6869cc", - "type": "github" - }, - "original": { - "owner": "divnix", - "repo": "yants", - "type": "github" - } - }, - "yants_2": { - "inputs": { - "nixpkgs": [ - "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "cardano-automation", "tullia", "std", @@ -16042,11 +13093,11 @@ ] }, "locked": { - "lastModified": 1667096281, - "narHash": "sha256-wRRec6ze0gJHmGn6m57/zhz/Kdvp9HS4Nl5fkQ+uIuA=", + "lastModified": 1660507851, + "narHash": "sha256-BKjq7JnVuUR/xDtcv6Vm9GYGKAblisXrAgybor9hT/s=", "owner": "divnix", "repo": "yants", - "rev": "d18f356ec25cb94dc9c275870c3a7927a10f8c3c", + "rev": "0b895ca02a8fa72bad50b454cb3e7d8a66407c96", "type": "github" }, "original": { @@ -16055,14 +13106,13 @@ "type": "github" } }, - "yants_3": { + "yants_2": { "inputs": { "nixpkgs": [ "cardano-nix", - "cardano-node-8.7.3", + "cardano-node-92", "std", - "haumea", - "nixpkgs" + "lib" ] }, "locked": { @@ -16079,7 +13129,7 @@ "type": "github" } }, - "yants_4": { + "yants_3": { "inputs": { "nixpkgs": [ "cardano-node", @@ -16103,7 +13153,7 @@ "type": "github" } }, - "yants_5": { + "yants_4": { "inputs": { "nixpkgs": [ "cardano-node", @@ -16125,9 +13175,9 @@ "type": "github" } }, - "yants_6": { + "yants_5": { "inputs": { - "nixpkgs": "nixpkgs_54" + "nixpkgs": "nixpkgs_36" }, "locked": { "lastModified": 1645126146, @@ -16143,7 +13193,7 @@ "type": "github" } }, - "yants_7": { + "yants_6": { "inputs": { "nixpkgs": [ "db-sync", @@ -16167,9 +13217,32 @@ "type": "github" } }, + "yants_7": { + "inputs": { + "nixpkgs": "nixpkgs_71" + }, + "locked": { + "lastModified": 1645126146, + "narHash": "sha256-XQ1eg4gzXoc7Tl8iXak1uCt3KnsTyxqPtLE+vOoDnrQ=", + "owner": "divnix", + "repo": "yants", + "rev": "77df2be1b3cce9f571c6cf451f786b266a6869cc", + "type": "github" + }, + "original": { + "owner": "divnix", + "repo": "yants", + "type": "github" + } + }, "yants_8": { "inputs": { - "nixpkgs": "nixpkgs_89" + "nixpkgs": [ + "db-sync", + "cardano-world", + "std", + "nixpkgs" + ] }, "locked": { "lastModified": 1645126146, @@ -16190,6 +13263,7 @@ "nixpkgs": [ "db-sync", "cardano-world", + "tullia", "std", "nixpkgs" ] diff --git a/flake.nix b/flake.nix index 5e696ebdcd..f08f659c8f 100644 --- a/flake.nix +++ b/flake.nix @@ -41,6 +41,10 @@ # https://github.com/IntersectMBO/cardano-node/pull/5960 cardano-node.url = "github:input-output-hk/cardano-node/d7abccd4e90c38ff5cd4d6a7839689d888332056"; + # CLB emulator + # clb.url = "github:mlabs-haskell/clb/9dcbaec98efaef6bd4c8f46c329660fa436c1839"; + clb.url = "/home/euonymos/src/mlabs/clb"; + # Repository with network parameters # NOTE(bladyjoker): Cardano configurations (yaml/json) often change format and break, that's why we pin to a specific known version. cardano-configurations = { @@ -51,7 +55,7 @@ # Get Ogmios and Kupo from cardano-nix cardano-nix = { - url = "github:mlabs-haskell/cardano.nix"; + url = "/home/euonymos/src/mlabs/cardano.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -78,6 +82,7 @@ , nixpkgs-arion , cardano-configurations , cardano-node + , clb , ... }@inputs: let @@ -85,7 +90,7 @@ darwinSystems = [ "x86_64-darwin" "aarch64-darwin" ]; supportedSystems = linuxSystems ++ darwinSystems; - ogmiosVersion = "6.5.0"; + ogmiosVersion = "6.8.0"; kupoVersion = "2.9.0"; perSystem = nixpkgs.lib.genAttrs supportedSystems; @@ -288,6 +293,7 @@ cardano-testnet = cardano-node.packages.${system}.cardano-testnet; cardano-node = cardano-node.packages.${system}.cardano-node; cardano-cli = cardano-node.packages.${system}.cardano-cli; + clb = clb.packages.${system}."socket-emulator:exe:cardano-node-socket-emulator"; kupo = cardano-nix.packages.${system}."kupo-${kupoVersion}"; cardano-db-sync = inputs.db-sync.packages.${system}.cardano-db-sync; blockfrost-backend-ryo = inputs.blockfrost.packages.${system}.blockfrost-backend-ryo; diff --git a/nix/default.nix b/nix/default.nix index 731cb9b6dd..1c818a2f2e 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -136,11 +136,13 @@ let pkgs.cardano-testnet pkgs.cardano-node pkgs.cardano-cli + pkgs.clb ] ) ) ]; shellHook = '' + export CARDANO_NODE=${pkgs.clb}/bin/cardano-node-socket-emulator export NODE_PATH="${nodeModules}/lib/node_modules" ln -sfn $NODE_PATH node_modules export PATH="${nodeModules}/bin:$PATH" diff --git a/src/Internal/QueryM/Ogmios.purs b/src/Internal/QueryM/Ogmios.purs index cad1030eeb..a12c339b5b 100644 --- a/src/Internal/QueryM/Ogmios.purs +++ b/src/Internal/QueryM/Ogmios.purs @@ -86,6 +86,7 @@ import Aeson , fromArray , fromString , getField + , getFieldOptional , isNull , stringifyAeson , (.:) @@ -527,9 +528,12 @@ instance DecodeAeson OgmiosEraSummaries where -- Null, so we want to fail if the field is absent but make Null value -- acceptable in presence of the field (hence why "end" is wrapped in -- `Maybe`). - end' <- getField o "end" - end <- - if isNull end' then pure Nothing else Just <$> decodeEraSummaryTime end' + end'' <- getFieldOptional o "end" + end <- case end'' of + Nothing -> pure Nothing + Just end' -> if isNull end' + then pure Nothing + else Just <$> decodeEraSummaryTime end' parameters <- decodeEraSummaryParameters =<< getField o "parameters" pure $ wrap { start, end, parameters } diff --git a/src/Internal/Testnet/Server.purs b/src/Internal/Testnet/Server.purs index 5611f445f7..66a297c47e 100644 --- a/src/Internal/Testnet/Server.purs +++ b/src/Internal/Testnet/Server.purs @@ -282,14 +282,16 @@ spawnCardanoTestnet :: FilePath -> TestnetClusterConfig -> Aff ManagedProcess spawnCardanoTestnet workdir params = do env <- liftEffect Node.Process.getEnv let + envP = Object.fromFoldable + [ "TMPDIR" /\ workdir + ] env' = Object.fromFoldable [ "CARDANO_CLI" /\ "cardano-cli" , "CARDANO_NODE" /\ "cardano-node" - , "TMPDIR" /\ workdir ] opts = defaultSpawnOptions { cwd = Just workdir - , env = Just $ Object.union env' env + , env = Just $ Object.union envP $ Object.union env env' , detached = true } spawn "cardano-testnet" options opts Nothing From 7c3844ba472c715672612f9841c163576ceb7b0b Mon Sep 17 00:00:00 2001 From: euonymos Date: Wed, 30 Oct 2024 19:05:44 -0600 Subject: [PATCH 02/18] chore: format + changelog --- CHANGELOG.md | 16 ++++++++++++++++ NOTES.md | 8 -------- src/Internal/QueryM/Ogmios.purs | 4 ++-- 3 files changed, 18 insertions(+), 10 deletions(-) delete mode 100644 NOTES.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e656e608f..e43f90faf8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -83,6 +83,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +## Unreleased version + +- [CLB emulator](https://github.com/mlabs-haskell/clb) added so you can use it instead of +`cardano-node` within `cardano-testnet` in test cases whern emulator's features are enough. +- TODO: implement bt-ref example +- TODO: add a flag to choose between cardano-node and clb +- TODO: Fix red testnet tests: + * Get ChainTip + * wait for slot far in the future + * Getting transaction metadata + * Query for current time and era summaries + * acquireMempoolSnapshot + * fetchMempoolTXs + * mempoolSnapshotSizeAndCapacity + + ## [v9.3.1] ### Fixed diff --git a/NOTES.md b/NOTES.md deleted file mode 100644 index fa27043f19..0000000000 --- a/NOTES.md +++ /dev/null @@ -1,8 +0,0 @@ -Curently failing 7 tests are: -* Get ChainTip -* wait for slot far in the future -* Getting transaction metadata -* Query for current time and era summaries -* acquireMempoolSnapshot -* fetchMempoolTXs -* mempoolSnapshotSizeAndCapacity diff --git a/src/Internal/QueryM/Ogmios.purs b/src/Internal/QueryM/Ogmios.purs index a12c339b5b..25bb59c728 100644 --- a/src/Internal/QueryM/Ogmios.purs +++ b/src/Internal/QueryM/Ogmios.purs @@ -531,8 +531,8 @@ instance DecodeAeson OgmiosEraSummaries where end'' <- getFieldOptional o "end" end <- case end'' of Nothing -> pure Nothing - Just end' -> if isNull end' - then pure Nothing + Just end' -> + if isNull end' then pure Nothing else Just <$> decodeEraSummaryTime end' parameters <- decodeEraSummaryParameters =<< getField o "parameters" pure $ wrap { start, end, parameters } From b4dcdfe38006185eea6dc6ba4a38d4f9ca8848f7 Mon Sep 17 00:00:00 2001 From: euonymos Date: Wed, 6 Nov 2024 13:29:47 -0600 Subject: [PATCH 03/18] feat: option to preserve temp folder --- CHANGELOG.md | 1 + flake.lock | 9 +++++---- src/Contract/Test/Testnet.purs | 1 + src/Internal/Test/E2E/Runner.purs | 1 + src/Internal/Testnet/Contract.purs | 9 ++++++++- src/Internal/Testnet/Types.purs | 1 + 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e43f90faf8..6b2a9c7626 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +- [Unreleased version](#unreleased-version) - [[v9.3.1]](#v931) - [Fixed](#fixed) - [[v9.3.0]](#v930) diff --git a/flake.lock b/flake.lock index dc9ea56e27..8a716ac038 100644 --- a/flake.lock +++ b/flake.lock @@ -2020,10 +2020,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "dirtyRev": "8bbc254f87bfa464bd7ed08ebbf87c5c81ee92c8-dirty", - "dirtyShortRev": "8bbc254-dirty", - "lastModified": 1730316899, - "narHash": "sha256-/BObIE5YnSDXA9G5Uk/lEVNWYHXAGO/ODaoIhHOjICg=", + "lastModified": 1730829972, + "narHash": "sha256-YfDBCeR0gMbDaOAT9i+DcA/DFqXiTmVTR4y1rex2ihw=", + "ref": "refs/heads/>euonymos/mimic-node-cli", + "rev": "ae6af923093ad2db08af4376e38e44f55e8526d4", + "revCount": 139, "type": "git", "url": "file:///home/euonymos/src/mlabs/clb" }, diff --git a/src/Contract/Test/Testnet.purs b/src/Contract/Test/Testnet.purs index ade0ca6409..8ff331ec80 100644 --- a/src/Contract/Test/Testnet.purs +++ b/src/Contract/Test/Testnet.purs @@ -68,4 +68,5 @@ defaultTestnetConfig = , slotLength: Seconds 0.1 , epochSize: Nothing } + , preserveTmpFolder: true } diff --git a/src/Internal/Test/E2E/Runner.purs b/src/Internal/Test/E2E/Runner.purs index c560f59e73..20be1343cd 100644 --- a/src/Internal/Test/E2E/Runner.purs +++ b/src/Internal/Test/E2E/Runner.purs @@ -219,6 +219,7 @@ buildLocalTestnetConfig options = , slotLength: Seconds 0.05 , epochSize: Nothing } + , preserveTmpFolder: true } -- | Plutip does not generate private stake keys for us, so we make one and diff --git a/src/Internal/Testnet/Contract.purs b/src/Internal/Testnet/Contract.purs index 98180a48d3..d81e677e42 100644 --- a/src/Internal/Testnet/Contract.purs +++ b/src/Internal/Testnet/Contract.purs @@ -112,9 +112,16 @@ withTestnetContractEnv -> Aff a withTestnetContractEnv cfg distr cont = do cleanupRef <- liftEffect $ Ref.new mempty + cleanupRefEmpty <- liftEffect $ Ref.new mempty Aff.bracket (try $ startTestnetContractEnv cfg distr cleanupRef) - (const $ runCleanup cleanupRef) + ( let + cleanupRef' = + if cfg.preserveTmpFolder then cleanupRefEmpty + else cleanupRef + in + const $ runCleanup cleanupRef' + ) $ liftEither >=> \{ env, wallets, printLogs } -> whenError printLogs (cont env wallets) diff --git a/src/Internal/Testnet/Types.purs b/src/Internal/Testnet/Types.purs index ea735e05c4..f371d5b254 100644 --- a/src/Internal/Testnet/Types.purs +++ b/src/Internal/Testnet/Types.purs @@ -37,6 +37,7 @@ type TestnetConfig = , suppressLogs :: Boolean , hooks :: Hooks , clusterConfig :: TestnetClusterConfig + , preserveTmpFolder :: Boolean } type TestnetClusterConfig = From d7711c5e0795eb68f727b080b41a649155672bc2 Mon Sep 17 00:00:00 2001 From: euonymos Date: Thu, 14 Nov 2024 14:15:28 -0600 Subject: [PATCH 04/18] feat: placeBet operation draft --- test/Testnet/BetRef/Operations.purs | 326 ++++++++++++++++++++++++++++ test/Testnet/BetRef/Types.purs | 151 +++++++++++++ 2 files changed, 477 insertions(+) create mode 100644 test/Testnet/BetRef/Operations.purs create mode 100644 test/Testnet/BetRef/Types.purs diff --git a/test/Testnet/BetRef/Operations.purs b/test/Testnet/BetRef/Operations.purs new file mode 100644 index 0000000000..bd532e27c2 --- /dev/null +++ b/test/Testnet/BetRef/Operations.purs @@ -0,0 +1,326 @@ +module Test.Testnet.BetRef.Operations where + +import Contract.Prelude +import Prelude + +import Cardano.FromData (fromData) +-- import Cardano.Types.TransactionOutput (TransactionOutput(TransactionOutput)) +import Cardano.Plutus.Types.Value as Value +-- import Cardano.Transaction.Builder +-- ( OutputWitness(PlutusScriptOutput) +-- , RefInputAction(ReferenceInput) +-- , ScriptWitness(ScriptReference) +-- , TransactionBuilderStep(Pay, SpendOutput) +-- ) +import Cardano.Types + ( Credential(ScriptHashCredential) + , OutputDatum(OutputDatum) + , PaymentCredential(PaymentCredential) + , PaymentPubKeyHash + , Transaction + ) +import Cardano.Types.Address (getPaymentCredential) +import Cardano.Types.Credential (asPubKeyHash) +import Cardano.Types.OutputDatum (outputDatumDatum) +import Cardano.Types.RedeemerDatum (RedeemerDatum(RedeemerDatum)) +import Cardano.Types.TransactionUnspentOutput + ( TransactionUnspentOutput(TransactionUnspentOutput) + ) +import Contract.Address (Address, mkAddress) +import Contract.Log (logDebug') +import Contract.Monad (Contract) +import Contract.PlutusData (toData) +import Contract.ScriptLookups (ScriptLookups) +import Contract.ScriptLookups (validator) +import Contract.Scripts (Validator, validatorHash) +import Contract.Time (POSIXTimeRange) +import Contract.Transaction + ( TransactionInput + , TransactionOutput(TransactionOutput) + , balanceTx + , buildTx + ) +import Contract.TxConstraints + ( DatumPresence(DatumInline) + , InputWithScriptRef(RefInput) + , TxConstraints + ) +import Contract.TxConstraints + ( mustBeSignedBy + , mustPayToScript + , mustSpendScriptOutputUsingScriptRef + , mustValidateIn + ) +import Contract.UnbalancedTx (mkUnbalancedTx) +import Contract.Utxos (getUtxo) +import Contract.Value (Value, add) +import Control.Monad.Error.Class (liftMaybe) +import Ctl.Internal.Types.Interval (from) as Interval +import Data.List (List, singleton) +import Data.Map as Map +import Data.Maybe (Maybe) +import Data.Unit (Unit, unit) +import Effect.Exception (error) +import Test.Testnet.BetRef.Types + ( BetRefAction(Bet) + , BetRefDatum(BetRefDatum) + , BetRefParams + , OracleAnswerDatum + ) + +-------------------------------------------------------------------------------- +-- Operations +-------------------------------------------------------------------------------- + +-- | Operation to place bet. +placeBet + :: + -- | Reference Script output. + TransactionInput + -> + -- | Script + Validator + -> + -- | Validator Params. + BetRefParams + -> + -- | Guess. + OracleAnswerDatum + -> + -- | Bet amount to place. + Value + -> + -- | Own address. + Address + -> + -- | Reference to previous bets UTxO (if any). + Maybe TransactionInput + -> Contract Transaction +placeBet refScript script brp guess bet ownAddr mPreviousBetsUtxoRef = do + logDebug' $ "ownAddr: " <> show ownAddr + logDebug' $ "refOut: " <> show mPreviousBetsUtxoRef + + pkh <- liftMaybe (error "Error decoding includeDatum") + (getPaymentCredential ownAddr >>= unwrap >>> asPubKeyHash >>= wrap >>> pure) + + let vhash = validatorHash script + + -- betAddr <- mkAddress + -- (PaymentCredential $ ScriptHashCredential vhash) + -- Nothing + + case mPreviousBetsUtxoRef of + -- This is the first bet. + Nothing -> do + let + datum = toData $ BetRefDatum + { brdBets: singleton (pkh /\ guess) + , brdPreviousBet: Value.fromCardano bet + } + + constraints :: TxConstraints + constraints = mconcat + [ mustPayToScript vhash datum DatumInline bet + ] + + lookups :: ScriptLookups + lookups = mconcat + [ validator script + ] + + unbalancedTx /\ _utxosMap <- mkUnbalancedTx lookups constraints + balancedTx <- balanceTx unbalancedTx Map.empty mempty + pure balancedTx + + -- Placing a next nbet, so we need to prepend it to existing ones. + Just previousBetsUtxoRef -> do + previousUtxo <- liftMaybe (error "Cannot find UTxO by ref") + =<< getUtxo previousBetsUtxoRef + logDebug' $ "1. previousUtxo: " <> show previousUtxo + let previousValue = (unwrap previousUtxo).amount + dat :: BetRefDatum <- + liftMaybe (error "Previous bet datum is not present") + $ (unwrap previousUtxo).datum >>= outputDatumDatum >>= fromData + let + (previousBets :: (List (PaymentPubKeyHash /\ OracleAnswerDatum))) = + (unwrap dat).brdBets + logDebug' $ "2. previous guesses: " <> show previousBets + -- betUntilSlot <- enclosingSlotFromTime' (timeFromPlutus $ brpBetUntil brp) + -- gyLogDebug' "" $ printf "3. bet until slot %s" (show betUntilSlot) + let + (txValidRange :: POSIXTimeRange) = Interval.from $ + (unwrap brp).brpBetUntil + let + datum = toData $ BetRefDatum + { brdBets: singleton (pkh /\ guess) <> (unwrap dat).brdBets + , brdPreviousBet: Value.fromCardano bet + } + newValue <- liftMaybe (error "Value calculation error") $ bet `add` + previousValue + let redeemer = toData $ Bet { guess: guess } + + refScriptUtxo <- liftMaybe (error "cannot find ref script utxo") + =<< getUtxo refScript + + let + refScriptTUO = + ( TransactionUnspentOutput + { input: refScript, output: refScriptUtxo } + ) + + constraints :: TxConstraints + constraints = mconcat + [ mustSpendScriptOutputUsingScriptRef + previousBetsUtxoRef + (RedeemerDatum redeemer) + (RefInput refScriptTUO) + , mustPayToScript vhash datum DatumInline newValue + , mustValidateIn txValidRange + , mustBeSignedBy pkh + ] + + lookups :: ScriptLookups + lookups = mconcat + [ validator script + ] + + unbalancedTx /\ _utxoMap <- mkUnbalancedTx lookups constraints + balancedTx <- balanceTx unbalancedTx Map.empty mempty + pure balancedTx + +-- -- | Operation to take UTxO corresponding to previous bets. +-- takeBets :: +-- forall m v. +-- ( HasCallStack +-- , GYTxQueryMonad m +-- , v `VersionIsGreaterOrEqual` 'PlutusV2 +-- ) => +-- -- | Reference Script output. +-- GYTxOutRef -> +-- -- | The script +-- GYValidator v -> +-- -- | Validator params. +-- BetRefParams -> +-- -- | Script UTxO to consume. +-- GYTxOutRef -> +-- -- | Own address. +-- GYAddress -> +-- -- | Oracle reference input. +-- GYTxOutRef -> +-- m (GYTxSkeleton v) +-- takeBets refScript script brp previousBetsUtxoRef ownAddr oracleRefInput = do +-- pkh <- addressToPubKeyHash' ownAddr +-- previousUtxo <- utxoAtTxOutRef' previousBetsUtxoRef +-- (_addr, _previousValue, dat) <- utxoDatum' previousUtxo +-- betRevealSlot <- enclosingSlotFromTime' (timeFromPlutus $ brpBetReveal brp) +-- return $ +-- input refScript (validatorToScript script) previousBetsUtxoRef dat Take +-- <> isInvalidBefore betRevealSlot +-- <> mustHaveRefInput oracleRefInput +-- <> mustBeSignedBy pkh + +-- -- | Utility builder +-- input :: +-- v `VersionIsGreaterOrEqual` 'PlutusV2 => +-- GYTxOutRef -> +-- GYScript v -> +-- GYTxOutRef -> +-- BetRefDatum -> +-- BetRefAction -> +-- GYTxSkeleton v +-- input refScript script inputRef dat red = +-- mustHaveInput +-- GYTxIn +-- { gyTxInTxOutRef = inputRef +-- , gyTxInWitness = +-- GYTxInWitnessScript +-- (GYInReference refScript script) +-- (datumFromPlutusData dat) +-- (redeemerFromPlutusData red) +-- } + +-- -------------------------------------------------------------------------------- +-- -- Additional operations +-- -------------------------------------------------------------------------------- + +-- {- | Queries the cuurent slot, calculates parameters and builds +-- a script that is ready to be deployed. +-- -} +-- mkScript :: +-- forall m (v :: PlutusVersion). +-- ( GYTxQueryMonad m +-- , SingPlutusVersionI v +-- , Api.IsPlutusScriptLanguage (PlutusVersionToApi v) +-- ) => +-- -- | How many slots betting should be open +-- Integer -> +-- -- | How many slots should pass before oracle reveals answer +-- Integer -> +-- -- | Oracle PKH +-- GYPubKeyHash -> +-- -- | Bet step value +-- GYValue -> +-- m (BetRefParams, GYValidator v) +-- mkScript betUntil betReveal oraclePkh betStep = do +-- currSlot <- slotToInteger <$> slotOfCurrentBlock +-- -- Calculate params for the script +-- let betUntil' = slotFromApi $ fromInteger $ currSlot + betUntil +-- let betReveal' = slotFromApi $ fromInteger $ currSlot + betReveal +-- betUntilTime <- slotToBeginTime betUntil' +-- betRevealTime <- slotToBeginTime betReveal' +-- let params = +-- BetRefParams +-- (pubKeyHashToPlutus oraclePkh) +-- (timeToPlutus betUntilTime) +-- (timeToPlutus betRevealTime) +-- (valueToPlutus betStep) +-- gyLogDebug' "" $ printf "Parameters: %s" (show params) +-- -- TODO: this might be improved once support for blueprints is merged. +-- let s = unsafePerformIO $ do +-- lookupEnv "AIKEN_BET_REF" >>= \case +-- Nothing -> pure $ mkBetRefValidator params +-- Just _ -> do +-- putStrLn "Using Aiken-based on-chain script" +-- mkBetRefValidatorExt params +-- pure (params, s) + +-- {- | Validator in question, obtained after giving required parameters. +-- This uses PlutusTx version of the validator +-- -} +-- mkBetRefValidator :: +-- forall (v :: PlutusVersion). +-- SingPlutusVersionI v => +-- BetRefParams -> +-- GYValidator v +-- mkBetRefValidator brp = validatorFromPlutus $ betRefValidator brp + +-- -- | Make a validator out of external UPLC envelope +-- mkBetRefValidatorExt :: +-- forall (v :: PlutusVersion). +-- SingPlutusVersionI v => +-- BetRefParams -> +-- IO (GYValidator v) +-- mkBetRefValidatorExt BetRefParams {..} = do +-- v <- readValidator @v "tests-unified/script/bet_ref_validator.plutus" +-- let (Api.PlutusScriptSerialised sbs) = validatorToApi v +-- let prog :: UPLCProgram = uncheckedDeserialiseUPLC sbs +-- let params = +-- Constr +-- 0 +-- [ toData brpOraclePkh +-- , toData brpBetUntil +-- , toData brpBetReveal +-- , toData brpBetStep -- TODO: might be flaky +-- ] +-- let args = [params] +-- let appliedProg = applyArguments prog args +-- -- print $ Api.pretty appliedProg +-- pure $ validatorFromSerialisedScript @v $ serialiseUPLC appliedProg + +-- type UPLCProgram = Program DeBruijn DefaultUni DefaultFun () + +-- applyArguments :: UPLCProgram -> [Data] -> UPLCProgram +-- applyArguments p args = +-- let termArgs = fmap ((,) () . PLC.mkConstant ()) args +-- apply t = PLC.mkIterApp t termArgs +-- in over UPLC.progTerm apply p diff --git a/test/Testnet/BetRef/Types.purs b/test/Testnet/BetRef/Types.purs new file mode 100644 index 0000000000..2bd8bdee6f --- /dev/null +++ b/test/Testnet/BetRef/Types.purs @@ -0,0 +1,151 @@ +module Test.Testnet.BetRef.Types where + +import Contract.Prelude +import Prelude + +import Cardano.Plutus.DataSchema + ( class HasPlutusSchema + , class UniqueIndices + , type (:+) + , type (:=) + , type (@@) + , ConsI + , I + , NilI + , PNil + , S + , Z + ) +import Cardano.Plutus.Types.Value as Plutus +import Cardano.Types (PaymentPubKeyHash) +import Contract.Numeric.BigNum as BigNum +import Contract.PlutusData + ( class FromData + , class ToData + , PlutusData(Constr, Integer) + , genericFromData + , genericToData + ) +import Ctl.Internal.Types.Interval (POSIXTime) +-- import Contract.Value (Value) +-- import Contract.PlutusData (PlutusData(Integer)) +import Data.List (List) +import JS.BigInt (BigInt) +import JS.BigInt as BigInt + +-- | Goals made my the concerned team. +type TeamGoals = BigInt + +-- | Match result given by the oracle. +-- In fact the name is misleading, since the very same type is +-- used in the datum BetRefDatum that represents a bet itself. +newtype OracleAnswerDatum = OracleAnswerDatum TeamGoals + +derive instance Eq OracleAnswerDatum +derive instance Generic OracleAnswerDatum _ +derive instance Newtype OracleAnswerDatum _ + +instance Show OracleAnswerDatum where + show = genericShow + +instance ToData OracleAnswerDatum where + toData (OracleAnswerDatum teamGoals) = + Constr (BigNum.fromInt 0) [ Integer teamGoals ] + +instance FromData OracleAnswerDatum where + fromData (Constr _ [ Integer teamGoals ]) = Just $ OracleAnswerDatum teamGoals + fromData _ = Nothing + +newtype BetRefParams = BetRefParams + { brpOraclePkh :: PaymentPubKeyHash + -- ^ Oracle's payment public key hash. This is needed to assert that UTxO being looked at indeed belongs to the Oracle. + , brpBetUntil :: POSIXTime + -- ^ Time until which bets can be placed. + , brpBetReveal :: POSIXTime + -- ^ Time at which Oracle will reveal the correct match result. + , brpBetStep :: Plutus.Value + -- ^ Each newly placed bet must be more than previous bet by `brpBetStep` amount. + } + +derive instance Newtype BetRefParams _ +derive instance Generic BetRefParams _ + +instance + HasPlutusSchema BetRefParams + ( "BetRefParams" + := + ( "brpOraclePkh" := I PaymentPubKeyHash + :+ "brpBetUntil" + := I POSIXTime + :+ "brpBetReveal" + := I POSIXTime + :+ "brpBetStep" + := I Plutus.Value + + :+ PNil + ) + @@ Z + :+ PNil + ) + +instance ToData BetRefParams where + toData = genericToData + +instance Show BetRefParams where + show = genericShow + +-- | List of guesses by users along with the maximum bet placed yet. A new guess gets /prepended/ to this list. Note that since we are always meant to increment previously placed bet with `brpBetStep`, the newly placed bet would necessarily be maximum (it would be foolish to initialize `brpBetStep` with some negative amounts). +newtype BetRefDatum = BetRefDatum + { brdBets :: List (PaymentPubKeyHash /\ OracleAnswerDatum) + , brdPreviousBet :: Plutus.Value + } + +derive instance Newtype BetRefDatum _ +derive instance Generic BetRefDatum _ + +instance + HasPlutusSchema BetRefDatum + ( "BetRefDatum" + := + ( "brdBets" := I (List (PaymentPubKeyHash /\ OracleAnswerDatum)) + :+ "brdPreviousBet" + := I Plutus.Value + :+ PNil + ) + @@ Z + :+ PNil + ) + +instance ToData BetRefDatum where + toData = genericToData + +instance FromData BetRefDatum where + fromData = genericFromData + +-- | Redeemer representing choices available to the user. +data BetRefAction + = -- | User makes a guess. + Bet { guess :: OracleAnswerDatum } + | -- | User takes the pot. + Take + +derive instance Generic BetRefAction _ + +instance + HasPlutusSchema BetRefAction + ( "Bet" + := + ( "guess" := I OracleAnswerDatum + :+ PNil + ) + @@ (S Z) + + :+ "Take" + := PNil + + @@ Z + :+ PNil + ) + +instance ToData BetRefAction where + toData = genericToData From 68e7d76c84efd0a149cd8230af6812d3f06be208 Mon Sep 17 00:00:00 2001 From: euonymos Date: Mon, 18 Nov 2024 17:20:52 -0600 Subject: [PATCH 05/18] feat: place first bet test is green --- flake.lock | 9 +- test/Testnet.purs | 42 ++-- test/Testnet/BetRef/BetRefValidator.js | 7 + test/Testnet/BetRef/BetRefValidator.purs | 41 ++++ test/Testnet/BetRef/Operations.purs | 67 +++--- test/Testnet/BetRef/Test.purs | 252 +++++++++++++++++++++++ test/Testnet/BetRef/Types.purs | 43 +++- 7 files changed, 388 insertions(+), 73 deletions(-) create mode 100644 test/Testnet/BetRef/BetRefValidator.js create mode 100644 test/Testnet/BetRef/BetRefValidator.purs create mode 100644 test/Testnet/BetRef/Test.purs diff --git a/flake.lock b/flake.lock index 8a716ac038..f4e0b8707d 100644 --- a/flake.lock +++ b/flake.lock @@ -2020,11 +2020,10 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1730829972, - "narHash": "sha256-YfDBCeR0gMbDaOAT9i+DcA/DFqXiTmVTR4y1rex2ihw=", - "ref": "refs/heads/>euonymos/mimic-node-cli", - "rev": "ae6af923093ad2db08af4376e38e44f55e8526d4", - "revCount": 139, + "dirtyRev": "080e2b4852f162d33e8a3d5e2faaa9b5400d878c-dirty", + "dirtyShortRev": "080e2b4-dirty", + "lastModified": 1730916256, + "narHash": "sha256-wVSdARdey5PszmmiMtpBibUaBsfOls43XqMUrWqvBRc=", "type": "git", "url": "file:///home/euonymos/src/mlabs/clb" }, diff --git a/test/Testnet.purs b/test/Testnet.purs index ad5fe4720e..ed59a54f3b 100644 --- a/test/Testnet.purs +++ b/test/Testnet.purs @@ -26,6 +26,7 @@ import Mote.Monad (mapTest) import Mote.TestPlanM as Utils import Test.Ctl.BalanceTx.ChangeGeneration as ChangeGeneration import Test.Ctl.QueryM.AffInterface as QueryM.AffInterface +import Test.Ctl.Testnet.BetRef.Test as BetRef import Test.Ctl.Testnet.Contract as Contract import Test.Ctl.Testnet.Contract.Assert as Assert import Test.Ctl.Testnet.Contract.Mnemonics as Mnemonics @@ -40,30 +41,31 @@ import Test.Spec.Runner (defaultConfig) -- Run with `npm run testnet-test` main :: Effect Unit main = interruptOnSignal SIGINT =<< launchAff do - let config = defaultTestnetConfig + let config = defaultTestnetConfig { suppressLogs = false } flip cancelWith (effectCanceler (exitCode 1)) do Utils.interpretWithConfig defaultConfig { timeout = Just $ Milliseconds 70_000.0, exit = true } $ group "cardano-testnet" do - testTestnetContracts config Mnemonics.suite - group "ExUnits - normal limits" do - testTestnetContracts config $ ExUnits.mkFailingSuite 8000 - testTestnetContracts config $ ExUnits.mkSuite 2550 - -- FIXME: group "ExUnits - relaxed limits" do - -- testTestnetContracts configWithMaxExUnits $ ExUnits.mkSuite 3000 - testTestnetContracts config Assert.suite - Logging.suite - -- FIXME: testStartPlutipCluster - testTestnetContracts config $ do - flip mapTest QueryM.AffInterface.suite - (noWallet <<< wrapQueryM) - ChangeGeneration.suite - Contract.suite - Gov.suite - UtxoDistribution.suite - testTestnetContracts config OgmiosMempool.suite - runTestnetTestPlan config SameWallets.suite --- FIXME: ClusterParameters.runTest + testTestnetContracts config BetRef.suite +-- testTestnetContracts config Mnemonics.suite +-- group "ExUnits - normal limits" do +-- testTestnetContracts config $ ExUnits.mkFailingSuite 8000 +-- testTestnetContracts config $ ExUnits.mkSuite 2550 +-- -- FIXME: group "ExUnits - relaxed limits" do +-- -- testTestnetContracts configWithMaxExUnits $ ExUnits.mkSuite 3000 +-- testTestnetContracts config Assert.suite +-- Logging.suite +-- -- FIXME: testStartPlutipCluster +-- testTestnetContracts config $ do +-- flip mapTest QueryM.AffInterface.suite +-- (noWallet <<< wrapQueryM) +-- ChangeGeneration.suite +-- Contract.suite +-- Gov.suite +-- UtxoDistribution.suite +-- testTestnetContracts config OgmiosMempool.suite +-- runTestnetTestPlan config SameWallets.suite +-- -- FIXME: ClusterParameters.runTest {- configWithMaxExUnits :: PlutipConfig diff --git a/test/Testnet/BetRef/BetRefValidator.js b/test/Testnet/BetRef/BetRefValidator.js new file mode 100644 index 0000000000..42b0d7028c --- /dev/null +++ b/test/Testnet/BetRef/BetRefValidator.js @@ -0,0 +1,7 @@ +export const betRefValidator = ` +{ + "type": "PlutusScriptV2", + "description": "Generated by Aiken", + "cborHex": "590de6590de301000032323232323232223232323232232322533300c32323232323232323232325333017300e30183754002264646464a666036602e60386ea80044c8c8c8c8c8c8c8c8c94c8ccc094c084c098dd500e89999919191919111192999817181518179baa00113232325333034303700213232325333034303030353754002264a66606a6062606c6ea80044c8c8c8c94ccc0f0c0fc0084c8c8c8c8c94ccc0f8cc080c09ccc1093010ad8799fd87980d87a80ff0033042302733042301a33042375005e97ae03304233303e4a298103d87a80004c0103d87980004bd7025eb80c07cc100dd500909919299982198230010a99982019baf374e660886052660886ea4004cc1100592f5c00086e9c02854ccc100c8cc078c8ccc004004ccc06ccc068044c0088c0b0cc11cdd4000a5eb80cc068cc064cc064040c0bc0140b8c0088c07ccc11cdd4000a5eb80888c0b8cc124dd3191998008008018011112999825801080089919980200218278019991191980080080291299982800089982899bb0375200800697adef6c601323232325333051337200100042660aa66ec0dd48040038028a99982899b8f0080021325333052304e305337540022660ac66ec0dd4804982b982a1baa0010041004303a33055323232325333055305130563754004264a6660ac609a60ae6ea80104cdd2a4008660b46ea0004cc168c16cc160dd500225eb80008dd6982d182b9baa0020011325333055304c30563754004264a6660ac60a460ae6ea80104cdd2a4008660b460b660b06ea8010cc168dd4000a5eb80008dd6982d182b9baa0020011630580023057305800133055007330550014bd7025eb804cc154cdd81ba9002001330060060033052003375c60a000460a800460a40026eb8c128004c12c004c1340092f5c097ae022253330470021001132333004004304b0033232323300100100522533304c001100313304d304e00133002002304f0013020375660900046eb8c118004c1240088c94ccc10cc0fc0044cdc4a40006eb4c120c114dd50010a999821981d000899b89375a6090608a6ea80092000132337126eb4c124c128004dd6982480098229baa00230433754002444646600200200444a666090002297adef6c601323304a33760608e002600c6eb4c120004cc00c00cc130008c12800454ccc100cdd79ba600e374c6602e01e66030605a01044646600200200444a66608e002297adef6c601323304933760608c0026ea0cdc0a40006eb4c11c004cc00c00cc12c008c1240045288b0b0b0b1bae30440013758604460806ea804858dd5982118218011bac3041001303d37540726606e004464660726eacc0f80088c8dd698200011bae303e001375c60780026606c006460680022c6eacc0f4004c0f4008dd6181d800981b9baa001163039303637540022c6464a66606a60300022603c660726074606e6ea80092f5c02a66606a60580022664464a666070605e60726ea80044c94ccc0f0004530103d87a8000130223303d303e0014bd701919800800a5eb80894ccc0f400452f5c026464a6660786066607a6ea80044cc0100100084cc100c104c0f8dd50009980200200119299981e180f981e9baa001132533303d3371e6e50dd98008038981319820800a5eb805300103d87a80003041303e37540022980103d87a8000301b303d3754608000460800022002646600200200644a6660780022980103d87a8000132323232533303d3372200e0042a66607a66e3c01c0084c098cc1040052f5c0298103d87a8000133006006003303e003375c60780046080004607c0026eacc0e8c0ecc0ecc0ecc0ecc0ecc0ecc0ecc0ecc0ecc0ecc0dcdd50049bae303a303737540042980103d87a8000303537540026026606a6ea800cdd5980e981a1baa301d303437540086eacc070c0ccdd50008b181a80099806980b18189baa301a30313754002006606660606ea800458cc054dd6180a18179baa00123375e602a60606ea800400c88ccc010008004888c94ccc0bd4ccc0c80045288a5014c0103d87a80001301833033374c00297ae0323330010010030022225333034002100113233300400430380033322323300100100522533303900113303a337606ea4010dd4001a5eb7bdb1804c8c8c8c94ccc0e8cdc800400109981f19bb037520106ea001c01454ccc0e8cdc7804001099299981d981b981e1baa00113303f337606ea4024c100c0f4dd5000802080219299981d981b8008a60103d87a8000130243303f375000297ae03370000e00226607c66ec0dd48011ba800133006006003375a60760066eb8c0e4008c0f4008c0ec004dd718198009bad3034001303600222323300100100322533302f00114bd6f7b630099191981919bb037520026e98cc014004dd5981800119802002181a0019bae302e001303100122232333001001004003222533303000210011323330040043034003333301c002375c605e0026eacc0c0004014c0c8008c004004894ccc0a800452f5c02660566052605800266004004605a0026054604e6ea8074c030c09cdd5005180618139baa01a133223232533302c302f00213232533302b3027302c37540022646464a6660626068004264a66605e602460606ea80044c8c8c8c8c8c94ccc0d4c0c4c0d8dd50008a99981a99b8f375c6074606e6ea80040a054ccc0d4cc05cc078cc0e4c078cc0e4c044cc0e4dd401225eb80cc0e4ccc0d528a60103d87a80004c0103d87980004bd701981ca6010ad8799fd87b80d87a80ff004bd70180b181b9baa00f13253330363032303737540022a66607266028603a60706ea8c084c0e0dd5181d981c1baa001010153330363301300d233712008600a6078607a60726ea80045288b0b0b1980e9bac301c3037375401e466ebcc074c0e0dd50008088b0b0b181c981b1baa301b30363754603e606c6ea801cc0040208c94ccc0d0cdc4000a4000266e0520000011001337020046eb4c0e0c0d4dd50009bad3036303337540046056002606860626ea800458c038c0c0dd5180c98181baa0011630320013300b3758602e605c6ea80188cdd7981918199819981998179baa3018302f3754002980103d87a800030303031302d37546060605a6ea800458cc0480048cdc79bae3030302d37540020066eb0c0b8c0acdd50138b1bae302d0013758601660526ea8004c030c09cdd5005180618139baa01a374a90011119198008008019129998150008a5113253330283004302d00213300300300114a0605a00244660066eb0c010c098dd5000919baf300c3027375400200644646600200200644a666050002297ae0132325333027300500213302b00233004004001133004004001302c002302a001230263027302700123025302630263026302630263026302600122323232323232325333027323253330293025302a375400229444c8c94ccc0acc088c0b0dd50018992999816181198169baa003132533302d00a133712004002266e20008004dd6981898171baa003002375a6060605a6ea800c00454ccc0a8c034c0acdd50010a5014a0605c605e004605a00266056605800a66056605860526ea8c0b00192f5c020022940c8c94ccc0a0c090c0a4dd50008a5013232533302a3021302b3754006264a666056604460586ea800c4c94ccc0b001c4cdc4800801099b88001002375a6060605a6ea800c008dd6981798161baa00300115333029300c302a3754004294452818169817001181600099815181580119815181598141baa302b302c0054bd7019b8848000c098dd51815181580098131baa3029302a00433710900018121baa3028302900130243754604e00460466ea8008c088dd50011b87480108c088c08cc08cc08cc08cc08cc08cc08cc08c004c080c074dd50008b199119802001119baf3004301f37540020046eb0c004c070dd51800980e1baa00f301f301c37540084603e00244646600200200644a66603e0022980103d87a800013232533301e300500213007330220024bd70099802002000981180118108009ba54800058c004c060dd50059180d980e00098009bab3019301a0042323300100100222533301900114bd6f7b6300999119191999804001801000911319190011919198008008019129998100008a4c264a6660420022a66603c60086eb4c080c08c008526161323232325333022337206eb8c08c010dd718118018a9998111804000899803803998130018010b0b1bad30230033026003302400230230023023001233301b30170014a0944dd5980d8019bae3019002301b00133002002301c0012222323300100100522533301b00113301c337606ea4014dd300225eb7bdb1804c8c8c8c94ccc070cdc800480109981019bb037520126e9802001454ccc070cdc7804801099299980e980c980f1baa001133021337606ea4028c088c07cdd5000802080219980380480400089981019bb037520046e98004cc01801800cdd5980e8019bae301b002301f002301d001375a602c002602c0046eb4c050004c050008dd7180900098071baa00b14984d958c94ccc02cc01c0044c8c94ccc040c04c0084c9263008001163011001300d37540062a66601660040022a66601c601a6ea800c5261616300b37540046e1d2002533300730033008375400a264646464a66601c6022004264649319804801119198059bab3010002232375a60240046eb8c040004dd7180700099804001918030008b1bab300f001300f0023758601a00260126ea80145894ccc01cc00cc020dd50008991919192999807180880109924c600c0022c601e002601e0046eb8c034004c024dd50008b12999803180118039baa00113232533300b300e002149858dd6980600098041baa00116370e90001119198008008019129998050008a4c26466006006601c00460066018002ae6955ceaab9e5573eae815d0aba21" +} +`; diff --git a/test/Testnet/BetRef/BetRefValidator.purs b/test/Testnet/BetRef/BetRefValidator.purs new file mode 100644 index 0000000000..620d8c0159 --- /dev/null +++ b/test/Testnet/BetRef/BetRefValidator.purs @@ -0,0 +1,41 @@ +module Test.Ctl.Testnet.BetRef.BetRefValidator + ( mkScript + ) where + +import Contract.Prelude hiding (apply) + +import Cardano.Plutus.ApplyArgs (applyArgs) +import Cardano.Types.PlutusScript (PlutusScript) +import Contract.Monad + ( Contract + , liftContractE + ) +import Contract.PlutusData (PlutusData, toData) +import Control.Monad.Error.Class (liftMaybe) +import Ctl.Internal.Cardano.TextEnvelope + ( decodeTextEnvelope + , plutusScriptFromEnvelope + ) +import Data.Array (singleton) as Array +import Effect.Exception (error) +import Test.Ctl.Testnet.BetRef.Types (BetRefParams) + +foreign import betRefValidator :: String + +mkScript :: BetRefParams -> Contract PlutusScript +mkScript ps = do + rawScript <- liftMaybe (error "error decoding validator's cbor") do + envelope <- decodeTextEnvelope betRefValidator + plutusScriptFromEnvelope envelope + liftContractE $ apply rawScript ps + +apply + :: PlutusScript + -> BetRefParams + -> Either String PlutusScript +apply rawScript ps = + let + scriptArgs :: Array PlutusData + scriptArgs = Array.singleton (toData ps) + in + applyArgs rawScript scriptArgs diff --git a/test/Testnet/BetRef/Operations.purs b/test/Testnet/BetRef/Operations.purs index bd532e27c2..2356d32c31 100644 --- a/test/Testnet/BetRef/Operations.purs +++ b/test/Testnet/BetRef/Operations.purs @@ -1,17 +1,10 @@ -module Test.Testnet.BetRef.Operations where +module Test.Ctl.Testnet.BetRef.Operations where import Contract.Prelude import Prelude import Cardano.FromData (fromData) --- import Cardano.Types.TransactionOutput (TransactionOutput(TransactionOutput)) import Cardano.Plutus.Types.Value as Value --- import Cardano.Transaction.Builder --- ( OutputWitness(PlutusScriptOutput) --- , RefInputAction(ReferenceInput) --- , ScriptWitness(ScriptReference) --- , TransactionBuilderStep(Pay, SpendOutput) --- ) import Cardano.Types ( Credential(ScriptHashCredential) , OutputDatum(OutputDatum) @@ -22,6 +15,7 @@ import Cardano.Types import Cardano.Types.Address (getPaymentCredential) import Cardano.Types.Credential (asPubKeyHash) import Cardano.Types.OutputDatum (outputDatumDatum) +import Cardano.Types.PlutusScript (PlutusScript, hash) import Cardano.Types.RedeemerDatum (RedeemerDatum(RedeemerDatum)) import Cardano.Types.TransactionUnspentOutput ( TransactionUnspentOutput(TransactionUnspentOutput) @@ -32,7 +26,6 @@ import Contract.Monad (Contract) import Contract.PlutusData (toData) import Contract.ScriptLookups (ScriptLookups) import Contract.ScriptLookups (validator) -import Contract.Scripts (Validator, validatorHash) import Contract.Time (POSIXTimeRange) import Contract.Transaction ( TransactionInput @@ -61,7 +54,7 @@ import Data.Map as Map import Data.Maybe (Maybe) import Data.Unit (Unit, unit) import Effect.Exception (error) -import Test.Testnet.BetRef.Types +import Test.Ctl.Testnet.BetRef.Types ( BetRefAction(Bet) , BetRefDatum(BetRefDatum) , BetRefParams @@ -74,47 +67,33 @@ import Test.Testnet.BetRef.Types -- | Operation to place bet. placeBet - :: - -- | Reference Script output. - TransactionInput - -> - -- | Script - Validator - -> - -- | Validator Params. - BetRefParams - -> - -- | Guess. - OracleAnswerDatum - -> - -- | Bet amount to place. - Value - -> - -- | Own address. - Address - -> - -- | Reference to previous bets UTxO (if any). - Maybe TransactionInput + :: TransactionInput + -- ^ Reference Script output. + -> PlutusScript + -- ^ Script + -> BetRefParams + -- ^ Betting parameters. + -> OracleAnswerDatum + -- ^ Bet's guess. + -> Value + -- ^ Bet amount to place. + -> PaymentPubKeyHash + -- ^ Bettor's PKH. + -> Maybe TransactionInput + -- ^ Reference to previous bets UTxO (if any). -> Contract Transaction -placeBet refScript script brp guess bet ownAddr mPreviousBetsUtxoRef = do - logDebug' $ "ownAddr: " <> show ownAddr +placeBet refScript script brp guess bet bettorPkh mPreviousBetsUtxoRef = do + logDebug' $ "bettorPkh: " <> show bettorPkh logDebug' $ "refOut: " <> show mPreviousBetsUtxoRef - pkh <- liftMaybe (error "Error decoding includeDatum") - (getPaymentCredential ownAddr >>= unwrap >>> asPubKeyHash >>= wrap >>> pure) - - let vhash = validatorHash script - - -- betAddr <- mkAddress - -- (PaymentCredential $ ScriptHashCredential vhash) - -- Nothing + let vhash = hash script case mPreviousBetsUtxoRef of -- This is the first bet. Nothing -> do let datum = toData $ BetRefDatum - { brdBets: singleton (pkh /\ guess) + { brdBets: singleton (bettorPkh /\ guess) , brdPreviousBet: Value.fromCardano bet } @@ -152,7 +131,7 @@ placeBet refScript script brp guess bet ownAddr mPreviousBetsUtxoRef = do (unwrap brp).brpBetUntil let datum = toData $ BetRefDatum - { brdBets: singleton (pkh /\ guess) <> (unwrap dat).brdBets + { brdBets: singleton (bettorPkh /\ guess) <> (unwrap dat).brdBets , brdPreviousBet: Value.fromCardano bet } newValue <- liftMaybe (error "Value calculation error") $ bet `add` @@ -176,7 +155,7 @@ placeBet refScript script brp guess bet ownAddr mPreviousBetsUtxoRef = do (RefInput refScriptTUO) , mustPayToScript vhash datum DatumInline newValue , mustValidateIn txValidRange - , mustBeSignedBy pkh + , mustBeSignedBy bettorPkh ] lookups :: ScriptLookups diff --git a/test/Testnet/BetRef/Test.purs b/test/Testnet/BetRef/Test.purs new file mode 100644 index 0000000000..18a96679bd --- /dev/null +++ b/test/Testnet/BetRef/Test.purs @@ -0,0 +1,252 @@ +module Test.Ctl.Testnet.BetRef.Test + ( suite + ) where + +import Contract.Prelude hiding (apply) +import Prelude + +import Cardano.Types (Transaction, TransactionHash, _body, _fee) +import Cardano.Types.BigNum as BigNum +import Cardano.Types.Credential (Credential(PubKeyHashCredential)) +import Cardano.Types.PlutusScript (PlutusScript, hash) +import Cardano.Types.ScriptHash (ScriptHash) +import Cardano.Types.ScriptRef (ScriptRef(PlutusScriptRef), getPlutusScript) +import Cardano.Wallet.Key + ( KeyWallet + , getPrivatePaymentKey + , getPrivateStakeKey + , privateKeyToPkh + , privateKeysToAddress + ) +import Contract.Address + ( Address + , PaymentPubKeyHash + , StakePubKeyHash + , getNetworkId + , mkAddress + ) +import Contract.Log (logInfo') +import Contract.Monad (Contract) +import Contract.ScriptLookups (ScriptLookups) +import Contract.ScriptLookups (validator) +import Contract.Scripts (validatorHash) +import Contract.Test (ContractTest, InitialUTxOs, withKeyWallet, withWallets) +import Contract.Test.Assert + ( checkLossAtAddress + , collectAssertionFailures + , label + ) +import Contract.Transaction + ( TransactionInput + , TransactionOutput + , awaitTxConfirmed + , balanceTx + , signTransaction + , submit + ) +import Contract.TxConstraints + ( TxConstraints + ) +import Contract.TxConstraints + ( mustPayToPubKeyWithScriptRef + ) +import Contract.UnbalancedTx (mkUnbalancedTx) +import Contract.Utxos (utxosAt) +import Contract.Value (Value, empty, lovelaceValueOf) +import Control.Monad.Error.Class (liftMaybe) +import Control.Monad.Trans.Class (lift) +import Ctl.Examples.ExUnits as ExUnits +import Data.Array (head) +import Data.Either (isLeft) +import Data.Lens (view) +import Data.Map (Map) +import Data.Map as Map +import Data.Unit (unit) +import Effect.Aff (try) +import Effect.Exception (error, throw) +import JS.BigInt (BigInt) +import JS.BigInt as BigInt +import Mote (test) +import Mote.TestPlanM (TestPlanM) +import Test.Ctl.Testnet.BetRef.BetRefValidator (mkScript) +import Test.Ctl.Testnet.BetRef.Operations (placeBet) +import Test.Ctl.Testnet.BetRef.Types + ( BetRefParams + , OracleAnswerDatum(OracleAnswerDatum) + , mkParams + ) +import Test.Spec.Assertions (shouldEqual, shouldSatisfy) + +suite :: TestPlanM ContractTest Unit +suite = do + test "Placing first bet" firstBetTest' + +firstBetTest' :: ContractTest +firstBetTest' = + firstBetTest + 40 + 100 + 200_000_000 -- bet step + (OracleAnswerDatum $ BigInt.fromInt 1) -- guess + 20_000_000 -- bet value + +firstBetTest :: Int -> Int -> Int -> OracleAnswerDatum -> Int -> ContractTest +firstBetTest betUntil betReveal stepCoins guess betCoins' = + withWallets fourWalletDistr + \(oracle /\ deployer /\ holder /\ bettor) -> do + -- Deploy ref script + (params /\ oRef /\ script) <- runDeployScript + (BigInt.fromInt betUntil) + (BigInt.fromInt betReveal) + (lovelaceValueOf $ BigNum.fromInt stepCoins) + oracle + deployer + holder + + logInfo' $ "BetRefParams: " <> show params + logInfo' $ "Ref script oRef: " <> show oRef + + -- Build test checks + let betCoins = BigNum.fromInt betCoins' + + bettorKey <- liftAff $ getPrivatePaymentKey bettor + let bettorPkh = (wrap <<< privateKeyToPkh) bettorKey + mBettorSKey <- liftAff $ getPrivateStakeKey bettor + let mBettorSPkh = (wrap <<< privateKeyToPkh) <$> mBettorSKey + bettorAddress <- mkAddress' bettorPkh mBettorSPkh + + let + checks = + [ checkLossAtAddress (label bettorAddress "Bettor") + case _ of + Just { txFinalFee } -> pure + ( BigNum.toBigInt betCoins + (BigNum.toBigInt <<< unwrap) + txFinalFee + ) + Nothing -> liftEffect $ + throw "Unable to estimate expected loss in wallet" + ] + + -- Place bet + eiResult /\ failures <- collectAssertionFailures checks $ lift do + withKeyWallet bettor do + let betValue = lovelaceValueOf betCoins + tx /\ txHash <- runPlaceBet oRef script params guess betValue + Nothing + bettorPkh + pure + { txHash: txHash + , txFinalFee: view (_body <<< _fee) tx + } + eiResult `shouldSatisfy` isRight + failures `shouldEqual` [] + where + fourWalletDistr = + [ BigNum.fromInt 500_000_000 ] + /\ [ BigNum.fromInt 500_000_000 ] + /\ [ BigNum.fromInt 500_000_000 ] + /\ [ BigNum.fromInt 500_000_000 ] + +runPlaceBet + :: TransactionInput + -> PlutusScript + -> BetRefParams + -> OracleAnswerDatum + -> Value + -> Maybe TransactionInput + -> PaymentPubKeyHash + -> Contract (Transaction /\ TransactionHash) +runPlaceBet oRef script params guess bet mPrevBet bettorPkh = do + balancedTx <- placeBet oRef script params guess bet bettorPkh mPrevBet + balancedSignedTx <- signTransaction balancedTx + txHash <- submit balancedSignedTx + awaitTxConfirmed txHash + pure (balancedSignedTx /\ txHash) + +-- ----------------------------------------------------------------------------- +-- Auxiliary runners +-- ----------------------------------------------------------------------------- + +-- | Runner to build and submit a transaction that deploys the reference script. +runDeployScript + :: BigInt + -- ^ Bet Until slot + -> BigInt + -- ^ Bet Reveal slot + -> Value + -- ^ Bet step value + -> KeyWallet + -- ^ Wallet to use as an oracle + -> KeyWallet + -- ^ Wallet to use as a deployer + -> KeyWallet + -- ^ Wallet to use as a reference script holder + -> Contract (BetRefParams /\ TransactionInput /\ PlutusScript) +runDeployScript + betUntil + betReveal + betStep + oracleWallet + scriptDeployer + scriptHolder = do + oraclePaymentKey <- liftAff $ getPrivatePaymentKey oracleWallet + let oraclePkh = (wrap <<< privateKeyToPkh) oraclePaymentKey + params <- mkParams oraclePkh betUntil betReveal betStep + script <- mkScript params + withKeyWallet scriptDeployer do + holderPaymentKey <- liftAff $ getPrivatePaymentKey scriptHolder + let holderPkh = (wrap <<< privateKeyToPkh) holderPaymentKey + networkId <- getNetworkId + let holderAddr = privateKeysToAddress holderPaymentKey Nothing networkId + + let + lookups :: ScriptLookups + lookups = mconcat + [ validator script + ] + + constraints :: TxConstraints + constraints = mconcat + [ mustPayToPubKeyWithScriptRef + holderPkh + (PlutusScriptRef script) + empty + ] + + unbalancedTx /\ _utxosMap <- mkUnbalancedTx lookups constraints + balancedTx <- balanceTx unbalancedTx Map.empty mempty + balancedSignedTx <- signTransaction balancedTx + txHash <- submit balancedSignedTx + awaitTxConfirmed txHash + + -- Find script ref utxo + utxos <- utxosAt holderAddr + let + scriptRefUtxos :: Map TransactionInput TransactionOutput + scriptRefUtxos = + flip Map.filter utxos \output -> + let + scriptRef :: Maybe ScriptHash + scriptRef = do + sRef <- output # unwrap # _.scriptRef + plutusScript <- getPlutusScript sRef + pure $ hash plutusScript + in + scriptRef == Just (hash script) + + (scriptRefInput /\ _scriptRefOutput) <- + liftMaybe + (error $ "getValidatorInputs: could not get UTxO with reference script") + $ head + $ Map.toUnfoldable scriptRefUtxos + + logInfo' $ "Reference script utxo ref is: " <> show scriptRefInput + + pure (params /\ scriptRefInput /\ script) + +-- Utils + +mkAddress' :: PaymentPubKeyHash -> Maybe StakePubKeyHash -> Contract Address +mkAddress' receiverPkh receiverSkh = + mkAddress (wrap $ PubKeyHashCredential $ unwrap receiverPkh) + (wrap <<< PubKeyHashCredential <<< unwrap <$> receiverSkh) diff --git a/test/Testnet/BetRef/Types.purs b/test/Testnet/BetRef/Types.purs index 2bd8bdee6f..dc86d535ba 100644 --- a/test/Testnet/BetRef/Types.purs +++ b/test/Testnet/BetRef/Types.purs @@ -1,4 +1,4 @@ -module Test.Testnet.BetRef.Types where +module Test.Ctl.Testnet.BetRef.Types where import Contract.Prelude import Prelude @@ -18,6 +18,8 @@ import Cardano.Plutus.DataSchema ) import Cardano.Plutus.Types.Value as Plutus import Cardano.Types (PaymentPubKeyHash) +import Cardano.Types.BigNum (fromBigInt) +import Contract.Monad (Contract) import Contract.Numeric.BigNum as BigNum import Contract.PlutusData ( class FromData @@ -26,12 +28,19 @@ import Contract.PlutusData , genericFromData , genericToData ) +import Contract.Time + ( getEraSummaries + , getSystemStart + , slotToPosixTime + ) +import Contract.Value (Value) +import Control.Monad.Error.Class (liftEither, liftMaybe) import Ctl.Internal.Types.Interval (POSIXTime) --- import Contract.Value (Value) --- import Contract.PlutusData (PlutusData(Integer)) +import Data.Bifunctor (lmap) import Data.List (List) +-- import JS.BigInt as BigInt +import Effect.Exception (error) import JS.BigInt (BigInt) -import JS.BigInt as BigInt -- | Goals made my the concerned team. type TeamGoals = BigInt @@ -94,6 +103,32 @@ instance ToData BetRefParams where instance Show BetRefParams where show = genericShow +mkParams + :: PaymentPubKeyHash + -> BigInt + -> BigInt + -> Value + -- ^ Bet step valueContract BetRefParams + -> Contract BetRefParams +mkParams oraclePkh betUntil betReveal betStep = do + eraSummaries <- getEraSummaries + systemStart <- getSystemStart + let slotToPosixTime' = slotToPosixTime eraSummaries systemStart + betUntil' <- liftMaybe (error "fromBigInt failure") $ wrap <$> fromBigInt + betUntil + betReveal' <- liftMaybe (error "fromBigInt failure") $ wrap <$> fromBigInt + betReveal + betUntilTime <- liftEither $ lmap (error <<< show) + $ slotToPosixTime' betUntil' + betRevealTime <- liftEither $ lmap (error <<< show) + $ slotToPosixTime' betReveal' + pure $ BetRefParams + { brpOraclePkh: oraclePkh + , brpBetUntil: betUntilTime + , brpBetReveal: betRevealTime + , brpBetStep: Plutus.fromCardano betStep + } + -- | List of guesses by users along with the maximum bet placed yet. A new guess gets /prepended/ to this list. Note that since we are always meant to increment previously placed bet with `brpBetStep`, the newly placed bet would necessarily be maximum (it would be foolish to initialize `brpBetStep` with some negative amounts). newtype BetRefDatum = BetRefDatum { brdBets :: List (PaymentPubKeyHash /\ OracleAnswerDatum) From 75339c64c247622e782d7cf0ab4e8bf61d7269e4 Mon Sep 17 00:00:00 2001 From: euonymos Date: Mon, 18 Nov 2024 22:43:51 -0600 Subject: [PATCH 06/18] feat: multiple bet tests WIP --- test/Testnet/BetRef/Operations.purs | 16 +- test/Testnet/BetRef/Test.purs | 260 ++++++++++++++++++++-------- test/Testnet/BetRef/Types.purs | 12 +- 3 files changed, 206 insertions(+), 82 deletions(-) diff --git a/test/Testnet/BetRef/Operations.purs b/test/Testnet/BetRef/Operations.purs index 2356d32c31..2f9cce316a 100644 --- a/test/Testnet/BetRef/Operations.purs +++ b/test/Testnet/BetRef/Operations.purs @@ -25,7 +25,7 @@ import Contract.Log (logDebug') import Contract.Monad (Contract) import Contract.PlutusData (toData) import Contract.ScriptLookups (ScriptLookups) -import Contract.ScriptLookups (validator) +import Contract.ScriptLookups (unspentOutputs, validator) import Contract.Time (POSIXTimeRange) import Contract.Transaction ( TransactionInput @@ -45,10 +45,10 @@ import Contract.TxConstraints , mustValidateIn ) import Contract.UnbalancedTx (mkUnbalancedTx) -import Contract.Utxos (getUtxo) +import Contract.Utxos (getUtxo, utxosAt) import Contract.Value (Value, add) import Control.Monad.Error.Class (liftMaybe) -import Ctl.Internal.Types.Interval (from) as Interval +import Ctl.Internal.Types.Interval as Interval import Data.List (List, singleton) import Data.Map as Map import Data.Maybe (Maybe) @@ -127,7 +127,7 @@ placeBet refScript script brp guess bet bettorPkh mPreviousBetsUtxoRef = do -- betUntilSlot <- enclosingSlotFromTime' (timeFromPlutus $ brpBetUntil brp) -- gyLogDebug' "" $ printf "3. bet until slot %s" (show betUntilSlot) let - (txValidRange :: POSIXTimeRange) = Interval.from $ + (txValidRange :: POSIXTimeRange) = Interval.to $ (unwrap brp).brpBetUntil let datum = toData $ BetRefDatum @@ -141,6 +141,8 @@ placeBet refScript script brp guess bet bettorPkh mPreviousBetsUtxoRef = do refScriptUtxo <- liftMaybe (error "cannot find ref script utxo") =<< getUtxo refScript + -- utxo <- utxosAt =<< mkAddress (wrap $ ScriptHashCredential vhash) Nothing + let refScriptTUO = ( TransactionUnspentOutput @@ -158,13 +160,17 @@ placeBet refScript script brp guess bet bettorPkh mPreviousBetsUtxoRef = do , mustBeSignedBy bettorPkh ] + utxo = Map.singleton previousBetsUtxoRef previousUtxo + `Map.union` Map.singleton refScript refScriptUtxo + lookups :: ScriptLookups lookups = mconcat [ validator script + , unspentOutputs utxo ] unbalancedTx /\ _utxoMap <- mkUnbalancedTx lookups constraints - balancedTx <- balanceTx unbalancedTx Map.empty mempty + balancedTx <- balanceTx unbalancedTx utxo mempty pure balancedTx -- -- | Operation to take UTxO corresponding to previous bets. diff --git a/test/Testnet/BetRef/Test.purs b/test/Testnet/BetRef/Test.purs index 18a96679bd..672d16f346 100644 --- a/test/Testnet/BetRef/Test.purs +++ b/test/Testnet/BetRef/Test.purs @@ -7,7 +7,9 @@ import Prelude import Cardano.Types (Transaction, TransactionHash, _body, _fee) import Cardano.Types.BigNum as BigNum -import Cardano.Types.Credential (Credential(PubKeyHashCredential)) +import Cardano.Types.Credential + ( Credential(PubKeyHashCredential, ScriptHashCredential) + ) import Cardano.Types.PlutusScript (PlutusScript, hash) import Cardano.Types.ScriptHash (ScriptHash) import Cardano.Types.ScriptRef (ScriptRef(PlutusScriptRef), getPlutusScript) @@ -56,11 +58,13 @@ import Contract.Value (Value, empty, lovelaceValueOf) import Control.Monad.Error.Class (liftMaybe) import Control.Monad.Trans.Class (lift) import Ctl.Examples.ExUnits as ExUnits -import Data.Array (head) +import Data.Array (head, uncons) import Data.Either (isLeft) import Data.Lens (view) +import Data.List as List import Data.Map (Map) import Data.Map as Map +import Data.Set as Set import Data.Unit (unit) import Effect.Aff (try) import Effect.Exception (error, throw) @@ -79,73 +83,193 @@ import Test.Spec.Assertions (shouldEqual, shouldSatisfy) suite :: TestPlanM ContractTest Unit suite = do - test "Placing first bet" firstBetTest' + -- test "Placing first bet" firstBetTest' + test "Multiple bets - good steps" multipleBetsTest firstBetTest' :: ContractTest -firstBetTest' = - firstBetTest - 40 - 100 - 200_000_000 -- bet step - (OracleAnswerDatum $ BigInt.fromInt 1) -- guess - 20_000_000 -- bet value - -firstBetTest :: Int -> Int -> Int -> OracleAnswerDatum -> Int -> ContractTest -firstBetTest betUntil betReveal stepCoins guess betCoins' = - withWallets fourWalletDistr - \(oracle /\ deployer /\ holder /\ bettor) -> do - -- Deploy ref script - (params /\ oRef /\ script) <- runDeployScript - (BigInt.fromInt betUntil) - (BigInt.fromInt betReveal) - (lovelaceValueOf $ BigNum.fromInt stepCoins) - oracle - deployer - holder - - logInfo' $ "BetRefParams: " <> show params - logInfo' $ "Ref script oRef: " <> show oRef - - -- Build test checks - let betCoins = BigNum.fromInt betCoins' +firstBetTest' = withWallets ws $ firstBetTest + 40 + 100 + 200_000_000 -- bet step + (OracleAnswerDatum $ BigInt.fromInt 1) -- guess + 20_000_000 -- bet value + where + ws = + [ BigNum.fromInt 500_000_000 ] -- oracle + + /\ [ BigNum.fromInt 500_000_000 ] -- ref script deployer + /\ [ BigNum.fromInt 500_000_000 ] -- ref script holder + /\ [ BigNum.fromInt 500_000_000 ] -- bettor + +multipleBetsTest :: ContractTest +multipleBetsTest = withWallets ws $ + \(oracle /\ deployer /\ holder /\ bettor1 /\ bettor2 /\ bettor3 /\ bettor4) -> + mkMultipleBetsTest + 400 + 1_000 + 10_000_000 + [ (bettor1 /\ mkGuess 1 /\ 10_000_000) + , (bettor2 /\ mkGuess 2 /\ 20_000_000) + , (bettor3 /\ mkGuess 3 /\ 30_000_000) + , (bettor2 /\ mkGuess 4 /\ 50_000_000) + , (bettor4 /\ mkGuess 5 /\ 65_000_000) + -- CTL: no support for test tokens out-of-the-box, so... <> valueSingleton testGoldAsset 1_000 + ] + (oracle /\ deployer /\ holder) + where + ws = + [ BigNum.fromInt 500_000_000 ] -- oracle + + /\ [ BigNum.fromInt 500_000_000 ] -- ref script deployer + /\ [ BigNum.fromInt 500_000_000 ] -- ref script holder + /\ [ BigNum.fromInt 500_000_000 ] -- bettor 1 + /\ [ BigNum.fromInt 500_000_000 ] -- bettor 2 + /\ [ BigNum.fromInt 500_000_000 ] -- bettor 3 + /\ [ BigNum.fromInt 500_000_000 ] -- bettor 4 + + mkGuess = OracleAnswerDatum <<< BigInt.fromInt + +type Bet = (KeyWallet /\ OracleAnswerDatum /\ Int) +mkMultipleBetsTest + :: Int + -> Int + -> Int + -> Array Bet + -> (KeyWallet /\ KeyWallet /\ KeyWallet) + -> Contract Unit +mkMultipleBetsTest + betUntil + betReveal + stepCoins + bets + wallets = do + -- Deploy ref script + (params /\ oRef /\ script) <- runDeployScript + (BigInt.fromInt betUntil) + (BigInt.fromInt betReveal) + (lovelaceValueOf $ BigNum.fromInt stepCoins) + wallets + + -- -- Get the balance + -- balanceBefore <- getBalance + -- gyLogDebug' "" $ printf "balanceBeforeAllTheseOps: %s" (mconcat balanceBefore) + + -- Run operations + runMultipleBets params oRef script bets + +-- -- Get the balance again +-- balanceAfter <- getBalance +-- gyLogDebug' "" $ printf "balanceAfterAllTheseOps: %s" (mconcat balanceAfter) + +-- -- Check the difference +-- verify $ +-- zip3 +-- walletsAndBets +-- balanceBefore +-- balanceAfter + +runMultipleBets + :: BetRefParams + -> TransactionInput + -> PlutusScript + -> Array Bet + -> Contract Unit +runMultipleBets params oRef script bets = go bets true + where + go bs isFirst = case uncons bs of + Just { head: (bettor /\ guess /\ betCoins), tail: bs' } -> do + -- Some additionals bettorKey <- liftAff $ getPrivatePaymentKey bettor let bettorPkh = (wrap <<< privateKeyToPkh) bettorKey - mBettorSKey <- liftAff $ getPrivateStakeKey bettor - let mBettorSPkh = (wrap <<< privateKeyToPkh) <$> mBettorSKey - bettorAddress <- mkAddress' bettorPkh mBettorSPkh - - let - checks = - [ checkLossAtAddress (label bettorAddress "Bettor") - case _ of - Just { txFinalFee } -> pure - ( BigNum.toBigInt betCoins + (BigNum.toBigInt <<< unwrap) - txFinalFee - ) - Nothing -> liftEffect $ - throw "Unable to estimate expected loss in wallet" - ] - - -- Place bet - eiResult /\ failures <- collectAssertionFailures checks $ lift do + let betValue = lovelaceValueOf $ BigNum.fromInt betCoins + + -- Handle the bet + if isFirst then do + logInfo' "placing the first bet" withKeyWallet bettor do - let betValue = lovelaceValueOf betCoins - tx /\ txHash <- runPlaceBet oRef script params guess betValue - Nothing + _ <- runPlaceBet oRef script params guess betValue Nothing bettorPkh + pure unit + else do + logInfo' "placing a next bet" + -- need to get previous bet utxo. here we just try to pick the first one + -- since it should be always one + address <- mkAddress (wrap $ ScriptHashCredential $ hash script) Nothing + utxoMap <- utxosAt address + prevUtxoRef <- liftMaybe (error "cannot find previous bet utxo") + $ (head <<< Set.toUnfoldable <<< Map.keys) utxoMap + logInfo' $ "previous bet utxo: " <> show prevUtxoRef + withKeyWallet bettor do + _ <- runPlaceBet oRef script params guess betValue + (Just prevUtxoRef) bettorPkh - pure - { txHash: txHash - , txFinalFee: view (_body <<< _fee) tx - } - eiResult `shouldSatisfy` isRight - failures `shouldEqual` [] - where - fourWalletDistr = - [ BigNum.fromInt 500_000_000 ] - /\ [ BigNum.fromInt 500_000_000 ] - /\ [ BigNum.fromInt 500_000_000 ] - /\ [ BigNum.fromInt 500_000_000 ] + pure unit + + -- Handle the rest + go bs' false + Nothing -> pure unit + +-- ----------------------------------------------------------------------------- + +firstBetTest + :: Int + -> Int + -> Int + -> OracleAnswerDatum + -> Int + -> KeyWallet /\ KeyWallet /\ KeyWallet /\ KeyWallet + -> Contract Unit +firstBetTest + betUntil + betReveal + stepCoins + guess + betCoins' + (oracle /\ deployer /\ holder /\ bettor) = do + -- Deploy ref script + (params /\ oRef /\ script) <- runDeployScript + (BigInt.fromInt betUntil) + (BigInt.fromInt betReveal) + (lovelaceValueOf $ BigNum.fromInt stepCoins) + (oracle /\ deployer /\ holder) + + logInfo' $ "BetRefParams: " <> show params + logInfo' $ "Ref script oRef: " <> show oRef + + -- Build test checks + let betCoins = BigNum.fromInt betCoins' + + bettorKey <- liftAff $ getPrivatePaymentKey bettor + let bettorPkh = (wrap <<< privateKeyToPkh) bettorKey + mBettorSKey <- liftAff $ getPrivateStakeKey bettor + let mBettorSPkh = (wrap <<< privateKeyToPkh) <$> mBettorSKey + bettorAddress <- mkAddress' bettorPkh mBettorSPkh + + let + checks = + [ checkLossAtAddress (label bettorAddress "Bettor") + case _ of + Just { txFinalFee } -> pure + ( BigNum.toBigInt betCoins + (BigNum.toBigInt <<< unwrap) + txFinalFee + ) + Nothing -> liftEffect $ + throw "Unable to estimate expected loss in wallet" + ] + + -- Place bet + eiResult /\ failures <- collectAssertionFailures checks $ lift do + withKeyWallet bettor do + let betValue = lovelaceValueOf betCoins + tx /\ txHash <- runPlaceBet oRef script params guess betValue + Nothing + bettorPkh + pure + { txHash: txHash + , txFinalFee: view (_body <<< _fee) tx + } + eiResult `shouldSatisfy` isRight + failures `shouldEqual` [] runPlaceBet :: TransactionInput @@ -175,20 +299,14 @@ runDeployScript -- ^ Bet Reveal slot -> Value -- ^ Bet step value - -> KeyWallet - -- ^ Wallet to use as an oracle - -> KeyWallet - -- ^ Wallet to use as a deployer - -> KeyWallet - -- ^ Wallet to use as a reference script holder + -> KeyWallet /\ KeyWallet /\ KeyWallet + -- ^ Wallets to use as an oracle, deployer, and reference script holder -> Contract (BetRefParams /\ TransactionInput /\ PlutusScript) runDeployScript betUntil betReveal betStep - oracleWallet - scriptDeployer - scriptHolder = do + (oracleWallet /\ scriptDeployer /\ scriptHolder) = do oraclePaymentKey <- liftAff $ getPrivatePaymentKey oracleWallet let oraclePkh = (wrap <<< privateKeyToPkh) oraclePaymentKey params <- mkParams oraclePkh betUntil betReveal betStep diff --git a/test/Testnet/BetRef/Types.purs b/test/Testnet/BetRef/Types.purs index dc86d535ba..7942bf8a2e 100644 --- a/test/Testnet/BetRef/Types.purs +++ b/test/Testnet/BetRef/Types.purs @@ -168,16 +168,16 @@ derive instance Generic BetRefAction _ instance HasPlutusSchema BetRefAction - ( "Bet" + ( "Take" + := PNil + @@ (S Z) + + :+ + "Bet" := ( "guess" := I OracleAnswerDatum :+ PNil ) - @@ (S Z) - - :+ "Take" - := PNil - @@ Z :+ PNil ) From 5dfa3e96256e65ba13683103e669774ea46604cf Mon Sep 17 00:00:00 2001 From: euonymos Date: Wed, 20 Nov 2024 12:15:56 -0600 Subject: [PATCH 07/18] feat: fix validity interval calculation + remove unused parameter from configuration --- src/Contract/Test/Testnet.purs | 3 +-- src/Internal/Test/E2E/Runner.purs | 1 - src/Internal/Testnet/Contract.purs | 9 +-------- src/Internal/Testnet/Types.purs | 1 - test/Testnet/BetRef/Operations.purs | 14 ++++++++++++-- test/Testnet/BetRef/Test.purs | 1 + test/Testnet/BetRef/Types.purs | 14 +++++++++----- 7 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/Contract/Test/Testnet.purs b/src/Contract/Test/Testnet.purs index 8ff331ec80..4edbf906e8 100644 --- a/src/Contract/Test/Testnet.purs +++ b/src/Contract/Test/Testnet.purs @@ -65,8 +65,7 @@ defaultTestnetConfig = , clusterConfig: { testnetMagic: 2 , era: Conway - , slotLength: Seconds 0.1 + , slotLength: Seconds 0.5 , epochSize: Nothing } - , preserveTmpFolder: true } diff --git a/src/Internal/Test/E2E/Runner.purs b/src/Internal/Test/E2E/Runner.purs index 20be1343cd..c560f59e73 100644 --- a/src/Internal/Test/E2E/Runner.purs +++ b/src/Internal/Test/E2E/Runner.purs @@ -219,7 +219,6 @@ buildLocalTestnetConfig options = , slotLength: Seconds 0.05 , epochSize: Nothing } - , preserveTmpFolder: true } -- | Plutip does not generate private stake keys for us, so we make one and diff --git a/src/Internal/Testnet/Contract.purs b/src/Internal/Testnet/Contract.purs index d81e677e42..98180a48d3 100644 --- a/src/Internal/Testnet/Contract.purs +++ b/src/Internal/Testnet/Contract.purs @@ -112,16 +112,9 @@ withTestnetContractEnv -> Aff a withTestnetContractEnv cfg distr cont = do cleanupRef <- liftEffect $ Ref.new mempty - cleanupRefEmpty <- liftEffect $ Ref.new mempty Aff.bracket (try $ startTestnetContractEnv cfg distr cleanupRef) - ( let - cleanupRef' = - if cfg.preserveTmpFolder then cleanupRefEmpty - else cleanupRef - in - const $ runCleanup cleanupRef' - ) + (const $ runCleanup cleanupRef) $ liftEither >=> \{ env, wallets, printLogs } -> whenError printLogs (cont env wallets) diff --git a/src/Internal/Testnet/Types.purs b/src/Internal/Testnet/Types.purs index f371d5b254..ea735e05c4 100644 --- a/src/Internal/Testnet/Types.purs +++ b/src/Internal/Testnet/Types.purs @@ -37,7 +37,6 @@ type TestnetConfig = , suppressLogs :: Boolean , hooks :: Hooks , clusterConfig :: TestnetClusterConfig - , preserveTmpFolder :: Boolean } type TestnetClusterConfig = diff --git a/test/Testnet/BetRef/Operations.purs b/test/Testnet/BetRef/Operations.purs index 2f9cce316a..b5f768ec2d 100644 --- a/test/Testnet/BetRef/Operations.purs +++ b/test/Testnet/BetRef/Operations.purs @@ -21,7 +21,7 @@ import Cardano.Types.TransactionUnspentOutput ( TransactionUnspentOutput(TransactionUnspentOutput) ) import Contract.Address (Address, mkAddress) -import Contract.Log (logDebug') +import Contract.Log (logDebug', logInfo') import Contract.Monad (Contract) import Contract.PlutusData (toData) import Contract.ScriptLookups (ScriptLookups) @@ -54,6 +54,7 @@ import Data.Map as Map import Data.Maybe (Maybe) import Data.Unit (Unit, unit) import Effect.Exception (error) +import JS.BigInt as BigInt import Test.Ctl.Testnet.BetRef.Types ( BetRefAction(Bet) , BetRefDatum(BetRefDatum) @@ -126,9 +127,18 @@ placeBet refScript script brp guess bet bettorPkh mPreviousBetsUtxoRef = do logDebug' $ "2. previous guesses: " <> show previousBets -- betUntilSlot <- enclosingSlotFromTime' (timeFromPlutus $ brpBetUntil brp) -- gyLogDebug' "" $ printf "3. bet until slot %s" (show betUntilSlot) + + -- eraSummaries <- getEraSummaries + -- systemStart <- getSystemStart + -- let slotToPosixTime' = slotToPosixTime eraSummaries systemStart + let brpBetUntil = (unwrap brp).brpBetUntil + logInfo' $ "brpBetUntil: " <> show brpBetUntil let (txValidRange :: POSIXTimeRange) = Interval.to $ - (unwrap brp).brpBetUntil + ( wrap $ (\v -> v - (BigInt.fromInt 1000)) $ unwrap $ + (unwrap brp).brpBetUntil + ) + logInfo' $ "txValidRange: " <> show txValidRange let datum = toData $ BetRefDatum { brdBets: singleton (bettorPkh /\ guess) <> (unwrap dat).brdBets diff --git a/test/Testnet/BetRef/Test.purs b/test/Testnet/BetRef/Test.purs index 672d16f346..a1ddfd30e0 100644 --- a/test/Testnet/BetRef/Test.purs +++ b/test/Testnet/BetRef/Test.purs @@ -310,6 +310,7 @@ runDeployScript oraclePaymentKey <- liftAff $ getPrivatePaymentKey oracleWallet let oraclePkh = (wrap <<< privateKeyToPkh) oraclePaymentKey params <- mkParams oraclePkh betUntil betReveal betStep + logInfo' $ "BetRefParams are: " <> show params script <- mkScript params withKeyWallet scriptDeployer do holderPaymentKey <- liftAff $ getPrivatePaymentKey scriptHolder diff --git a/test/Testnet/BetRef/Types.purs b/test/Testnet/BetRef/Types.purs index 7942bf8a2e..c5ff107cf9 100644 --- a/test/Testnet/BetRef/Types.purs +++ b/test/Testnet/BetRef/Types.purs @@ -38,9 +38,9 @@ import Control.Monad.Error.Class (liftEither, liftMaybe) import Ctl.Internal.Types.Interval (POSIXTime) import Data.Bifunctor (lmap) import Data.List (List) --- import JS.BigInt as BigInt import Effect.Exception (error) import JS.BigInt (BigInt) +import JS.BigInt as BigInt -- | Goals made my the concerned team. type TeamGoals = BigInt @@ -114,10 +114,14 @@ mkParams oraclePkh betUntil betReveal betStep = do eraSummaries <- getEraSummaries systemStart <- getSystemStart let slotToPosixTime' = slotToPosixTime eraSummaries systemStart - betUntil' <- liftMaybe (error "fromBigInt failure") $ wrap <$> fromBigInt - betUntil - betReveal' <- liftMaybe (error "fromBigInt failure") $ wrap <$> fromBigInt - betReveal + betUntil' <- liftMaybe (error "fromBigInt failure") $ wrap <$> + ( fromBigInt + $ betUntil + BigInt.fromInt 1 + ) -- FIXME: note on intervals + betReveal' <- liftMaybe (error "fromBigInt failure") $ wrap <$> + ( fromBigInt + $ betReveal + BigInt.fromInt 1 + ) -- FIXME: note on intervals betUntilTime <- liftEither $ lmap (error <<< show) $ slotToPosixTime' betUntil' betRevealTime <- liftEither $ lmap (error <<< show) From 8740e1760795d66a16bf5e8bf707ab6c954a13e5 Mon Sep 17 00:00:00 2001 From: euonymos Date: Wed, 20 Nov 2024 13:00:44 -0600 Subject: [PATCH 08/18] test: negative test for multiple bets --- test/Testnet/BetRef/Test.purs | 49 ++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/test/Testnet/BetRef/Test.purs b/test/Testnet/BetRef/Test.purs index a1ddfd30e0..f78dc8eb33 100644 --- a/test/Testnet/BetRef/Test.purs +++ b/test/Testnet/BetRef/Test.purs @@ -84,7 +84,8 @@ import Test.Spec.Assertions (shouldEqual, shouldSatisfy) suite :: TestPlanM ContractTest Unit suite = do -- test "Placing first bet" firstBetTest' - test "Multiple bets - good steps" multipleBetsTest + -- test "Multiple bets - good steps" multipleBetsTest + test "Multiple bets - to small step" failingMultipleBetsTest firstBetTest' :: ContractTest firstBetTest' = withWallets ws $ firstBetTest @@ -102,7 +103,7 @@ firstBetTest' = withWallets ws $ firstBetTest /\ [ BigNum.fromInt 500_000_000 ] -- bettor multipleBetsTest :: ContractTest -multipleBetsTest = withWallets ws $ +multipleBetsTest = withWallets multipleBetsWallets $ \(oracle /\ deployer /\ holder /\ bettor1 /\ bettor2 /\ bettor3 /\ bettor4) -> mkMultipleBetsTest 400 @@ -116,18 +117,42 @@ multipleBetsTest = withWallets ws $ -- CTL: no support for test tokens out-of-the-box, so... <> valueSingleton testGoldAsset 1_000 ] (oracle /\ deployer /\ holder) - where - ws = - [ BigNum.fromInt 500_000_000 ] -- oracle - /\ [ BigNum.fromInt 500_000_000 ] -- ref script deployer - /\ [ BigNum.fromInt 500_000_000 ] -- ref script holder - /\ [ BigNum.fromInt 500_000_000 ] -- bettor 1 - /\ [ BigNum.fromInt 500_000_000 ] -- bettor 2 - /\ [ BigNum.fromInt 500_000_000 ] -- bettor 3 - /\ [ BigNum.fromInt 500_000_000 ] -- bettor 4 +failingMultipleBetsTest :: ContractTest +failingMultipleBetsTest = withWallets multipleBetsWallets $ + \(oracle /\ deployer /\ holder /\ bettor1 /\ bettor2 /\ bettor3 /\ bettor4) -> + do + ret /\ _ <- collectAssertionFailures mempty $ lift do + mkMultipleBetsTest + 400 + 1_000 + 10_000_000 + [ (bettor1 /\ mkGuess 1 /\ 10_000_000) + , (bettor2 /\ mkGuess 2 /\ 20_000_000) + , (bettor3 /\ mkGuess 3 /\ 30_000_000) + , (bettor2 /\ mkGuess 4 /\ 50_000_000) + , (bettor4 /\ mkGuess 5 /\ 55_000_000) + -- CTL: no support for test tokens out-of-the-box, so... <> valueSingleton testGoldAsset 1_000 + ] + (oracle /\ deployer /\ holder) + ret `shouldSatisfy` isLeft - mkGuess = OracleAnswerDatum <<< BigInt.fromInt +-- ----------------------------------------------------------------------------- +-- helpers for multiple bet tests + +mkGuess = OracleAnswerDatum <<< BigInt.fromInt + +multipleBetsWallets = + [ BigNum.fromInt 500_000_000 ] -- oracle + + /\ [ BigNum.fromInt 500_000_000 ] -- ref script deployer + /\ [ BigNum.fromInt 500_000_000 ] -- ref script holder + /\ [ BigNum.fromInt 500_000_000 ] -- bettor 1 + /\ [ BigNum.fromInt 500_000_000 ] -- bettor 2 + /\ [ BigNum.fromInt 500_000_000 ] -- bettor 3 + /\ [ BigNum.fromInt 500_000_000 ] -- bettor 4 + +-- ----------------------------------------------------------------------------- type Bet = (KeyWallet /\ OracleAnswerDatum /\ Int) From 28af96ccd96ee476797b99302bd37b2993811dd8 Mon Sep 17 00:00:00 2001 From: euonymos Date: Thu, 21 Nov 2024 20:23:31 -0600 Subject: [PATCH 09/18] feat: take pot test --- flake.lock | 9 +- test/Testnet.purs | 2 +- test/Testnet/BetRef/Operations.purs | 205 +++++++++------------------- test/Testnet/BetRef/Test.purs | 132 +++++++++++++++++- 4 files changed, 202 insertions(+), 146 deletions(-) diff --git a/flake.lock b/flake.lock index f4e0b8707d..18efcceaa6 100644 --- a/flake.lock +++ b/flake.lock @@ -2020,10 +2020,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "dirtyRev": "080e2b4852f162d33e8a3d5e2faaa9b5400d878c-dirty", - "dirtyShortRev": "080e2b4-dirty", - "lastModified": 1730916256, - "narHash": "sha256-wVSdARdey5PszmmiMtpBibUaBsfOls43XqMUrWqvBRc=", + "lastModified": 1732165946, + "narHash": "sha256-6egb13DomCowqDgNkjpBzNKtHvaoLpHlAI1lZrwV6uE=", + "ref": "refs/heads/euonymos/fix-era-summaries", + "rev": "b80892e830d334f7b2bd4afaf13191af6fbe2c2c", + "revCount": 146, "type": "git", "url": "file:///home/euonymos/src/mlabs/clb" }, diff --git a/test/Testnet.purs b/test/Testnet.purs index ed59a54f3b..5a76f5d124 100644 --- a/test/Testnet.purs +++ b/test/Testnet.purs @@ -44,7 +44,7 @@ main = interruptOnSignal SIGINT =<< launchAff do let config = defaultTestnetConfig { suppressLogs = false } flip cancelWith (effectCanceler (exitCode 1)) do Utils.interpretWithConfig - defaultConfig { timeout = Just $ Milliseconds 70_000.0, exit = true } + defaultConfig { timeout = Just $ Milliseconds 600_000.0, exit = true } $ group "cardano-testnet" do testTestnetContracts config BetRef.suite -- testTestnetContracts config Mnemonics.suite diff --git a/test/Testnet/BetRef/Operations.purs b/test/Testnet/BetRef/Operations.purs index b5f768ec2d..494145f741 100644 --- a/test/Testnet/BetRef/Operations.purs +++ b/test/Testnet/BetRef/Operations.purs @@ -1,4 +1,7 @@ -module Test.Ctl.Testnet.BetRef.Operations where +module Test.Ctl.Testnet.BetRef.Operations + ( placeBet + , takePot + ) where import Contract.Prelude import Prelude @@ -41,6 +44,7 @@ import Contract.TxConstraints import Contract.TxConstraints ( mustBeSignedBy , mustPayToScript + , mustReferenceOutput , mustSpendScriptOutputUsingScriptRef , mustValidateIn ) @@ -56,7 +60,7 @@ import Data.Unit (Unit, unit) import Effect.Exception (error) import JS.BigInt as BigInt import Test.Ctl.Testnet.BetRef.Types - ( BetRefAction(Bet) + ( BetRefAction(Bet, Take) , BetRefDatum(BetRefDatum) , BetRefParams , OracleAnswerDatum @@ -183,139 +187,66 @@ placeBet refScript script brp guess bet bettorPkh mPreviousBetsUtxoRef = do balancedTx <- balanceTx unbalancedTx utxo mempty pure balancedTx --- -- | Operation to take UTxO corresponding to previous bets. --- takeBets :: --- forall m v. --- ( HasCallStack --- , GYTxQueryMonad m --- , v `VersionIsGreaterOrEqual` 'PlutusV2 --- ) => --- -- | Reference Script output. --- GYTxOutRef -> --- -- | The script --- GYValidator v -> --- -- | Validator params. --- BetRefParams -> --- -- | Script UTxO to consume. --- GYTxOutRef -> --- -- | Own address. --- GYAddress -> --- -- | Oracle reference input. --- GYTxOutRef -> --- m (GYTxSkeleton v) --- takeBets refScript script brp previousBetsUtxoRef ownAddr oracleRefInput = do --- pkh <- addressToPubKeyHash' ownAddr --- previousUtxo <- utxoAtTxOutRef' previousBetsUtxoRef --- (_addr, _previousValue, dat) <- utxoDatum' previousUtxo --- betRevealSlot <- enclosingSlotFromTime' (timeFromPlutus $ brpBetReveal brp) --- return $ --- input refScript (validatorToScript script) previousBetsUtxoRef dat Take --- <> isInvalidBefore betRevealSlot --- <> mustHaveRefInput oracleRefInput --- <> mustBeSignedBy pkh - --- -- | Utility builder --- input :: --- v `VersionIsGreaterOrEqual` 'PlutusV2 => --- GYTxOutRef -> --- GYScript v -> --- GYTxOutRef -> --- BetRefDatum -> --- BetRefAction -> --- GYTxSkeleton v --- input refScript script inputRef dat red = --- mustHaveInput --- GYTxIn --- { gyTxInTxOutRef = inputRef --- , gyTxInWitness = --- GYTxInWitnessScript --- (GYInReference refScript script) --- (datumFromPlutusData dat) --- (redeemerFromPlutusData red) --- } - --- -------------------------------------------------------------------------------- --- -- Additional operations --- -------------------------------------------------------------------------------- - --- {- | Queries the cuurent slot, calculates parameters and builds --- a script that is ready to be deployed. --- -} --- mkScript :: --- forall m (v :: PlutusVersion). --- ( GYTxQueryMonad m --- , SingPlutusVersionI v --- , Api.IsPlutusScriptLanguage (PlutusVersionToApi v) --- ) => --- -- | How many slots betting should be open --- Integer -> --- -- | How many slots should pass before oracle reveals answer --- Integer -> --- -- | Oracle PKH --- GYPubKeyHash -> --- -- | Bet step value --- GYValue -> --- m (BetRefParams, GYValidator v) --- mkScript betUntil betReveal oraclePkh betStep = do --- currSlot <- slotToInteger <$> slotOfCurrentBlock --- -- Calculate params for the script --- let betUntil' = slotFromApi $ fromInteger $ currSlot + betUntil --- let betReveal' = slotFromApi $ fromInteger $ currSlot + betReveal --- betUntilTime <- slotToBeginTime betUntil' --- betRevealTime <- slotToBeginTime betReveal' --- let params = --- BetRefParams --- (pubKeyHashToPlutus oraclePkh) --- (timeToPlutus betUntilTime) --- (timeToPlutus betRevealTime) --- (valueToPlutus betStep) --- gyLogDebug' "" $ printf "Parameters: %s" (show params) --- -- TODO: this might be improved once support for blueprints is merged. --- let s = unsafePerformIO $ do --- lookupEnv "AIKEN_BET_REF" >>= \case --- Nothing -> pure $ mkBetRefValidator params --- Just _ -> do --- putStrLn "Using Aiken-based on-chain script" --- mkBetRefValidatorExt params --- pure (params, s) - --- {- | Validator in question, obtained after giving required parameters. --- This uses PlutusTx version of the validator --- -} --- mkBetRefValidator :: --- forall (v :: PlutusVersion). --- SingPlutusVersionI v => --- BetRefParams -> --- GYValidator v --- mkBetRefValidator brp = validatorFromPlutus $ betRefValidator brp - --- -- | Make a validator out of external UPLC envelope --- mkBetRefValidatorExt :: --- forall (v :: PlutusVersion). --- SingPlutusVersionI v => --- BetRefParams -> --- IO (GYValidator v) --- mkBetRefValidatorExt BetRefParams {..} = do --- v <- readValidator @v "tests-unified/script/bet_ref_validator.plutus" --- let (Api.PlutusScriptSerialised sbs) = validatorToApi v --- let prog :: UPLCProgram = uncheckedDeserialiseUPLC sbs --- let params = --- Constr --- 0 --- [ toData brpOraclePkh --- , toData brpBetUntil --- , toData brpBetReveal --- , toData brpBetStep -- TODO: might be flaky --- ] --- let args = [params] --- let appliedProg = applyArguments prog args --- -- print $ Api.pretty appliedProg --- pure $ validatorFromSerialisedScript @v $ serialiseUPLC appliedProg - --- type UPLCProgram = Program DeBruijn DefaultUni DefaultFun () +-- | Operation to take UTxO corresponding to previous bets. +takePot + :: TransactionInput + -- ^ Reference Script output. + -> PlutusScript + -- ^ The script + -> BetRefParams + -- ^ Betting parameters. + -> TransactionInput + -- ^ Bet UTxO to consume. + -> PaymentPubKeyHash + -- ^ Bettors's PKH. + -> TransactionInput + -- ^ Oracle reference input. + -> Contract Transaction +takePot refScript script brp previousBetsUtxoRef bettorPkh oracleRefInput = do + logDebug' $ "bettorPkh: " <> show bettorPkh --- applyArguments :: UPLCProgram -> [Data] -> UPLCProgram --- applyArguments p args = --- let termArgs = fmap ((,) () . PLC.mkConstant ()) args --- apply t = PLC.mkIterApp t termArgs --- in over UPLC.progTerm apply p + previousUtxo <- liftMaybe (error "Cannot find UTxO by ref") + =<< getUtxo previousBetsUtxoRef + logDebug' $ "1. previousUtxo: " <> show previousUtxo + + let brpBetUntil = (unwrap brp).brpBetReveal + logInfo' $ "brpBetUntil: " <> show brpBetUntil + let (txValidRange :: POSIXTimeRange) = Interval.from brpBetUntil + logInfo' $ "txValidRange: " <> show txValidRange + + refScriptUtxo <- liftMaybe (error "cannot find ref script utxo") + =<< getUtxo refScript + + oracleUtxo <- liftMaybe (error "cannot find oracle utxo") + =<< getUtxo oracleRefInput + + let + refScriptTUO = + ( TransactionUnspentOutput + { input: refScript, output: refScriptUtxo } + ) + + constraints :: TxConstraints + constraints = mconcat + [ mustSpendScriptOutputUsingScriptRef + previousBetsUtxoRef + (RedeemerDatum $ toData Take) + (RefInput refScriptTUO) + , mustReferenceOutput oracleRefInput + , mustValidateIn txValidRange + , mustBeSignedBy bettorPkh + ] + + utxo = Map.singleton previousBetsUtxoRef previousUtxo + `Map.union` Map.singleton refScript refScriptUtxo + `Map.union` Map.singleton oracleRefInput oracleUtxo + + lookups :: ScriptLookups + lookups = mconcat + [ validator script + , unspentOutputs utxo + ] + + unbalancedTx /\ _utxoMap <- mkUnbalancedTx lookups constraints + balancedTx <- balanceTx unbalancedTx utxo mempty + pure balancedTx diff --git a/test/Testnet/BetRef/Test.purs b/test/Testnet/BetRef/Test.purs index f78dc8eb33..2a9e81c50d 100644 --- a/test/Testnet/BetRef/Test.purs +++ b/test/Testnet/BetRef/Test.purs @@ -10,9 +10,11 @@ import Cardano.Types.BigNum as BigNum import Cardano.Types.Credential ( Credential(PubKeyHashCredential, ScriptHashCredential) ) +import Cardano.Types.OutputDatum (OutputDatum(OutputDatum)) import Cardano.Types.PlutusScript (PlutusScript, hash) import Cardano.Types.ScriptHash (ScriptHash) import Cardano.Types.ScriptRef (ScriptRef(PlutusScriptRef), getPlutusScript) +import Cardano.Types.Value as Value import Cardano.Wallet.Key ( KeyWallet , getPrivatePaymentKey @@ -27,8 +29,10 @@ import Contract.Address , getNetworkId , mkAddress ) +import Contract.Chain (currentSlot, waitUntilSlot) import Contract.Log (logInfo') import Contract.Monad (Contract) +import Contract.PlutusData (PlutusData, toData) import Contract.ScriptLookups (ScriptLookups) import Contract.ScriptLookups (validator) import Contract.Scripts (validatorHash) @@ -38,6 +42,7 @@ import Contract.Test.Assert , collectAssertionFailures , label ) +import Contract.Time (getEraSummaries, getSystemStart, posixTimeToSlot) import Contract.Transaction ( TransactionInput , TransactionOutput @@ -47,10 +52,12 @@ import Contract.Transaction , submit ) import Contract.TxConstraints - ( TxConstraints + ( DatumPresence(DatumInline) + , mustPayToPubKeyWithDatum + , mustPayToPubKeyWithScriptRef ) import Contract.TxConstraints - ( mustPayToPubKeyWithScriptRef + ( TxConstraints ) import Contract.UnbalancedTx (mkUnbalancedTx) import Contract.Utxos (utxosAt) @@ -59,6 +66,7 @@ import Control.Monad.Error.Class (liftMaybe) import Control.Monad.Trans.Class (lift) import Ctl.Examples.ExUnits as ExUnits import Data.Array (head, uncons) +import Data.Bifunctor (lmap) import Data.Either (isLeft) import Data.Lens (view) import Data.List as List @@ -73,7 +81,7 @@ import JS.BigInt as BigInt import Mote (test) import Mote.TestPlanM (TestPlanM) import Test.Ctl.Testnet.BetRef.BetRefValidator (mkScript) -import Test.Ctl.Testnet.BetRef.Operations (placeBet) +import Test.Ctl.Testnet.BetRef.Operations (placeBet, takePot) import Test.Ctl.Testnet.BetRef.Types ( BetRefParams , OracleAnswerDatum(OracleAnswerDatum) @@ -85,7 +93,12 @@ suite :: TestPlanM ContractTest Unit suite = do -- test "Placing first bet" firstBetTest' -- test "Multiple bets - good steps" multipleBetsTest - test "Multiple bets - to small step" failingMultipleBetsTest + -- test "Multiple bets - to small step" failingMultipleBetsTest + test "Just take bet pot" takeBetsTest + +-- ----------------------------------------------------------------------------- +-- Place bids +-- ----------------------------------------------------------------------------- firstBetTest' :: ContractTest firstBetTest' = withWallets ws $ firstBetTest @@ -139,6 +152,7 @@ failingMultipleBetsTest = withWallets multipleBetsWallets $ -- ----------------------------------------------------------------------------- -- helpers for multiple bet tests +-- ----------------------------------------------------------------------------- mkGuess = OracleAnswerDatum <<< BigInt.fromInt @@ -312,6 +326,116 @@ runPlaceBet oRef script params guess bet mPrevBet bettorPkh = do awaitTxConfirmed txHash pure (balancedSignedTx /\ txHash) +-- ----------------------------------------------------------------------------- +-- Take pot tests +-- ----------------------------------------------------------------------------- + +takeBetsTest :: ContractTest +takeBetsTest = withWallets multipleBetsWallets $ + \(oracle /\ deployer /\ holder /\ bettor1 /\ bettor2 /\ bettor3 /\ bettor4) -> + mkTakeBetsTest + 200 + 400 + 10_000_000 + [ (bettor1 /\ mkGuess 1 /\ 10_000_000) + , (bettor2 /\ mkGuess 2 /\ 20_000_000) + , (bettor3 /\ mkGuess 3 /\ 30_000_000) + , (bettor2 /\ mkGuess 4 /\ 50_000_000) + , (bettor4 /\ mkGuess 5 /\ 65_000_000) + -- CTL: no support for test tokens out-of-the-box, so... <> valueSingleton testGoldAsset 1_000 + ] + (oracle /\ deployer /\ holder) + 4 + bettor2 + +mkTakeBetsTest + :: Int + -> Int + -> Int + -> Array Bet + -> (KeyWallet /\ KeyWallet /\ KeyWallet) + -> Int + -> KeyWallet + -> Contract Unit +mkTakeBetsTest + betUntil + betReveal + stepCoins + bets + wallets + answer + winner = do + -- Deploy ref script + (params /\ oRef /\ script) <- runDeployScript + (BigInt.fromInt betUntil) + (BigInt.fromInt betReveal) + (lovelaceValueOf $ BigNum.fromInt stepCoins) + wallets + -- Place bets + runMultipleBets params oRef script bets + -- Try to take the pot + _ <- runTakePot params oRef script answer winner + pure unit + +runTakePot + :: BetRefParams + -> TransactionInput + -> PlutusScript + -> Int + -> KeyWallet + -> Contract (Transaction /\ TransactionHash) +runTakePot params oRef script answer winner = do + withKeyWallet winner do + -- wait till the reveal slot + current <- currentSlot + eraSummaries <- getEraSummaries + systemStart <- getSystemStart + revealSlot <- liftEither $ lmap (error <<< show) + $ posixTimeToSlot eraSummaries systemStart (unwrap params).brpBetReveal + -- FIXME: This can't seem to be correct though it works + waitUntil <- liftMaybe (error "canot calculate reveal slot") $ + wrap <$> unwrap current `BigNum.add` unwrap revealSlot + logInfo' $ "waiting untill slot: " <> show waitUntil + tip <- waitUntilSlot waitUntil + logInfo' $ "wait completed, tip is: " <> show tip + -- betRef + address <- mkAddress (wrap $ ScriptHashCredential $ hash script) Nothing + utxoMap <- utxosAt address + betRef <- liftMaybe (error "cannot find bet utxo") + $ (head <<< Set.toUnfoldable <<< Map.keys) utxoMap + -- bettorPkh + bettorKey <- liftAff $ getPrivatePaymentKey winner + let bettorPkh = (wrap <<< privateKeyToPkh) bettorKey + -- publish the answer + let datum = toData $ OracleAnswerDatum $ BigInt.fromInt answer + oracleRef <- addRefInput (unwrap params).brpOraclePkh datum + -- take the pot + balancedTx <- takePot oRef script params betRef bettorPkh oracleRef + balancedSignedTx <- signTransaction balancedTx + txHash <- submit balancedSignedTx + awaitTxConfirmed txHash + pure (balancedSignedTx /\ txHash) + +addRefInput :: PaymentPubKeyHash -> PlutusData -> Contract TransactionInput +addRefInput pkh datum = do + let + constraints :: TxConstraints + constraints = mconcat + [ mustPayToPubKeyWithDatum pkh datum DatumInline Value.empty + ] + + unbalancedTx /\ _utxosMap <- mkUnbalancedTx mempty constraints + balancedTx <- balanceTx unbalancedTx Map.empty mempty + balancedSignedTx <- signTransaction balancedTx + txHash <- submit balancedSignedTx + awaitTxConfirmed txHash + + address <- mkAddress (wrap $ PubKeyHashCredential $ unwrap pkh) Nothing + utxoMap <- utxosAt address + prevUtxoRef <- liftMaybe (error "cannot find the only oracle utxo") + $ (head <<< Set.toUnfoldable <<< Map.keys) utxoMap + pure prevUtxoRef + -- ----------------------------------------------------------------------------- -- Auxiliary runners -- ----------------------------------------------------------------------------- From 6687913148eb4284883af48ba7aa20130b3bd9b0 Mon Sep 17 00:00:00 2001 From: euonymos Date: Thu, 21 Nov 2024 23:21:19 -0600 Subject: [PATCH 10/18] feat: checks for multiple bets test and other tests WIP --- test/Testnet/BetRef/Test.purs | 175 ++++++++++++++++++++++++++++++---- 1 file changed, 158 insertions(+), 17 deletions(-) diff --git a/test/Testnet/BetRef/Test.purs b/test/Testnet/BetRef/Test.purs index 2a9e81c50d..a7ff8435a2 100644 --- a/test/Testnet/BetRef/Test.purs +++ b/test/Testnet/BetRef/Test.purs @@ -6,6 +6,7 @@ import Contract.Prelude hiding (apply) import Prelude import Cardano.Types (Transaction, TransactionHash, _body, _fee) +import Cardano.Types.BigNum (BigNum) import Cardano.Types.BigNum as BigNum import Cardano.Types.Credential ( Credential(PubKeyHashCredential, ScriptHashCredential) @@ -61,17 +62,20 @@ import Contract.TxConstraints ) import Contract.UnbalancedTx (mkUnbalancedTx) import Contract.Utxos (utxosAt) -import Contract.Value (Value, empty, lovelaceValueOf) -import Control.Monad.Error.Class (liftMaybe) +import Contract.Value (Value, add, empty, lovelaceValueOf, minus) +import Control.Monad.Error.Class (liftMaybe, throwError) import Control.Monad.Trans.Class (lift) import Ctl.Examples.ExUnits as ExUnits -import Data.Array (head, uncons) +import Ctl.Internal.Contract.Monad (getQueryHandle) +import Ctl.Internal.Service.Error (pprintClientError) +import Data.Array (cons, fromFoldable, head, uncons, zip) import Data.Bifunctor (lmap) import Data.Either (isLeft) import Data.Lens (view) import Data.List as List import Data.Map (Map) import Data.Map as Map +import Data.Maybe (fromJust) import Data.Set as Set import Data.Unit (unit) import Effect.Aff (try) @@ -80,6 +84,7 @@ import JS.BigInt (BigInt) import JS.BigInt as BigInt import Mote (test) import Mote.TestPlanM (TestPlanM) +import Partial.Unsafe (unsafePartial) import Test.Ctl.Testnet.BetRef.BetRefValidator (mkScript) import Test.Ctl.Testnet.BetRef.Operations (placeBet, takePot) import Test.Ctl.Testnet.BetRef.Types @@ -95,6 +100,8 @@ suite = do -- test "Multiple bets - good steps" multipleBetsTest -- test "Multiple bets - to small step" failingMultipleBetsTest test "Just take bet pot" takeBetsTest + -- test "Take by wrong guesser" wrongGuesserTakeBetsTest + -- test "The first bet matters" badUpdatedGuessTakeBetsTest -- ----------------------------------------------------------------------------- -- Place bids @@ -190,23 +197,115 @@ mkMultipleBetsTest (lovelaceValueOf $ BigNum.fromInt stepCoins) wallets - -- -- Get the balance - -- balanceBefore <- getBalance - -- gyLogDebug' "" $ printf "balanceBeforeAllTheseOps: %s" (mconcat balanceBefore) + bets' <- liftAff $ for bets $ \(w /\ a /\ v) -> do + bettorKey <- getPrivatePaymentKey w + let bettorPkh = (wrap <<< privateKeyToPkh) bettorKey + pure (bettorPkh /\ a /\ v) + + -- Get the balance + balanceBefore <- getBalance bets' + logInfo' $ "balanceBeforeAllTheseOps: " <> show balanceBefore -- Run operations runMultipleBets params oRef script bets --- -- Get the balance again --- balanceAfter <- getBalance --- gyLogDebug' "" $ printf "balanceAfterAllTheseOps: %s" (mconcat balanceAfter) + -- Get the balance again + balanceAfter <- getBalance bets' + logInfo' $ "balanceAfterAllTheseOps: " <> show balanceAfter --- -- Check the difference --- verify $ --- zip3 --- walletsAndBets --- balanceBefore --- balanceAfter + -- Check the difference + verify $ zip (unsafePartial $ walletsAndBets bets') $ zip balanceBefore + balanceAfter + + where + + -- \| Returns the balances for all wallets that play the game + getBalance + :: Array (PaymentPubKeyHash /\ OracleAnswerDatum /\ Int) + -> Contract (Array Value) + getBalance bets = for (unsafePartial $ walletsAndBets bets) $ \(pkh /\ _) -> + do + addr <- mkAddress' pkh Nothing + queryHandle <- getQueryHandle + eiResponse <- liftAff $ queryHandle.utxosAt addr + case eiResponse of + Left err -> liftEffect $ throw $ + "getWalletBalance: utxosAt call error: " <> + pprintClientError err + Right utxoMap -> do + liftM + ( error $ + "getWalletBalance: Unable to get payment credential from Address" + ) + $ Value.sum + ( map _.amount $ map unwrap $ fromFoldable $ + Map.values utxoMap + ) + + -- \| Builds the list of wallets and their respective bets made. + -- The idea here is that if we encounter a new wallet, + -- i.e., wallet for whose we haven't yet computed value lost, + -- we calculate the total once so we can ignore other entries + -- for this wallet. + -- FIXME: very ineffective, can be simplified drastically. + walletsAndBets + :: Partial + => Array (PaymentPubKeyHash /\ OracleAnswerDatum /\ Int) + -> Array (PaymentPubKeyHash /\ Value) + walletsAndBets bets = go bets Set.empty [] + where + go allBets set acc = case uncons allBets of + Just { head: bet, tail: remBets } -> + let + (wallet /\ _ /\ _) = bet + in + if Set.member wallet set then go remBets set acc -- already summed + else + go remBets (Set.insert wallet set) + ((wallet /\ totalBets wallet allBets Value.empty) `cons` acc) + Nothing -> acc + + -- \| Recursive function that sums all bets for the corresponding wallet. + totalBets + :: Partial + => PaymentPubKeyHash + -> Array (PaymentPubKeyHash /\ OracleAnswerDatum /\ Int) + -> Value + -> Value + totalBets wallet allBets acc = case uncons allBets of + Nothing -> acc + Just { head: (wallet' /\ _ /\ bet), tail: remBets } -> + let + bet' = lovelaceValueOf $ BigNum.fromInt bet + in + if wallet' == wallet then fromJust (acc `Value.add` bet') + else fromJust (Value.empty `Value.minus` acc) + + negate :: BigNum -> Maybe BigNum + negate n = BigNum.zero `BigNum.sub` n + + -- \| Function to verify that the wallet indeed lost by /roughly/ the bet amount. + -- We say /roughly/ as fees is assumed to be within (0, 1 ada]. + verify + :: Array ((PaymentPubKeyHash /\ Value) /\ Value /\ Value) -> Contract Unit + verify es = case uncons es of + Nothing -> pure unit + Just { head: ((pkh /\ diff) /\ vBefore /\ vAfter), tail: es } -> do + let + vAfterWithoutFees = unsafePartial $ fromJust $ vBefore `Value.add` diff + threshold = lovelaceValueOf $ BigNum.fromInt 1_500_000 -- 1.5 ada + if + vAfter `Value.lt` vAfterWithoutFees + && + ( unsafePartial $ fromJust $ vAfterWithoutFees `Value.minus` + threshold + ) `Value.geq` vAfter then verify es + else + throwError $ error $ "For wallet " <> show pkh + <> " expected value (without fees) " + <> show vAfterWithoutFees + <> ", but actual is " + <> show vAfter runMultipleBets :: BetRefParams @@ -334,8 +433,8 @@ takeBetsTest :: ContractTest takeBetsTest = withWallets multipleBetsWallets $ \(oracle /\ deployer /\ holder /\ bettor1 /\ bettor2 /\ bettor3 /\ bettor4) -> mkTakeBetsTest - 200 - 400 + 120 + 20 10_000_000 [ (bettor1 /\ mkGuess 1 /\ 10_000_000) , (bettor2 /\ mkGuess 2 /\ 20_000_000) @@ -348,6 +447,48 @@ takeBetsTest = withWallets multipleBetsWallets $ 4 bettor2 +wrongGuesserTakeBetsTest :: ContractTest +wrongGuesserTakeBetsTest = withWallets multipleBetsWallets $ + \(oracle /\ deployer /\ holder /\ bettor1 /\ bettor2 /\ bettor3 /\ bettor4) -> + do + ret /\ _ <- collectAssertionFailures mempty $ lift do + mkTakeBetsTest + 100 + 10 + 10_000_000 + [ (bettor1 /\ mkGuess 1 /\ 10_000_000) + , (bettor2 /\ mkGuess 2 /\ 20_000_000) + , (bettor3 /\ mkGuess 3 /\ 30_000_000) + , (bettor2 /\ mkGuess 4 /\ 50_000_000) + , (bettor4 /\ mkGuess 5 /\ 65_000_000) + -- CTL: no support for test tokens out-of-the-box, so... <> valueSingleton testGoldAsset 1_000 + ] + (oracle /\ deployer /\ holder) + 5 + bettor2 + ret `shouldSatisfy` isLeft + +badUpdatedGuessTakeBetsTest :: ContractTest +badUpdatedGuessTakeBetsTest = withWallets multipleBetsWallets $ + \(oracle /\ deployer /\ holder /\ bettor1 /\ bettor2 /\ bettor3 /\ bettor4) -> + do + ret /\ _ <- collectAssertionFailures mempty $ lift do + mkTakeBetsTest + 100 + 10 + 10_000_000 + [ (bettor1 /\ mkGuess 1 /\ 10_000_000) + , (bettor2 /\ mkGuess 2 /\ 20_000_000) + , (bettor3 /\ mkGuess 3 /\ 30_000_000) + , (bettor2 /\ mkGuess 4 /\ 50_000_000) + , (bettor4 /\ mkGuess 5 /\ 65_000_000) + -- CTL: no support for test tokens out-of-the-box, so... <> valueSingleton testGoldAsset 1_000 + ] + (oracle /\ deployer /\ holder) + 2 + bettor2 + ret `shouldSatisfy` isLeft + mkTakeBetsTest :: Int -> Int From e875f7545f73c1bfbc8a43e78084c3cd21e3087a Mon Sep 17 00:00:00 2001 From: euonymos Date: Mon, 25 Nov 2024 13:51:56 -0600 Subject: [PATCH 11/18] chore: re-group test --- test/Testnet.purs | 7 +++++-- test/Testnet/BetRef/Test.purs | 20 ++++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/test/Testnet.purs b/test/Testnet.purs index 5a76f5d124..ee3eb4c307 100644 --- a/test/Testnet.purs +++ b/test/Testnet.purs @@ -45,8 +45,11 @@ main = interruptOnSignal SIGINT =<< launchAff do flip cancelWith (effectCanceler (exitCode 1)) do Utils.interpretWithConfig defaultConfig { timeout = Just $ Milliseconds 600_000.0, exit = true } - $ group "cardano-testnet" do - testTestnetContracts config BetRef.suite + $group "bet-ref example" do + testTestnetContracts config BetRef.placeBetSuite + testTestnetContracts config BetRef.takePotSuite + -- $group "bet-ref example - take bet" do + -- $ group "cardano-testnet" do -- testTestnetContracts config Mnemonics.suite -- group "ExUnits - normal limits" do -- testTestnetContracts config $ ExUnits.mkFailingSuite 8000 diff --git a/test/Testnet/BetRef/Test.purs b/test/Testnet/BetRef/Test.purs index a7ff8435a2..b63a87f4f6 100644 --- a/test/Testnet/BetRef/Test.purs +++ b/test/Testnet/BetRef/Test.purs @@ -1,5 +1,6 @@ module Test.Ctl.Testnet.BetRef.Test - ( suite + ( placeBetSuite + , takePotSuite ) where import Contract.Prelude hiding (apply) @@ -94,14 +95,17 @@ import Test.Ctl.Testnet.BetRef.Types ) import Test.Spec.Assertions (shouldEqual, shouldSatisfy) -suite :: TestPlanM ContractTest Unit -suite = do - -- test "Placing first bet" firstBetTest' - -- test "Multiple bets - good steps" multipleBetsTest - -- test "Multiple bets - to small step" failingMultipleBetsTest +placeBetSuite :: TestPlanM ContractTest Unit +placeBetSuite = do + test "Placing first bet" firstBetTest' + test "Multiple bets - good steps" multipleBetsTest + test "Multiple bets - to small step" failingMultipleBetsTest + +takePotSuite :: TestPlanM ContractTest Unit +takePotSuite = do test "Just take bet pot" takeBetsTest - -- test "Take by wrong guesser" wrongGuesserTakeBetsTest - -- test "The first bet matters" badUpdatedGuessTakeBetsTest + test "Take by wrong guesser" wrongGuesserTakeBetsTest + test "The first bet matters" badUpdatedGuessTakeBetsTest -- ----------------------------------------------------------------------------- -- Place bids From f70472e2b9d758615c63c5bd4c6a236518787a06 Mon Sep 17 00:00:00 2001 From: euonymos Date: Mon, 25 Nov 2024 13:52:26 -0600 Subject: [PATCH 12/18] chore: switch to non-local deps --- flake.lock | 37 +++++++++++++++++++------------------ flake.nix | 7 ++++--- nix/default.nix | 4 +++- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/flake.lock b/flake.lock index 18efcceaa6..3774021f59 100644 --- a/flake.lock +++ b/flake.lock @@ -1656,17 +1656,18 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1729533565, - "narHash": "sha256-NX5Kc/cHNYvQLjBSeoo1IRQBeftwitZhD7FSQ+LPzFY=", - "ref": "refs/heads/euonymos/ogmios6.7.0-6.8.0", - "rev": "39e23d9543b6696f96d790962bf921016371b205", - "revCount": 268, - "type": "git", - "url": "file:///home/euonymos/src/mlabs/cardano.nix" + "lastModified": 1731425920, + "narHash": "sha256-UOdumlzrv8684dFn7WdGXVNLJcigok9uN1UqdMEcqF4=", + "owner": "mlabs-haskell", + "repo": "cardano.nix", + "rev": "422b9398d7a7ca1f109900781c7d029db107c8c0", + "type": "github" }, "original": { - "type": "git", - "url": "file:///home/euonymos/src/mlabs/cardano.nix" + "owner": "mlabs-haskell", + "repo": "cardano.nix", + "rev": "422b9398d7a7ca1f109900781c7d029db107c8c0", + "type": "github" } }, "cardano-node": { @@ -2020,17 +2021,17 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1732165946, - "narHash": "sha256-6egb13DomCowqDgNkjpBzNKtHvaoLpHlAI1lZrwV6uE=", - "ref": "refs/heads/euonymos/fix-era-summaries", - "rev": "b80892e830d334f7b2bd4afaf13191af6fbe2c2c", - "revCount": 146, - "type": "git", - "url": "file:///home/euonymos/src/mlabs/clb" + "lastModified": 1732316938, + "narHash": "sha256-fWcjh4szEMVuGa71YKOVmVsNb3oV+eNJrsRsF6ckZoo=", + "owner": "mlabs-haskell", + "repo": "clb", + "rev": "e9c4270df9e8fca8ad1c62ddc0f36b224afd2dfc", + "type": "github" }, "original": { - "type": "git", - "url": "file:///home/euonymos/src/mlabs/clb" + "owner": "mlabs-haskell", + "repo": "clb", + "type": "github" } }, "crane": { diff --git a/flake.nix b/flake.nix index f08f659c8f..d90390a208 100644 --- a/flake.nix +++ b/flake.nix @@ -42,8 +42,7 @@ cardano-node.url = "github:input-output-hk/cardano-node/d7abccd4e90c38ff5cd4d6a7839689d888332056"; # CLB emulator - # clb.url = "github:mlabs-haskell/clb/9dcbaec98efaef6bd4c8f46c329660fa436c1839"; - clb.url = "/home/euonymos/src/mlabs/clb"; + clb.url = "github:mlabs-haskell/clb"; # Repository with network parameters # NOTE(bladyjoker): Cardano configurations (yaml/json) often change format and break, that's why we pin to a specific known version. @@ -55,7 +54,9 @@ # Get Ogmios and Kupo from cardano-nix cardano-nix = { - url = "/home/euonymos/src/mlabs/cardano.nix"; + # it stopped working for later commits on main somehow, so here is the merge + # commit for branch that brings support for ogmios 6.8.0 + url = "github:mlabs-haskell/cardano.nix?rev=422b9398d7a7ca1f109900781c7d029db107c8c0"; inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/nix/default.nix b/nix/default.nix index 1c818a2f2e..936de59678 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -141,8 +141,10 @@ let ) ) ]; + # here we export socket emulator binary so users can use it with cardano-testnet + # like: export CARDANO_NODE=$SOCKET_EMULATOR shellHook = '' - export CARDANO_NODE=${pkgs.clb}/bin/cardano-node-socket-emulator + export SOCKET_EMULATOR=${pkgs.clb}/bin/cardano-node-socket-emulator export NODE_PATH="${nodeModules}/lib/node_modules" ln -sfn $NODE_PATH node_modules export PATH="${nodeModules}/bin:$PATH" From e78752cbf7985641702f8cc692139088063b9488 Mon Sep 17 00:00:00 2001 From: euonymos Date: Mon, 25 Nov 2024 15:14:49 -0600 Subject: [PATCH 13/18] chore: restore original testnet tests --- src/Contract/Test/Testnet.purs | 25 ++++++++++------- test/Testnet.purs | 49 +++++++++++++++------------------- 2 files changed, 38 insertions(+), 36 deletions(-) diff --git a/src/Contract/Test/Testnet.purs b/src/Contract/Test/Testnet.purs index 4edbf906e8..47c8b52ed9 100644 --- a/src/Contract/Test/Testnet.purs +++ b/src/Contract/Test/Testnet.purs @@ -1,7 +1,9 @@ module Contract.Test.Testnet - ( defaultTestnetConfig + ( defaultClusterConfig + , defaultTestnetConfig , module X - ) where + ) + where import Contract.Monad (runContractInEnv) as X import Contract.Wallet (withKeyWallet) as X @@ -38,7 +40,7 @@ import Ctl.Internal.Testnet.Types ) , TestnetConfig ) as X -import Ctl.Internal.Testnet.Types (Era(Conway), TestnetConfig) +import Ctl.Internal.Testnet.Types (Era(Conway), TestnetConfig, TestnetClusterConfig) import Data.Log.Level (LogLevel(Trace)) import Data.Maybe (Maybe(Nothing)) import Data.Time.Duration (Seconds(Seconds)) @@ -62,10 +64,15 @@ defaultTestnetConfig = , customLogger: Nothing , suppressLogs: true , hooks: emptyHooks - , clusterConfig: - { testnetMagic: 2 - , era: Conway - , slotLength: Seconds 0.5 - , epochSize: Nothing - } + , clusterConfig: defaultClusterConfig } + + +defaultClusterConfig :: TestnetClusterConfig +defaultClusterConfig = + { testnetMagic: 2 + , era: Conway + , slotLength: Seconds 0.1 + , epochSize: Nothing + } + diff --git a/test/Testnet.purs b/test/Testnet.purs index ee3eb4c307..ad5fe4720e 100644 --- a/test/Testnet.purs +++ b/test/Testnet.purs @@ -26,7 +26,6 @@ import Mote.Monad (mapTest) import Mote.TestPlanM as Utils import Test.Ctl.BalanceTx.ChangeGeneration as ChangeGeneration import Test.Ctl.QueryM.AffInterface as QueryM.AffInterface -import Test.Ctl.Testnet.BetRef.Test as BetRef import Test.Ctl.Testnet.Contract as Contract import Test.Ctl.Testnet.Contract.Assert as Assert import Test.Ctl.Testnet.Contract.Mnemonics as Mnemonics @@ -41,34 +40,30 @@ import Test.Spec.Runner (defaultConfig) -- Run with `npm run testnet-test` main :: Effect Unit main = interruptOnSignal SIGINT =<< launchAff do - let config = defaultTestnetConfig { suppressLogs = false } + let config = defaultTestnetConfig flip cancelWith (effectCanceler (exitCode 1)) do Utils.interpretWithConfig - defaultConfig { timeout = Just $ Milliseconds 600_000.0, exit = true } - $group "bet-ref example" do - testTestnetContracts config BetRef.placeBetSuite - testTestnetContracts config BetRef.takePotSuite - -- $group "bet-ref example - take bet" do - -- $ group "cardano-testnet" do --- testTestnetContracts config Mnemonics.suite --- group "ExUnits - normal limits" do --- testTestnetContracts config $ ExUnits.mkFailingSuite 8000 --- testTestnetContracts config $ ExUnits.mkSuite 2550 --- -- FIXME: group "ExUnits - relaxed limits" do --- -- testTestnetContracts configWithMaxExUnits $ ExUnits.mkSuite 3000 --- testTestnetContracts config Assert.suite --- Logging.suite --- -- FIXME: testStartPlutipCluster --- testTestnetContracts config $ do --- flip mapTest QueryM.AffInterface.suite --- (noWallet <<< wrapQueryM) --- ChangeGeneration.suite --- Contract.suite --- Gov.suite --- UtxoDistribution.suite --- testTestnetContracts config OgmiosMempool.suite --- runTestnetTestPlan config SameWallets.suite --- -- FIXME: ClusterParameters.runTest + defaultConfig { timeout = Just $ Milliseconds 70_000.0, exit = true } + $ group "cardano-testnet" do + testTestnetContracts config Mnemonics.suite + group "ExUnits - normal limits" do + testTestnetContracts config $ ExUnits.mkFailingSuite 8000 + testTestnetContracts config $ ExUnits.mkSuite 2550 + -- FIXME: group "ExUnits - relaxed limits" do + -- testTestnetContracts configWithMaxExUnits $ ExUnits.mkSuite 3000 + testTestnetContracts config Assert.suite + Logging.suite + -- FIXME: testStartPlutipCluster + testTestnetContracts config $ do + flip mapTest QueryM.AffInterface.suite + (noWallet <<< wrapQueryM) + ChangeGeneration.suite + Contract.suite + Gov.suite + UtxoDistribution.suite + testTestnetContracts config OgmiosMempool.suite + runTestnetTestPlan config SameWallets.suite +-- FIXME: ClusterParameters.runTest {- configWithMaxExUnits :: PlutipConfig From b417139012ed8ea2c301cb6a60b510a920483e2b Mon Sep 17 00:00:00 2001 From: euonymos Date: Mon, 25 Nov 2024 16:38:25 -0600 Subject: [PATCH 14/18] chore: separate runner for bet-ref --- package.json | 1 + src/Contract/Test/Testnet.purs | 20 ++-- test/BetRef.purs | 41 +++++++ test/{Testnet => }/BetRef/BetRefValidator.js | 0 .../{Testnet => }/BetRef/BetRefValidator.purs | 4 +- test/{Testnet => }/BetRef/Operations.purs | 36 +++---- test/{Testnet => }/BetRef/Test.purs | 101 ++++++++++++------ test/{Testnet => }/BetRef/Types.purs | 9 +- 8 files changed, 140 insertions(+), 72 deletions(-) create mode 100644 test/BetRef.purs rename test/{Testnet => }/BetRef/BetRefValidator.js (100%) rename test/{Testnet => }/BetRef/BetRefValidator.purs (91%) rename test/{Testnet => }/BetRef/Operations.purs (92%) rename test/{Testnet => }/BetRef/Test.purs (92%) rename test/{Testnet => }/BetRef/Types.purs (96%) diff --git a/package.json b/package.json index 8753e118ee..a24034f46a 100755 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "blockfrost-local-test": "source ./test/blockfrost-local.env && spago run --main Test.Ctl.Blockfrost.Contract", "unit-test": "spago run --main Test.Ctl.Unit", "testnet-test": "spago run --main Test.Ctl.Testnet", + "bet-ref-test": "spago run --main Test.Ctl.BetRef", "staking-test": "spago run --main Test.Ctl.Testnet.Staking", "e2e-serve": "make esbuild-serve", "e2e-test": "source ./test/e2e.env && spago test --main Test.Ctl.E2E -a 'run'", diff --git a/src/Contract/Test/Testnet.purs b/src/Contract/Test/Testnet.purs index 47c8b52ed9..7dff8dbd5a 100644 --- a/src/Contract/Test/Testnet.purs +++ b/src/Contract/Test/Testnet.purs @@ -2,8 +2,7 @@ module Contract.Test.Testnet ( defaultClusterConfig , defaultTestnetConfig , module X - ) - where + ) where import Contract.Monad (runContractInEnv) as X import Contract.Wallet (withKeyWallet) as X @@ -40,7 +39,11 @@ import Ctl.Internal.Testnet.Types ) , TestnetConfig ) as X -import Ctl.Internal.Testnet.Types (Era(Conway), TestnetConfig, TestnetClusterConfig) +import Ctl.Internal.Testnet.Types + ( Era(Conway) + , TestnetClusterConfig + , TestnetConfig + ) import Data.Log.Level (LogLevel(Trace)) import Data.Maybe (Maybe(Nothing)) import Data.Time.Duration (Seconds(Seconds)) @@ -67,12 +70,11 @@ defaultTestnetConfig = , clusterConfig: defaultClusterConfig } - defaultClusterConfig :: TestnetClusterConfig defaultClusterConfig = - { testnetMagic: 2 - , era: Conway - , slotLength: Seconds 0.1 - , epochSize: Nothing - } + { testnetMagic: 2 + , era: Conway + , slotLength: Seconds 0.1 + , epochSize: Nothing + } diff --git a/test/BetRef.purs b/test/BetRef.purs new file mode 100644 index 0000000000..12dbc47628 --- /dev/null +++ b/test/BetRef.purs @@ -0,0 +1,41 @@ +module Test.Ctl.BetRef + ( main + ) where + +import Prelude + +import Contract.Test.Testnet + ( defaultClusterConfig + , defaultTestnetConfig + , testTestnetContracts + ) +import Contract.Test.Utils (exitCode, interruptOnSignal) +import Data.Maybe (Maybe(Just)) +import Data.Posix.Signal (Signal(SIGINT)) +import Data.Time.Duration (Seconds(Seconds)) +import Effect (Effect) +import Effect.Aff + ( Milliseconds(Milliseconds) + , cancelWith + , effectCanceler + , launchAff + ) +import Mote (group) +import Mote.TestPlanM as Utils +import Test.Ctl.BetRef.Test as BetRef +import Test.Spec.Runner (defaultConfig) + +-- Run with `npm run testnet-test` +main :: Effect Unit +main = interruptOnSignal SIGINT =<< launchAff do + let + config = defaultTestnetConfig + { suppressLogs = false + , clusterConfig = defaultClusterConfig { slotLength = Seconds 0.5 } + } + flip cancelWith (effectCanceler (exitCode 1)) do + Utils.interpretWithConfig + defaultConfig { timeout = Just $ Milliseconds 600_000.0, exit = true } + $ group "bet-ref example" do + testTestnetContracts config BetRef.placeBetSuite + testTestnetContracts config BetRef.takePotSuite diff --git a/test/Testnet/BetRef/BetRefValidator.js b/test/BetRef/BetRefValidator.js similarity index 100% rename from test/Testnet/BetRef/BetRefValidator.js rename to test/BetRef/BetRefValidator.js diff --git a/test/Testnet/BetRef/BetRefValidator.purs b/test/BetRef/BetRefValidator.purs similarity index 91% rename from test/Testnet/BetRef/BetRefValidator.purs rename to test/BetRef/BetRefValidator.purs index 620d8c0159..addebc66f9 100644 --- a/test/Testnet/BetRef/BetRefValidator.purs +++ b/test/BetRef/BetRefValidator.purs @@ -1,4 +1,4 @@ -module Test.Ctl.Testnet.BetRef.BetRefValidator +module Test.Ctl.BetRef.BetRefValidator ( mkScript ) where @@ -18,7 +18,7 @@ import Ctl.Internal.Cardano.TextEnvelope ) import Data.Array (singleton) as Array import Effect.Exception (error) -import Test.Ctl.Testnet.BetRef.Types (BetRefParams) +import Test.Ctl.BetRef.Types (BetRefParams) foreign import betRefValidator :: String diff --git a/test/Testnet/BetRef/Operations.purs b/test/BetRef/Operations.purs similarity index 92% rename from test/Testnet/BetRef/Operations.purs rename to test/BetRef/Operations.purs index 494145f741..d434aa6c79 100644 --- a/test/Testnet/BetRef/Operations.purs +++ b/test/BetRef/Operations.purs @@ -1,65 +1,59 @@ -module Test.Ctl.Testnet.BetRef.Operations +module Test.Ctl.BetRef.Operations ( placeBet , takePot ) where -import Contract.Prelude -import Prelude - import Cardano.FromData (fromData) import Cardano.Plutus.Types.Value as Value import Cardano.Types - ( Credential(ScriptHashCredential) - , OutputDatum(OutputDatum) - , PaymentCredential(PaymentCredential) - , PaymentPubKeyHash + ( PaymentPubKeyHash , Transaction ) -import Cardano.Types.Address (getPaymentCredential) -import Cardano.Types.Credential (asPubKeyHash) import Cardano.Types.OutputDatum (outputDatumDatum) import Cardano.Types.PlutusScript (PlutusScript, hash) import Cardano.Types.RedeemerDatum (RedeemerDatum(RedeemerDatum)) import Cardano.Types.TransactionUnspentOutput ( TransactionUnspentOutput(TransactionUnspentOutput) ) -import Contract.Address (Address, mkAddress) import Contract.Log (logDebug', logInfo') import Contract.Monad (Contract) import Contract.PlutusData (toData) -import Contract.ScriptLookups (ScriptLookups) -import Contract.ScriptLookups (unspentOutputs, validator) +import Contract.Prelude + ( type (/\) + , Maybe(Just, Nothing) + , mconcat + , unwrap + , wrap + , (/\) + ) +import Contract.ScriptLookups (ScriptLookups, unspentOutputs, validator) import Contract.Time (POSIXTimeRange) import Contract.Transaction ( TransactionInput - , TransactionOutput(TransactionOutput) , balanceTx - , buildTx ) import Contract.TxConstraints ( DatumPresence(DatumInline) , InputWithScriptRef(RefInput) , TxConstraints - ) -import Contract.TxConstraints - ( mustBeSignedBy + , mustBeSignedBy , mustPayToScript , mustReferenceOutput , mustSpendScriptOutputUsingScriptRef , mustValidateIn ) import Contract.UnbalancedTx (mkUnbalancedTx) -import Contract.Utxos (getUtxo, utxosAt) +import Contract.Utxos (getUtxo) import Contract.Value (Value, add) import Control.Monad.Error.Class (liftMaybe) import Ctl.Internal.Types.Interval as Interval import Data.List (List, singleton) import Data.Map as Map import Data.Maybe (Maybe) -import Data.Unit (Unit, unit) import Effect.Exception (error) import JS.BigInt as BigInt -import Test.Ctl.Testnet.BetRef.Types +import Prelude (bind, discard, mempty, pure, show, ($), (-), (<>), (=<<), (>>=)) +import Test.Ctl.BetRef.Types ( BetRefAction(Bet, Take) , BetRefDatum(BetRefDatum) , BetRefParams diff --git a/test/Testnet/BetRef/Test.purs b/test/BetRef/Test.purs similarity index 92% rename from test/Testnet/BetRef/Test.purs rename to test/BetRef/Test.purs index b63a87f4f6..d4173e3eea 100644 --- a/test/Testnet/BetRef/Test.purs +++ b/test/BetRef/Test.purs @@ -1,18 +1,15 @@ -module Test.Ctl.Testnet.BetRef.Test - ( placeBetSuite +module Test.Ctl.BetRef.Test + ( multipleBetsWallets + , placeBetSuite , takePotSuite ) where -import Contract.Prelude hiding (apply) -import Prelude - import Cardano.Types (Transaction, TransactionHash, _body, _fee) -import Cardano.Types.BigNum (BigNum) import Cardano.Types.BigNum as BigNum +import Cardano.Types.Coin (Coin(Coin)) import Cardano.Types.Credential ( Credential(PubKeyHashCredential, ScriptHashCredential) ) -import Cardano.Types.OutputDatum (OutputDatum(OutputDatum)) import Cardano.Types.PlutusScript (PlutusScript, hash) import Cardano.Types.ScriptHash (ScriptHash) import Cardano.Types.ScriptRef (ScriptRef(PlutusScriptRef), getPlutusScript) @@ -35,9 +32,22 @@ import Contract.Chain (currentSlot, waitUntilSlot) import Contract.Log (logInfo') import Contract.Monad (Contract) import Contract.PlutusData (PlutusData, toData) -import Contract.ScriptLookups (ScriptLookups) -import Contract.ScriptLookups (validator) -import Contract.Scripts (validatorHash) +import Contract.Prelude + ( type (/\) + , Either(Left, Right) + , Maybe(Nothing, Just) + , for + , isRight + , liftAff + , liftEffect + , liftEither + , liftM + , mconcat + , unwrap + , wrap + , (/\) + ) +import Contract.ScriptLookups (ScriptLookups, validator) import Contract.Test (ContractTest, InitialUTxOs, withKeyWallet, withWallets) import Contract.Test.Assert ( checkLossAtAddress @@ -55,40 +65,54 @@ import Contract.Transaction ) import Contract.TxConstraints ( DatumPresence(DatumInline) + , TxConstraints , mustPayToPubKeyWithDatum , mustPayToPubKeyWithScriptRef ) -import Contract.TxConstraints - ( TxConstraints - ) import Contract.UnbalancedTx (mkUnbalancedTx) import Contract.Utxos (utxosAt) -import Contract.Value (Value, add, empty, lovelaceValueOf, minus) +import Contract.Value (Value, empty, lovelaceValueOf, valueToCoin) import Control.Monad.Error.Class (liftMaybe, throwError) import Control.Monad.Trans.Class (lift) -import Ctl.Examples.ExUnits as ExUnits import Ctl.Internal.Contract.Monad (getQueryHandle) import Ctl.Internal.Service.Error (pprintClientError) import Data.Array (cons, fromFoldable, head, uncons, zip) import Data.Bifunctor (lmap) import Data.Either (isLeft) import Data.Lens (view) -import Data.List as List import Data.Map (Map) import Data.Map as Map import Data.Maybe (fromJust) import Data.Set as Set -import Data.Unit (unit) -import Effect.Aff (try) +import Debug (trace) import Effect.Exception (error, throw) import JS.BigInt (BigInt) import JS.BigInt as BigInt import Mote (test) import Mote.TestPlanM (TestPlanM) import Partial.Unsafe (unsafePartial) -import Test.Ctl.Testnet.BetRef.BetRefValidator (mkScript) -import Test.Ctl.Testnet.BetRef.Operations (placeBet, takePot) -import Test.Ctl.Testnet.BetRef.Types +import Prelude + ( Unit + , bind + , discard + , flip + , map + , mempty + , pure + , show + , unit + , (#) + , ($) + , (&&) + , (+) + , (<$>) + , (<<<) + , (<>) + , (==) + ) +import Test.Ctl.BetRef.BetRefValidator (mkScript) +import Test.Ctl.BetRef.Operations (placeBet, takePot) +import Test.Ctl.BetRef.Types ( BetRefParams , OracleAnswerDatum(OracleAnswerDatum) , mkParams @@ -165,8 +189,14 @@ failingMultipleBetsTest = withWallets multipleBetsWallets $ -- helpers for multiple bet tests -- ----------------------------------------------------------------------------- +mkGuess :: Int -> OracleAnswerDatum mkGuess = OracleAnswerDatum <<< BigInt.fromInt +multipleBetsWallets + :: InitialUTxOs /\ InitialUTxOs /\ InitialUTxOs /\ InitialUTxOs + /\ InitialUTxOs + /\ InitialUTxOs + /\ InitialUTxOs multipleBetsWallets = [ BigNum.fromInt 500_000_000 ] -- oracle @@ -227,7 +257,7 @@ mkMultipleBetsTest getBalance :: Array (PaymentPubKeyHash /\ OracleAnswerDatum /\ Int) -> Contract (Array Value) - getBalance bets = for (unsafePartial $ walletsAndBets bets) $ \(pkh /\ _) -> + getBalance bets' = for (unsafePartial $ walletsAndBets bets') $ \(pkh /\ _) -> do addr <- mkAddress' pkh Nothing queryHandle <- getQueryHandle @@ -251,12 +281,12 @@ mkMultipleBetsTest -- i.e., wallet for whose we haven't yet computed value lost, -- we calculate the total once so we can ignore other entries -- for this wallet. - -- FIXME: very ineffective, can be simplified drastically. + -- FIXME: mention that we are working with positive values walletsAndBets :: Partial => Array (PaymentPubKeyHash /\ OracleAnswerDatum /\ Int) -> Array (PaymentPubKeyHash /\ Value) - walletsAndBets bets = go bets Set.empty [] + walletsAndBets bets' = go bets' Set.empty [] where go allBets set acc = case uncons allBets of Just { head: bet, tail: remBets } -> @@ -282,11 +312,9 @@ mkMultipleBetsTest let bet' = lovelaceValueOf $ BigNum.fromInt bet in - if wallet' == wallet then fromJust (acc `Value.add` bet') - else fromJust (Value.empty `Value.minus` acc) - - negate :: BigNum -> Maybe BigNum - negate n = BigNum.zero `BigNum.sub` n + totalBets wallet remBets $ + if wallet' == wallet then fromJust (acc `Value.add` bet') + else acc -- \| Function to verify that the wallet indeed lost by /roughly/ the bet amount. -- We say /roughly/ as fees is assumed to be within (0, 1 ada]. @@ -294,16 +322,21 @@ mkMultipleBetsTest :: Array ((PaymentPubKeyHash /\ Value) /\ Value /\ Value) -> Contract Unit verify es = case uncons es of Nothing -> pure unit - Just { head: ((pkh /\ diff) /\ vBefore /\ vAfter), tail: es } -> do + Just { head: ((pkh /\ diff) /\ vBefore /\ vAfter), tail: rest } -> do + -- logInfo' $ "diff: " <> show diff + -- logInfo' $ "vBefore: " <> show vBefore + -- logInfo' $ "vAfter: " <> show vAfter let - vAfterWithoutFees = unsafePartial $ fromJust $ vBefore `Value.add` diff + vAfterWithoutFees = unsafePartial $ fromJust $ vBefore `Value.minus` + diff threshold = lovelaceValueOf $ BigNum.fromInt 1_500_000 -- 1.5 ada if vAfter `Value.lt` vAfterWithoutFees && - ( unsafePartial $ fromJust $ vAfterWithoutFees `Value.minus` - threshold - ) `Value.geq` vAfter then verify es + vAfter `Value.geq` + ( unsafePartial $ fromJust $ vAfterWithoutFees `Value.minus` + threshold + ) then verify rest else throwError $ error $ "For wallet " <> show pkh <> " expected value (without fees) " diff --git a/test/Testnet/BetRef/Types.purs b/test/BetRef/Types.purs similarity index 96% rename from test/Testnet/BetRef/Types.purs rename to test/BetRef/Types.purs index c5ff107cf9..05bdf6e40b 100644 --- a/test/Testnet/BetRef/Types.purs +++ b/test/BetRef/Types.purs @@ -1,17 +1,13 @@ -module Test.Ctl.Testnet.BetRef.Types where +module Test.Ctl.BetRef.Types where import Contract.Prelude -import Prelude import Cardano.Plutus.DataSchema ( class HasPlutusSchema - , class UniqueIndices , type (:+) , type (:=) , type (@@) - , ConsI , I - , NilI , PNil , S , Z @@ -34,13 +30,14 @@ import Contract.Time , slotToPosixTime ) import Contract.Value (Value) -import Control.Monad.Error.Class (liftEither, liftMaybe) +import Control.Monad.Error.Class (liftMaybe) import Ctl.Internal.Types.Interval (POSIXTime) import Data.Bifunctor (lmap) import Data.List (List) import Effect.Exception (error) import JS.BigInt (BigInt) import JS.BigInt as BigInt +import Prelude (class Eq, class Show, bind, pure, show, ($), (+), (<$>), (<<<)) -- | Goals made my the concerned team. type TeamGoals = BigInt From 59a5bc8de095f5e11f6b9ee561e0cf94d4a438a4 Mon Sep 17 00:00:00 2001 From: euonymos Date: Mon, 25 Nov 2024 16:57:47 -0600 Subject: [PATCH 15/18] docs: dummy commit --- doc/cardano-testnet-testing.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/cardano-testnet-testing.md b/doc/cardano-testnet-testing.md index 7065a5ce2d..bb9d519535 100644 --- a/doc/cardano-testnet-testing.md +++ b/doc/cardano-testnet-testing.md @@ -408,3 +408,4 @@ enterprise addresses (see [this issue](https://github.com/mlabs-haskell/plutip/i - Take a look at CTL's Testnet tests for the usage examples: - the entry point with `main` that runs Testnet tests is [here](../test/Testnet.purs), - folder with various test suites is [here](../test/Testnet/). + From 9f72b5a077fe0bec214d95ce6d2ccb7ad0bca425 Mon Sep 17 00:00:00 2001 From: Ilia Rodionov <103441514+euonymos@users.noreply.github.com> Date: Tue, 26 Nov 2024 13:07:44 -0600 Subject: [PATCH 16/18] docs: CLB / intro --- doc/cardano-testnet-testing.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/doc/cardano-testnet-testing.md b/doc/cardano-testnet-testing.md index bb9d519535..950a71a29d 100644 --- a/doc/cardano-testnet-testing.md +++ b/doc/cardano-testnet-testing.md @@ -25,7 +25,25 @@ ## Overview -[`cardano-testnet`](https://github.com/IntersectMBO/cardano-node/tree/master/cardano-testnet) is a tool for spinning up temporary local testnets. CTL integrates with it to provide an environment for `Contract` testing, that is very close to production. +Traditionally, when testing dApps on Cardano, developers start with unit-testing separate on-chain scripts +and then move to testing whole transactions. To do this a running ledger is needed. +Currently, CTL provides two options which are discussed here in detail. + +The first option is a Cardano emulator [CLB](https://github.com/mlabs-haskell/clb) that can pretend +to be a standalone Cardano node without notions of consensus and network interactions. +It is fast, lightweight, and provides a basic ledger that can be accessed through an IPC socket. + +The second option is a private network, that runs a set of real-cardano nodes. +This is slower and consumes more resources, but represents a more realistic environment. + +In most cases, it makes sense to start using the emulator and switch to a private network +as soon as tests necessitate features that are not supported by the emulator. + +Fortunately, CTL allows you to do that easily, since both approaches leverage +the same spinning-up mechanism, namely +[`cardano-testnet`](https://github.com/IntersectMBO/cardano-node/tree/master/cardano-testnet) +It is a tool for spinning up temporary local testnets. +CTL integrates with it to provide an environment for `Contract` testing, that is very close to production. ## Architecture From 3b1daeb3d9899b5c05e96f7b41188e83fd8176c8 Mon Sep 17 00:00:00 2001 From: Ilia Rodionov <103441514+euonymos@users.noreply.github.com> Date: Tue, 26 Nov 2024 13:56:35 -0600 Subject: [PATCH 17/18] docs: using emulator as testnet --- doc/cardano-testnet-testing.md | 127 ++++++++++++++++++++------------- 1 file changed, 77 insertions(+), 50 deletions(-) diff --git a/doc/cardano-testnet-testing.md b/doc/cardano-testnet-testing.md index 950a71a29d..1c4aa4aa8d 100644 --- a/doc/cardano-testnet-testing.md +++ b/doc/cardano-testnet-testing.md @@ -45,25 +45,55 @@ the same spinning-up mechanism, namely It is a tool for spinning up temporary local testnets. CTL integrates with it to provide an environment for `Contract` testing, that is very close to production. +Further in this document we use the term "testnet" in a general sense +for both beforementioned options (if it is not stated explicitly). + ## Architecture CTL depends on a number of binaries in the `$PATH` to execute tests on the Cardano Testnet: -- [`cardano-node`](https://github.com/IntersectMBO/cardano-node) to connect to the Cardano Testnet -- [`ogmios`](https://ogmios.dev/) -- [`kupo`](https://cardanosolutions.github.io/kupo/) +- [`cardano-node`](https://github.com/IntersectMBO/cardano-node) +to connect to the Cardano Testnet +- [`cardano-node-socket-emulator`](https://github.com/mlabs-haskell/clb) +as a replacement for `cardano-node` for emulator-based mode +- [`cardano-testnet`](https://github.com/IntersectMBO/cardano-node/tree/master/cardano-testnet) +to create configuration for a testnet and launch it +- [`ogmios`](https://ogmios.dev/) to communicate with node/emulator +- [`kupo`](https://cardanosolutions.github.io/kupo/) to index the chain + +By default, a full-fledged testnet will be used. +If you want to use the emulator instead, you can +export the `CARDANO_NODE` shell variable pointing to the emulator binary. +To facilitate this the Nix shell exposes the binary in `SOCKET_EMULATOR` variable, +the command to run a suite against the emulator is: + +```bash +$ export CARDANO_NODE=$SOCKET_EMULATOR; npm run +``` +Quite often, you need to get access to a temporary folder +that contains testnet configuration along with logs and other files. +You can preserve it by +exporting a variable TESTNET_CLEANUP_WORKDIR with value 0: + +```bash +$ export TESTNET_CLEANUP_WORKDIR=0 +``` -All of these are provided by CTL's `overlays.runtime` (and are provided in -CTL's own `devShell`). You **must** use the `runtime` overlay or otherwise make -the services available in your package set (e.g. by defining them within your -own `overlays` when instantiating `nixpkgs`) as `purescriptProject.runTest` -expects all of them; an example of using CTL's overlays is in the -[`ctl-scaffold` template](../templates/ctl-scaffold/flake.nix#L35). +The name of the folder can be found in the tests' output. +You have to set `suppressLogs` to `false` in your `Testnetconfig` to get it. -The services are NOT run by `docker-compose` (via `arion`) as is the case with -`launchCtlRuntime`: instead, they are started and stopped on each CTL -`ContractTest` execution by CTL itself. +All of these binaries are provided by CTL's `overlays.runtime` +(and are provided in CTL's own `devShell`). +You **must** use the `runtime` overlay +or make the services available somehow in your package set +(e.g. by defining them within your own `overlays` when instantiating `nixpkgs`) +as `purescriptProject.runTest` expects all of them; +an example of using CTL's overlays is in the [`ctl-scaffold` template](../templates/ctl-scaffold/flake.nix#L35). + +The services are NOT run by `docker-compose` (via `arion`) +as is the case with `launchCtlRuntime`: +instead, they are started and stopped on each CTL `ContractTest` execution by CTL itself. If you have based your project on the [`ctl-scaffold` template](../templates/ctl-scaffold) then you have two options to run tests on @@ -71,31 +101,33 @@ the Cardano Testnet: 1. `nix develop` followed by `npm run test` (recommended for development) 2. `nix run .#checks.x86_64-linux.ctl-scaffold-local-testnet-test` * where you'd usually replace `x86_64-linux` with the system you run tests on - * and `ctl-scaffold-local-testnet-test` with the name of the test derivation for your project; + * and `ctl-scaffold-local-testnet-test` with the name of the test derivation for your project ## Testing contracts -CTL provides integrated testing environment for Mote (a test framework in PureScript). Alternatively, testing in the `Aff` context is also available, which makes it possible to integrate with any testing framework (or none at all). +CTL provides an integrated testing environment for Mote (a test framework in PureScript). +Alternatively, testing in the `Aff` context is also available, which makes it possible +to integrate with any testing framework (or none at all). ### Testing with Mote [Mote](https://github.com/garyb/purescript-mote) is a DSL for defining and -grouping tests (plus other quality of life features, e.g. skipping marked -tests). +grouping tests (plus other quality-of-life features, e.g. skipping marked tests). -First (and more widely used) approach is to first build a tree of tests (in -CTL's case a tree of `ContractTest` types -- basically a function from some +The first (and more widely used) approach is to first build a tree of tests (in +CTL's case a tree of `ContractTest` types -- which is just a function from some distribution of funds to a `Contract a`) via Mote and then use the -`Contract.Test.Testnet.testTestnetContracts` function to execute them. This -allows setting up the Cardano Testnet only once per top-level groups and tests -passed to the `testTestnetContracts` and then use it in many independent tests. -The function will interpret a `MoteT` (effectful test tree) into `Aff`, which -you can then actually run. +`Contract.Test.Testnet.testTestnetContracts` function to execute them. +This allows setting up the environment only once and (re-)use it for many independent tests. +The function will interpret a `MoteT` (effectful test tree) into `Aff`, +which you can then actually run. The [`ctl-scaffold` template](../templates/ctl-scaffold) provides a simple -`Mote`-based example. +`Mote`-based example. Also, you can find a complete simple betting example +within CTL tests in `Test.Ctl.BetRef`. `Contract.Test.Testnet.testTestnetContracts` type is defined as follows: + ```purescript testTestnetContracts :: TestnetConfig @@ -147,7 +179,7 @@ suite = testTestnetContracts config do #### Using Mote testing interface -To define tests suites you can use `test`, group them with `group` and also +To define test suites you can use `test`, group them with `group`, and also wrap tests or groups with `bracket` to execute custom actions before and after tests/groups that are inside the bracket. Note that in Mote you can define several tests and several groups in a single block, and bracket that @@ -173,33 +205,27 @@ testTestnetContracts ``` where -* `test :: Type` is a type of tests themselves, - * in our case it's [`ContractTest`](../src/Internal/Test/ContractTest.purs), - which in a nutshell describes a function from some wallet UTxO distribution to - a `Contract r` - * wallet UTxO distribution is the one that you need to pattern-match on when - writing tests -* `m :: Type -> Type` is a monad where effects during the construction of the - test suite can be performed, - * here we use `Aff` again -* `a :: Type` is a result of the test suite, we use `Unit` here. - -`testTestnetContracts` also combines ADA distribution requirements of individual tests in a single ADA distribution requirement. This allows to create multiple wallets and -fund them in one step, during the Testnet setup. See the comments in the -[`Ctl.Internal.Testnet.Server` module](../src/Internal/Testnet/Contract.purs) for -more info. +* `test :: Type` is a type of the tests themselves, in our case, [`ContractTest`](../src/Internal/Test/ContractTest.purs) +* `m :: Type -> Type` is a monad where effects during the construction of the test suite can be performed, here we use `Aff` +* `a :: Type` is a result of the test suite, and we use `Unit` here. + +`testTestnetContracts` also combines ADA distribution requirements of individual tests +in a single ADA distribution requirement. +This allows creation of multiple wallets and funding of them in one step, during the testnet setup. +See the comments in the [`Ctl.Internal.Testnet.Server` module](../src/Internal/Testnet/Contract.purs) +for more info. ### Testing in Aff context If using Mote is not desired, it's possible to use the `Contract.Test.Testnet.runTestnetContract` function, -which takes a single `Contract`, connects to the Testnet and executes the passed +which takes a single `Contract`, connects to the Testnet, and executes the passed contract. This function runs in `Aff`; it will also throw an exception should -contract fail for any reason. The testnet is terminated after `Contract` execution. +a contract fail for any reason. The testnet is terminated after `Contract` execution. You can either call this function directly from your test's `main` or use any -library for grouping and describing tests which support `Aff` effects in test bodies. +library for grouping and describing tests that support `Aff` effects in test bodies. -`Contract.Test.Testnet.runTestnetContract`'s type is defined as follows: +The type of `runTestnetContract` is defined as follows: ```purescript runTestnetContract @@ -211,7 +237,7 @@ runTestnetContract -> Aff a ``` -`distr` is a specification of how many wallets and with how much funds should be +`distr` is a specification of how many wallets and how much funds should be created. It should either be a `Unit` (for no wallets), nested tuples containing `Array BigInt` or an `Array (Array BigInt)`, where each element of the inner array specifies an UTxO amount in Lovelaces (0.000001 Ada). @@ -220,7 +246,7 @@ The `wallets` argument of the callback is either a `Unit`, a tuple of `KeyWallet (with the same nesting level as in `distr`, which is guaranteed by `UtxoDistribution`) or an `Array KeyWallet`. -`wallets` should be pattern-matched on, and its components should be passed to +`wallets` value should be pattern-matched on, and its components should be passed to `withKeyWallet`: An example `Contract` with two actors using nested tuples: @@ -259,7 +285,7 @@ runTestnetContract config distribution \wallets -> do wallets ``` -In most cases at least two UTxOs per wallet are needed (one of which will be used +In most cases, at least two UTxOs per wallet are needed (one of which will be used as collateral, so it should exceed `5_000_000` Lovelace). Internally `runTestnetContract` runs a contract in an `Aff.bracket`, which creates @@ -422,8 +448,9 @@ enterprise addresses (see [this issue](https://github.com/mlabs-haskell/plutip/i ## See also - To actually write the test bodies, [assertions library](./test-utils.md) can be - useful [(usage example)](../examples/ContractTestUtils.purs). + useful [(usage example)](../examples/ContractTestUtils.purs) - Take a look at CTL's Testnet tests for the usage examples: - - the entry point with `main` that runs Testnet tests is [here](../test/Testnet.purs), - - folder with various test suites is [here](../test/Testnet/). + - the entry point with `main` that runs Testnet tests is [here](../test/Testnet.purs) + - folder with various test suites is [here](../test/Testnet/) +- There is a complete betting [example](../test/BetRef.purs) with reacher checks From 974a285abc39418490aa43c21440226a026c6387 Mon Sep 17 00:00:00 2001 From: Ilia Rodionov <103441514+euonymos@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:47:53 -0600 Subject: [PATCH 18/18] docs: Update CHANGELOG.md --- CHANGELOG.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b2a9c7626..da646c0ada 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -86,11 +86,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## Unreleased version -- [CLB emulator](https://github.com/mlabs-haskell/clb) added so you can use it instead of -`cardano-node` within `cardano-testnet` in test cases whern emulator's features are enough. -- TODO: implement bt-ref example -- TODO: add a flag to choose between cardano-node and clb -- TODO: Fix red testnet tests: +- [CLB emulator](https://github.com/mlabs-haskell/clb) was added as a more lightweight testnet option +- Betting example from Atlas (known as "bet-ref") was reimplemented in CTL to showcase CLB tests +- FIXME: Some tests from the testnet suite are still red when being run against CLB: * Get ChainTip * wait for slot far in the future * Getting transaction metadata @@ -99,7 +97,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) * fetchMempoolTXs * mempoolSnapshotSizeAndCapacity - ## [v9.3.1] ### Fixed